Tinko·Secret Base

Stop talking about that

Tinko

@Tinko7月前

02/3
22:45
Tinkoの日常

bgmi追番指南

近来 ACG 圈几次内讧闹得沸(fan)沸(de)扬(yao)扬(si),虽然已经是老年人了根本无心关注战争,但是有点担心会不会又回到当年下载的日子,到处找链接还神烦。不过近期找到了一个很“舒服”的追番工具,配置是有点头疼,不过用着倒挺舒服。

按惯例,先放链接:https://github.com/BGmi/BGmi

以下内容都是在 Mac OS X 10.11.6 上的实际情况,如有不同请按照自己的环境变动。这里就介绍一下最简单也是最舒服同时也是最不用记命令的用法。

首先你得有 Homebrew 和一个下载器, bgmi 支持 aria2 和 Transmission 还有迅雷离线的程序,不过这个貌似是给路由器准备的,我这边使用的是 aria2 。配置好 aria2 之后,装一个 Python ,在我的环境中我把 2 和 3 都装上了,而 bgmi 同时支持这两个版本,所以我就用了 Python3 来运行。根据手册的安装指南,运行这一条就能装上:

$ pip3 install bgmi

安装成功后,运行下面一条来进行初始化:

$ bgmi install

这一项结束之后, bgmi 会自动添加一些 crontab 的定时任务,每隔一段时间就会检查一遍你订阅的番剧有没有更新。然后是设定一下你想用的番剧源, bgmi 默认使用的是萌番组,我改成了蜜柑计划,另外还支持 dmhy ,随自己选。

$ bgmi source mikan_project

设定源之后,手动更新一次番组数据,再尝试列出所有有数据的番组,来确保你的 bgmi 是真的安装上了:

$ bgmi update
$ bgmi cal

如果一切正常,那么会输出新番更新的日期表:

$ bgmi cal
Sat.
---------------------------------------   ---------------------------------------
 漫威未来复仇者                            魔法使的新娘
 3月的狮子 第二季                          克拉斯卡劳埃德 第二季
(以下省略)

到这里,先不急着开始订阅番剧,先设定 aria2 ,方便后续的自动下载。

运行 bgmi config 来检索你当前设定的下载托管,在[bgmi]字段下的DOWNLOAD_DELEGATE,如果没有什么变动的话,那么默认应该就是aria2-rpc。接下来,运行以下两条命令来设置 aria2 的远程连接。

$ bgmi config ARIA2_RPC_URL 【RPC连接地址】
$ bgmi config ARIA2_RPC_TOKEN "token:【RPC连接token】"

这里要注意的是,由于bgmi使用了XML-RPC而不是我们通常习惯的JSON-RPC,所以在你的【RPC连接地址】当中,不应该使用/jsonrpc而是应该换成/rpc,比如你在你的网页 aria2 控制台上的连接地址是http://127.0.0.1:6800/jsonrpc,那么在这里就应该换成http://127.0.0.1:6800/rpc,这个坑在他们指南中没有说明,我当时踩坑踩了大半天(摔。

接下来,使用bgmi_http --port=8888 --address=127.0.0.1启动一个网页服务器,端口号和地址都可以自己想改就改,然后在浏览器里面打开,这时候应该就能看到 bgmi 的网页了。

到这里呢,还不急着去订阅番剧(真的!),因为现在 bgmi 还是以一个前台程序的形式运行的,我们想办法给它弄成一个服务,开机自启的那种,贼6的那种。

执行vim ~/Library/LaunchAgents/me.ricterz.bgmi.plist,粘贴以下内容并保存:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>me.ricterz.bgmi</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/bgmi_http</string>
    <string>--port=8888</string>
    <string>--address=127.0.0.1</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/usr/local/bin</string>
</dict>
</plist>

这个服务配置文件可能需要做一些调整,比如如果你的bgmi_http命令的路径跟默认的不一样,可以用where bgmi_http来确认你的环境中的实际路径,换上之后保存。

其实弄成服务的形式这个提议已经在 bgmi 的讨论里面已经有了,我也给他们提交了这个 plist ,不过不知道什么时候能弄成默认的(如果弄成 brew service 的话,岂不美哉?)。

保存为服务之后,使用以下四条命令,分别是启用,禁用,开始,停止:

$ launchctl load ~/Library/LaunchAgents/me.ricterz.bgmi.plist
$ launchctl unload ~/Library/LaunchAgents/me.ricterz.bgmi.plist
$ launchctl start ~/Library/LaunchAgents/me.ricterz.bgmi.plist
$ launchctl stop ~/Library/LaunchAgents/me.ricterz.bgmi.plist

如果服务被启用,那么在停止之后会自动重启。如果需要彻底停止服务,请先禁用再停止。

如果你觉得看番的时候就自己找弹弹play之类的播放器到文件夹里面自己打开也行的话,那到这里也行了,可以跳到下面看怎么订阅番剧了。如果你想直接在网页上看,懒得再打开 Finder 一层一层找下去,那就继续往下看。

由于 bgmi 自带的服务器对大文件支持不好,所以我们在这里需要使用 nginx 来做 HTTP 服务,另外我真的对 Apache 无感,所以就没有尝试过用 Apache 。

Homebrew 安装完 nginx 之后(nginx 或者 nginx-full 都行),创建两个符号连接,再为 nginx 创建一个新的服务器配置文件,就像这样:

$ ln -s /Users/[username]/.bgmi/bangumi /usr/local/var/bgmi_www/bangumi
$ ln -s /Users/[username]/.bgmi/front_static /usr/local/var/bgmi_www/frontend

$ vim /usr/local/etc/nginx/servers/bgmi.conf

然后在bgmi.conf里面填入配置:

server {
    listen 127.0.0.1:80;
    server_name bgmi.local;

    autoindex on;
    charset utf-8;

    location /bangumi {
        alias /usr/local/var/bgmi_www/bangumi;
    }

    location /api {
        proxy_pass http://127.0.0.1:8888;
        proxy_connect_timeout 500s;
        proxy_read_timeout 500s;
        proxy_send_timeout 500s;
    }

    location /resource {
        proxy_pass http://127.0.0.1:8888;
    }

    location / {
        alias /usr/local/var/bgmi_www/frontend/;
    }

}

至于这里为什么要通过软连接的方式而不是直接指定到用户主目录,主要是因为容易出权限问题……不要问我怎么知道的TAT……

再向/etc/hosts写一行127.0.0.1 bgmi.local,重启 nginx ,然后尝试访问http://bgmi.local,点开左侧的Calendar,如果能出现新番更新日历,那就一切正常啦。

接下来就是怎么去订阅番剧。
其实 bgmi 的命令行可以订阅,但是操作起来有点点烦,既然有简单的办法就来讲简单的办法。运行bgmi config,查看[bgmi]字段下的ADMIN_TOKEN,复制出来。然后进入你的网页界面,左侧导航栏点开Subscribe,输入刚刚复制的ADMIN_TOKEN,就可以使用图形化界面设定番剧订阅条件了。

好了,大致的使用方法就是这样,当设定好订阅之后,一旦检测到有番剧更新, bgmi 就会自动拉起 aria2 按照设定内容通过磁力进行下载,下载完成之后就能直接看了。

bgmi追番指南

  1. Safari 12Safari 12Mac OS X 10.14Mac OS X 10.14

    能问一下, 如果我用的是transmission, 那我又应该怎么设置?
    因为aria2方面用的是aria2GUI, 所以没有homebrew安装aria2 (ariaNG之类的都需要手动启动aria2, 比较麻烦.)
    我在设置远程连接那里就卡住了….Transmission的话是127.0.0.1:9091

    回复