原文发表在我的博客:解锁追番找番新姿势:BGmi - 熊猫小A的博客
作为一个深深沉迷二次元的家伙,用各种姿势追番找番是必备技能,但喜欢的番剧版权分散在各个角落,不便管理。这里介绍一个好用的工具:BGmi,满足一站式追番的功能。
按照开发者的说法:"BGmi is a cli tool for subscribed bangumi",也就是一切都可以在命令行中进行,但开发者也为之加入了前端面板,可以通过可视化界面来使用,漂亮又方便。
一些大家可能比较关心的功能:
- 支持不同的数据源:bangumi_moe,mikan_project,dmhy
- 可以配合 Aria2、Transmission、迅雷离线进行番剧下载
- 可视化的前端面板
- 通过 DPlayer 在线播放下载的剧集
- 导出 RSS、ICS 日历订阅
- 按照关键字、字幕组搜寻番剧
- 支持 Windows、Linux、路由器
你可以预览开发者部署的效果:https://bgmi.ricterz.me/#/
虽然开发者将它部署在公网可以访问的 VPS 上,但即使你没有 VPS 也可以在本地愉快使用,无需担心。部署在远程的 VPS 上好处是无需占用本地带宽,可以算作是一个离线下载器,若配合 Google Drive 等可以有更多玩法,坏处是受 VPS 带宽和流量限制,在线观看可能体验并不太好;部署在本地的话虽然会占用本地带宽,但是播放体验要好不少(毕竟你可以用你喜欢的播放器来播放),我更推荐放在本地。
这里我以 Windows 平台为例演示如何安装并在本地使用 BGmi 的基本功能(找番、订阅、下载),更多功能请看 :README.rst。注意不要滥用这个工具。
开始之前
先说一下这个项目的依赖。
Python
这个项目需要 Python 环境,并需要 pip 工具支持,已安装的可以跳过这一步,没安装的我简明扼要地说一下:
首先,去这里下载 Python 包:https://www.python.org/downloads/,点击那个硕大的 Download Python 3.x.x 即可。
下载后双击安装,注意点选 Add Python 3.x to PATH
,并选择 Customize Installation
,并勾选 pip 工具。
安装完成后在 CMD 窗口输入 python
或者 pip
,不显示 python不是内部或外部命令,也不是可运行的程序
即可。
Aria2
参考:Windows 下如何配置 Aria 2 。
这里推荐 Aria2 的一个图形化管理界面程序,AriaNg Native ,这个程序基于 AriaNg ,是一个好用又漂亮的 Aria2 下载管理器。
以下内容大部分来自 BGmi 官方文档:RicterZ/BGmi ,有能力者看原文最好。
现在来安装 BGmi
安装 BGmi 很简单。项目提供了两种方式,我推荐 pip
的方式。在 CMD 窗口运行:pip install bgmi
,待完成后再继续输入 bgmi install
即可。之后想要升级的话,请运行:pip install bgmi -U
,bgmi upgrade
。
BGmi 就安装完成了。命令行运行 bgmi config
可以查看 BGmi 的配置。一般来说普通使用无需更改这些配置。
使用BGmi
数据源
BGmi 支持不同的数据源,不同的数据源番剧资源收录情况不一,请自行选择。切换数据源的方法:
bgmi source mikan_project
即可切换至蜜柑计划数据源。支持的数据源有:bangumi_moe
,mikan_project
,dmhy
。注意切换数据源后数据库的记录信息会丢失,包括看番进度、搜索过滤器等。但已下载的番剧文件不受影响。
查看番剧播放日历
运行命令:bgmi cal
将输出每日播放的番剧列表:
搜索番剧与下载
这里以 Aria2 为例。按照以上的教程安装的 Aria2 无需再配置 BGmi 本身即可使用,但若是你之前自己部署的,那么需要对应更改 BGmi 配置文件中的 ARIA2_RPC_URL
以及 ARIA2_RPC_TOKEN
两项。配置好后,运行命令:
bgmi search "擅长捉弄的高木同学"
将会列出所有的搜索结果:
自己挑选一番,比如我选中了 [澄空学园&华盟字幕社]擅长捉弄的高木同学 第09话 MP4 720p
这一项,那么在运行命令:
bgmi search "[澄空学园&华盟字幕社]擅长捉弄的高木同学 第09话 MP4 720p" --download
下载任务就已经添加在 Aria2 任务列表中。
以上方法在不熟悉每部番剧都有哪些字幕组、清晰度可选时使用起来挺好的,当你对这些信息都熟悉了的时候,就能直接在搜索的时候进行指定了。BGmi 支持用 regex
直接使用正则表达式来匹配结果。比如以上示例,我需要这样的结果:澄空学园&华盟字幕社的结果,第 9 话,那么这么输入命令:
bgmi search "擅长捉弄的高木同学" --regex-filter ".*澄空学园&华盟字幕社.*09.*" --download
则将只匹配出 [澄空学园&华盟字幕社]擅长捉弄的高木同学 第09话 MP4 720p
这个结果,并直接下载。
订阅番剧
运行命令:
bgmi add "擅长捉弄的高木同学"
即可订阅番剧。想要查看自己的番剧列表可以使用命令:bgmi list
,可以将目前订阅的番剧以及观看进度、字幕组信息输出出来。可以更改目前的观看进度,运行命令:
bgmi mark "擅长捉弄的高木同学" 9
即可标记本番的观看进度为第 9 集。想要查看本剧集的所有下载资源,使用命令:
bgmi fetch "擅长捉弄的高木同学"
即可将所有的资源列出来。注意到列出的资源包含多个字幕组、多种清晰度,我们同样可以设置过滤器,只关心符合某些条件的资源,例如运行命令 bgmi filter "擅长捉弄的高木同学" --subtitle "澄空学园&华盟字幕社" --include "720p"
,然后再执行 bgmi fetch "擅长捉弄的高木同学"
,就只会输出来自澄空学园&华盟字幕社清晰度为720p的资源。支持的过滤方式: include
制定要包含的关键词、exclude
排除掉包含某些关键词的选项、subtitle
指定字幕组、regex
使用正则表达式匹配。
那么订阅番剧到底有什么用处?其实订阅番剧最大的好处在于可以自动帮你追番、下载资源。
例如现在我用 bgmi mark "擅长捉弄的高木同学" 8
将看番进度标记为第八集,再使用命令:
bgmi update --download
bgmi list
BGmi 将会自动取得目前这部剧集的最新集,并添加下载任务。
上面的命令不加 --download
则不会进行下载,只会把进度标记为最新。
注意,其实你不必自己去手动地运行这个命令来保证能看到最新集。因为 BGmi 集成了定时任务:打开 BGmi 文件夹下的 cron.vbs 文件,内容如下:
set ws=wscript.createobject("wscript.shell") ws.run "powershell.exe bgmi update --download"
set ws2=wscript.createobject("wscript.shell")ws2.run "powershell.exe bgmi cal --force-update --download-cover"
过一段时间就会运行一下,也就是说会自动下载和更新番剧日历。若不想定时自动更新修改对应的命令就好。在 Linux 上使用的是 crontab 服务,查看当前的 crontab 服务请使用命令 crontab -l
。
取消订阅番剧使用命令:bgmi delete --name "擅长捉弄的高木同学"
其它
以上是这个工具的基本用法,还有更多高级用法和功能限于篇幅和上手难度我就略去了,在作者 GitHub 上都有教程。
希望大家玩得开心~
本文参考:RicterZ/BGmi 。
Python 部分参考:Windows下Python环境搭建图解(3.6.2)
Aria2 部分参考:Windows 下如何配置 Aria 2