
@Tinko4年前
近来 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 按照设定内容通过磁力进行下载,下载完成之后就能直接看了。
能问一下, 如果我用的是transmission, 那我又应该怎么设置?
因为aria2方面用的是aria2GUI, 所以没有homebrew安装aria2 (ariaNG之类的都需要手动启动aria2, 比较麻烦.)
我在设置远程连接那里就卡住了….Transmission的话是127.0.0.1:9091