一直想写一篇文章介绍 BGmi,但是又懒散。不过今天开学第一天,又闲,突发兴致来写一篇文章介绍 BGmi。

BGmi 是一个命令行下的追番工具,同时提供 Web 界面。
Github:https://github.com/RicterZ/BGmi

文章分为如下几部分:

命令行

BGmi 分为几个模块:

订阅管理

查看可添加的订阅:

bgmi cal all

没错,就是列出当季番的更新日历。
查看订阅的番(和字幕组列表):

bgmi followed list

添加 / 删除订阅:

bgmi add "香蕉喵" "怪物彈珠"
bgmi delete --name "香蕉喵" "怪物彈珠"
bgmi delete --clear-all --batch

设置 / 删除指定的字幕组:

bgmi filter "Rewrite" "千夏"
bgmi filter "Rewrite" "千夏"--remove
bgmi filter "Rewrite" --remove-all

特别需要注意的是,如果字幕组列表长这样:

Rewrite(10) 動漫國, 千夏, 星岡, NEO·QSW, 澄空.雪飄, 喵萌茶會, 光之園, TU, 極影.漫遊

,分割的是不同字幕组,用.分割的是字幕组联合发布,添加的时候以.前第一个为准。
更新订阅:

bgmi update --download

其中--download为更新完之后自动下载,不加的话只会更新集数,不会自动下载。

修改更新集数:

bgmi followed mark 槍彈辯駁3絕望篇 1

修改集数之后再bgmi update --download将会下载《槍彈辯駁3絕望篇》第 2 到最新一集。

下载管理

列出下载列表:

bgmi download list

还可以通过状态查询:

  • 0 - 未下载
  • 1 - 下载中
  • 2 - 下载完成

比如我想看未下载的列表:

bgmi download list 0

修改下载状态:
通过上述查询到下载 ID 后,比如:

>>> ~ bgmi download list 1  
Download status value: Not Downloaded: 0 / Downloading: 1 / Downloaded: 2

Downloading items:
  57. <槍彈辯駁3絕望篇: 8>

修改这个条目为已下载:

bgmi download mark 57 2

配置

列出配置:

bgmi config

修改配置:

bgmi config MAX_PAGE 3

以下为各个配置项的解释:

  • DMHY_URL:动漫花园的镜像地址,当然你可以自己搭建,墙外的话可以直接写动漫花园源站地址
  • BGMI_SAVE_PATH:下载的番的存放地址
  • BGMI_TMP_PATH:临时目录
  • MAX_PAGE:获取 Bangumi 下载条目信息的时候获取数据的页数
  • DOWNLOAD_DELEGATE:下载委托,也就是用什么下载,目前支持如下几个
  • xunleixunlei-lixian 脚本
  • aria2:用 aria2c 大法下载
  • aria2-rpc:将数据传送到 aria2c daemon 进行下载
  • BGMI_LX_PATH:xunlei-lixian 的二进制文件地址
  • ARIA2_PATH:aria2c 的二进制文件地址
  • ARIA2_RPC_URL:aria2c rpc 的 URL 地址

杂项

当季番的更新日历:

bgmi cal all --force-update

查看 BGmi 版本:

bgmi --version

BGmi HTTP Service

BGmi 搭配 xunlei-lixian 适用于个人 PC,如果想搭建在路由器 / 树莓派 / 内网的话,推荐搭配是 BGmi / bgmi_http / aria2-rpc / yaaw / nginx BGmi HTTP Service 是我用 tornado 简单的写的,搭建需要如下几步:

修改 BGmi 为 aria2-rpc 模式,并启动 aria2 daemon。
首先安装 aria2 不必多说,然后修改配置文件~/.aria2/aria2.conf

enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
# 如果你想做种的话,就把下面这一句删掉
seed-time=0

然后修改 BGmi 为 aria2-rpc 模式:

bgmi config DOWNLOAD_DELEGATE aria2-rpc

接着:

  • 启动 BGmi HTTP Service:bgmi_http
  • 启动 aria2:aria2c --conf-path=/home/ricter/.aria2/aria2.conf
  • 修改 nginx 配置文件,并重新启动 nginx

因为 tornado 处理静态文件比较低效,特别是下载的番,每一个都很大。

server {
        listen 80;
        root /var/www/html/bangumi;
        autoindex on;
        charset utf8;
        server_name bangumi.ricterz.me;

        location /bangumi {
            alias /home/ricter/.bgmi/bangumi;
        }

        location /bgmi_admin {
            auth_basic "BGmi admin (yaaw)";
            auth_basic_user_file /etc/nginx/htpasswd;
            alias /var/www/html/yaaw/;
        }

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

}

其中/home/ricter/.bgmi/bangumi是番的下载目录,将/bangumi请求全部 alias 到这里即可。
如果可以的话,可以用 yaaw 做一个 admin,最好设置上密码,当然如果你把 6800 端口(aria2 daemon)绑定在 0.0.0.0 话,基本什么用了...
讲道理,安全的方法是将 6800 端口绑定在 127.0.0.1,然后 nginx 配置里添加一句:

    location /some_secret_path {
        proxy_pass http://127.0.0.1:6800;
   }

然后 yaaw 里配置 daemon 地址到这里即可。
然后就可以享受内网极速看番的乐趣了 XD

下面是重邮校内 Bangumi 服务,前端我做了一点修改,当然你也可以自己做一套前端啦。

http://ww1.sinaimg.cn/large/b55b6a91gw1f7hqstmlqmj21iw0ztttq.jpg