「自动追番」对我来说,其实没什么太大的吸引力。就目前来看,可追的番剧不多,追番的动力不大。偶尔想看什么番的话,「qBittorrent」内置的RSS工具完全可以胜任。找个好使的RSS订阅链接,简单操作一番就能轻松实现我的自动化下载需求。

但闲着也是闲着,不如找点事情做做。

AutoBangumi

AutoBangumi」是一款基于「蜜柑计划」和「qBittorrent」的全自动番剧下载&整理工具。

其工作原理十分简单:

  • 「AutoBangumi」将「蜜柑计划」提供的RSS内容,编写成合适的RSS下载规则,导入「qBittorrent」的RSS阅读器中;
  • 由「qBittorrent」负责追踪RSS信息、下载番剧;
  • 下载完毕后,「AutoBangumi」内置的重命名工具集会自动将番剧重命名为类似「番剧名 EXX」的格式,如「SPYxFAMILY E01.mp4」(重命名方式基于「qBittorrent」内api,不会影响做种);
  • 重命名后的视频文件符合 Jellyfin/Emby/Plex 等媒体程序的电视剧集命名标准,可以被直接识别以获取剧集信息。

简单地说,使用AutoBangumi实现自动化追番的流程是这样的:

注册蜜柑账号 → 订阅番剧 → 获取RSS链接 → 部署AutoBangumi → 部署qBittorrent → 部署媒体程序Plex/Emby/Jellyfin → 下载番剧 → 等待番剧元数据获取完毕 → 追番

大致流程图
大致流程图

最终效果大概是这样:

蜜柑计划

关于「蜜柑计划」

「蜜柑计划」是一个番剧BT资源整合网站,其主要特点是整合某部番剧现有的字幕组资源,按番剧按放送时间分门别类,以供快速索引。

但本质上也就是个界面好看些的BT网站罢了

注册账号

由于「AutoBangumi」主要依托「蜜柑计划」的订阅服务,所以需要先注册一个账号。

注册地址:https://mikanani.me/Account/Register

开启高级订阅

为了能在订阅番剧的时候可以选择简体繁体的字幕,以配合 AutoBangumi 创建下载规则,需要先开启「蜜柑计划」的「高级订阅」功能。这个功能大多数时候会被忽略。谁能注意得到按钮在账号设置里头啊!

点击「账号设置」

启用「高级订阅」

即可在订阅番剧时调出字幕选项。

订阅番剧

由于 AutoBangumi 会解析所有获得的 RSS 信息,因此在订阅番剧的时候要格外小心。稍不留神硬盘就会有被撑爆的风险。

订阅番剧有两种方式:「全部字幕组订阅」和「单个字幕组订阅」。

  • 点击番剧封面右下角的订阅按钮,即可订阅该番剧收纳的所有字幕组制作的片源。可以看到演示中的所有字幕组都被订阅了(得亏是没什么字幕组做这片,某些热门番剧字幕多达十数种,轻松撑爆硬盘不是问题)

模糊的话点击放大查看
模糊的话点击放大查看

  • 点击番剧封面,呼出二级菜单,选择一个字幕组,点击「订」,(开启了「高级订阅」才能)呼出三级菜单,选择想要的「订阅语言」,订阅该字幕组单种字幕的片源(硬盘无生命危险)

模糊的话点击放大查看
模糊的话点击放大查看

大多数字幕组都会提供简繁字幕,有些良心字幕组甚至会提供简日双语 & 繁日双语的字幕,清晰度上也会增加720p & 1080p 或是不同压制规格的片源。那么想要进行筛选的话,蜜柑计划就不够用了,需要在后续安装 AutoBangumi 时设置过滤值。

获取RSS地址

订阅番剧后,在「我的字幕组订阅更新」分类的右下角,复制「RSS订阅 」旁的图标内的链接。

RSS订阅的链接格式为:https://mikanani.me/RSS/MyBangumi?token=xxx%3d%3d

部署 AutoBangumi

根据官方说明,推荐在 NASLinux 服务器中使用推荐使用 Docker 运行 AutoBangumi。

以下教程均以未安装过 AutoBangumi / qBittorrent 为前提。

在 Linux 上部署

安装 Docker

若曾安装过 docker,先删掉:

sudo apt-get remove docker docker-engine docker.io containerd runc

安装依赖:

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

根据Linux发行版本的不同,安装步骤有所不同。下面以Debian为例,Ubuntu请参考「清华大学开源软件镜像站 - Docker Community Edition 镜像使用帮助 」。

安装信任 Docker 的 GPG 公钥:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加软件仓库:

sudo add-apt-repository \
   "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
   $(lsb_release -cs) \
   stable"

安装docker-ce

sudo apt-get update
sudo apt-get install docker-ce

测试 Docker 是否安装:

docker run --rm hello-world

输出以下内容,则 Docker 已成功安装

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

安装 Docker Compose

Docker Compose 可以轻松管理多个 Docker 容器。这里推荐安装Compose V2,命令由docker-compose改为docker compose,和原先命令基本没区别。少输一个-,懒人福音。

sudo apt-get update
sudo apt-get install docker-compose-plugin

测试 Docker Compose 是否安装:

docker compose version

输出以下内容,则 Docker Compose 已成功安装

Docker Compose version v2.3.3

安装 qBittorrent & AutoBangumi

创建AutoBangumi文件夹,在其中创建docker-compose.yml文件,填入以下内容:

version: "3.9"
services:

  qBittorrent:
    image: johngong/qbittorrent:latest
    container_name: qBittorrent
    ports:
      - 8989:8989 
    environment:
      - PUID=0
      - PGID=0
      - QB_WEBUI_PORT=8989
    volumes:
      - ./qb:/config
      - ./Downloads:/Downloads
    restart: unless-stopped

  AutoBangumi:
    image: estrellaxd/auto_bangumi:latest
    container_name: AutoBangumi
    depends_on:
      - qBittorrent
    environment:
      - TZ=Asia/Shanghai
      - AB_DOWNLOADER_HOST=ip:8989
      - AB_DOWNLOADER_USERNAME=admin
      - AB_DOWNLOADER_PASSWORD=adminadmin
      - AB_INTERVAL_TIME=1800
      - AB_METHOD=Advance
      - AB_GROUP_TAG=True
      - AB_NOT_CONTAIN=720|繁体|CHT|JPTC|繁日|BIG5
      - AB_DOWNLOAD_PATH=/Downloads/AutoBangumi
      - AB_RSS=填入你的RSS订阅链接
      - AB_DEBUG_MODE=True
      - AB_EP_COMPLETE=False
      - AB_SEASON_ONE=True
      - AB_RENAME=True
      - AB_TMDB=True
      - AB_LANGUAGE=zh
      - AB_HTTP_PROXY=填入你的代理,不需要可以删掉这行
    restart: unless-stopped
    

Docker Compose 的基本命令如下,需要注意的是,使用docker compose命令需要在存放docker-compose.yml的文件夹中进行。

启动容器:

docker compose up -d

停止容器:

docker compose down

如果一切(创建RSS规则、重命名文件)顺利,输入命令docker logs AutoBangumi,应当有以下日志输出:

docker logs AutoBangumi              
2022-06-12 22:04:05 INFO:                 _        ____                                    _ 
2022-06-12 22:04:05 INFO:      /\        | |      |  _ \                                  (_)
2022-06-12 22:04:05 INFO:     /  \  _   _| |_ ___ | |_) | __ _ _ __   __ _ _   _ _ __ ___  _ 
2022-06-12 22:04:05 INFO:    / /\ \| | | | __/ _ \|  _ < / _` | '_ \ / _` | | | | '_ ` _ \| |
2022-06-12 22:04:05 INFO:   / ____ \ |_| | || (_) | |_) | (_| | | | | (_| | |_| | | | | | | |
2022-06-12 22:04:05 INFO:  /_/    \_\__,_|\__\___/|____/ \__,_|_| |_|\__, |\__,_|_| |_| |_|_|
2022-06-12 22:04:05 INFO:                                             __/ |                  
2022-06-12 22:04:05 INFO:                                            |___/                   
2022-06-12 22:04:05 INFO: Version 2.4.11  Author: EstrellaXD Twitter: https://twitter.com/Estrella_Pan
2022-06-12 22:04:05 INFO: GitHub: https://github.com/EstrellaXD/Auto_Bangumi/
2022-06-12 22:04:05 INFO: Starting AutoBangumi...
2022-06-12 22:04:09 INFO: Add RSS Feed successfully.
2022-06-12 22:04:09 INFO: Rebuilding data information...
2022-06-12 22:04:11 INFO: Adding 辉夜大小姐想让我告白 究极浪漫 Season 1
2022-06-12 22:04:11 INFO: Adding Summer Time Rendering Season 1
2022-06-12 22:04:11 INFO: Adding SPYxFAMILY Season 1
2022-06-12 22:04:11 INFO: Adding Deaimon Season 1
2022-06-12 22:04:11 INFO: Adding Kawaii dake ja Nai Shikimori-san Season 1
2022-06-12 22:04:11 INFO: Start adding rules.
2022-06-12 22:04:11 INFO: Finished.
2022-06-12 22:04:11 INFO: Waiting for downloading torrents...
2022-06-12 22:14:11 INFO: Finished checking 5 files' name.
2022-06-12 22:14:11 INFO: Renamed 0 files.
2022-06-12 22:14:11 INFO: Finished rename process.

大致目录结构如下,可以自行调整:

AutoBangumi
├── qb
│   └── config
├── Downloads
│   └── AutoBangumi
│       ├── SPYxFAMILY
│       │   └── Season 01
│       └── 夏日重现
│           └── S01
└── docker-compose.yml

安装 Emby(可选)

在上面的docker-compose.yml底下加入以下内容:

  emby:
    image: lovechen/embyserver:latest
    container_name: emby
    # network_mode: host
    ports:
      - 8096:8096
      - 8920:8920
      - 1900:1900/udp
      - 7359:7359/udp
    environment:
      - PUID=0
      - PGID=0
      - GIDLIST=0
      - TZ=Asia/Shanghai
      - HTTP_PROXY="http://你的代理IP:端口/"
      - HTTPS_PROXY="http://你的代理IP:端口/"
    devices:
      - /dev/dri:/dev/dri
    volumes:
      - ./emby:/config
      - ./Downloads:/media/Bangumi
    restart: unless-stopped

安装Plex(可选):

  plex:
    image: linuxserver/plex
    container_name: plex
    ports:
      - 32400:32400
      - 1900:1900/udp
      - 3005:3005
      - 5353:5353/udp
    environment:
      - TZ=Asia/Shanghai
      - PUID=0
      - PGID=0
      - VERSION=docker
    volumes:
      - ./plex:/config
      - ./Downloads:/media/Bangumi
    restart: unless-stopped

更新 qBittorrent / AutoBangumi

更新容器前需要先停止容器:

docker compose down

再更新:

docker compose pull

然后重新启动

docker compose up -d

也可以只更新 AutoBangumi,这个名称对应的是container_name

docker compose pull AutoBangumi

在 NAS 上部署

下面以群晖DSM 7.1-42661 Update 1系统为例,介绍使用 Docker 套件安装 AutoBangumi 的具体步骤。

安装 Docker 套件

在套件中心搜索「Docker」并安装。

打开安装好的 Docker 应用,点击「注册表」-「设置」

选中当前启用的「Docker hub」存储库并编辑。勾选「启用注册表镜像」,并在「注册表镜像URL」中填入腾讯云的 Docker hub 加速镜像,以加速镜像下载速度。

https://mirror.ccs.tencentyun.com

保存后,根据提示重启Docker应用。

安装 qBittorrent

在「注册表」中搜索「johngong/qbittorrent」,下载最新的latest版本。

待镜像下载完毕后,双击该镜像以安装。

网络设置选择「bridge」,也可以选择「使用与 Docker Host 相同的网络」,这样会直接使用默认的8989端口。

重命名容器名称,如「qb」;勾选「启用自动重新启动」,可在重启后自动启动qb;勾选「启用资源限制」,这将使容器执行阶段具有DSM root身份权限和所有功能,避免出现无法下载的情况。

随后点击「高级设置」

根据「qBittorrent 的参数说明」,如果你想自定义端口,需要在这里修改QB_WEBUI_PORT的值。如果出现无法下载的情况(没有读写权限),可以将UIDGID改成0

其他保持默认即可。

端口可以只保留一个8989,暴露Web UI即可。

存储空间设置中,需要装载configDownloads文件夹。前者存储 qBittorrent 配置信息,后者为下载文件夹。下载文件夹一定要记得装载,否则下载的文件就找不到了。

之后启用即可。随后测试连接,地址为:ip:8989

安装 AutoBangumi

安装步骤与上一节安装 qBittorrent的基本一致。

在「注册表」中搜索「estrellaxd/auto_bangumi」,下载最新的latest版本。

下载完成后启用。网络设置选择「bridge」,勾选「启用自动重新启动」,随后点击「高级设置」。

点击新增按钮,依次填入以下新变量,请根据需求取舍

变量
AB_DOWNLOADER_HOST192.168.31.123:8989
AB_DOWNLOADER_USERNAMEadmin
AB_DOWNLOADER_PASSWORDadminadmin
AB_INTERVAL_TIME1800
AB_METHODAdvance
AB_GROUP_TAGTrue
AB_NOT_CONTAIN720
AB_DOWNLOAD_PATH/Downloads/autobangumi,或者/Downloads
AB_RSS填入你的RSS订阅链接
AB_DEBUG_MODETrue
AB_EP_COMPLETEFalse
AB_SEASON_ONETrue
AB_RENAMETrue
AB_TMDBTrue
AB_LANGUAGEzh
AB_HTTP_PROXY比如127.0.0.1:2333,用不到可以删除

有关变量的说明请参考「配置说明」一节,无需进行存储空间设置,直接启用即可。如果一切顺利,选中 AutoBangumi 容器并点击「详情」。

点击「日志」,应当有如下日志输出:

更新 qBittorrent / AutoBangumi

如果容器镜像有更新,先在「注册表」中重新下载一遍最新的latest版本。

停止容器,对着该容器右键 → 操作 → 重置 → 选择是,重置完毕后,再启动容器,即可完成更新。

配置说明

关于上述配置,请参考各程序的使用说明进行操作,或是自行参考下方的「参数说明」一节。

qBittorrent

  • qBittorrent 选择的是由「johngong」制作的集成 qBittorrent EE 的版本「qBittorrent-qBittorrentEE」,个人推荐安装此版本的 qBittorrent 以获得最佳使用体验。
  • 默认暴露 qBittorrent 的WEBUI的端口,如果有自定义需求,需要同时更改portsenvironment中的端口设置项。假如要改成1234,那么需要修改上述配置为:
      ports:
        - 1234:1234
      environment:
        - QB_WEBUI_PORT=1234

AutoBangumi

  • AB_DOWNLOADER_HOST需要填写 qBittorrent 的webui链接。由于 AutoBangumi 对连接 qBittorrent 的网络要求很严格,建议填写服务器的ip地址而不是localhost127.0.0.1
  • AB_DOWNLOADER_USERNAME是 qBittorrent 的webui用户名,默认为adminAB_DOWNLOADER_PASSWORD是 qBittorrent 的 webui 密码,默认为adminadmin。如果有变更qBittorrent用户名和密码的需求,在修改完后一定要同时修改AutoBangumi这两处设置。
  • AB_NOT_CONTAIN是设置qBittorrent订阅规则的选项,支持使用正则。正则我也不会,但|的意思是「和」。假如没有在蜜柑计划中启用高级订阅,配置中的AB_NOT_CONTAIN=720|繁体|CHT|JPTC|繁日基本能干掉大多数繁体字幕。
  • AB_RSS需要填入你自己的RSS订阅链接。如:

    AB_RSS=https://mikanani.me/RSS/MyBangumi?token=xxx%3d%3d
  • AB_DOWNLOAD_PATH需要填写的是 qBittorrent 内的路径,而不是真实路径。如/Downloads/Downloads/Bangumi
  • AB_RENAME2.5.0版本新增的一个开关,用于启用自动重命名
  • AB_METHOD为重命名方式设置,推荐使用Advance
  • AutoBangumi 会在 qBittorrent 内创建一个Bangumi分类,这个分类内的文件会被自动重命名。也就是说,请不要在这个文件夹内放置任何「会被重命名」(命中重命名数据库)的文件。同理,有任何需要被重命名的文件(比如还没用 AutoBangumi 时下载的番剧),丢到这个分类内就会被重命名。

题外话

关于 AutoBangumi

谨慎开启AB_EP_COMPLETE历史番剧下载功能,否则就会这样:

随后导致这样:

不过程序还在持续更新中,这个问题应该可以得到解决。

关于 qBittorrent

qBittorrent 自带的Web UI并不好看,可以更换成「qb-web」(如上上图)。提供的功能够用,还直观易操作。

安装方法很简单。在「qb-web」的 GitHub releases 页面下载最新版压缩包。

第一个名字很长的 zip 便是
第一个名字很长的 zip 便是

我存了一份备份,如果下不动的话可以到这里下载:传送门

下载完成后解压,解压出来的目录大致如下:

dist
├── INSTALL.md
└── public
    ├── css
    ├── fonts
    ├── img
    ├── index.html
    ├── js
    ├── login.html
    ├── manifest.json
    ├── precache-manifest.7f0ae58567752d7bca87ed2bc0894c33.js
    ├── robots.txt
    ├── service-worker.js
    └── workbox-v4.3.1

你可以将「dist」重命名为「qb-web」或「webui」,随后将其复制到NAS对应的映射文件夹中(Linux同理)。

再在qBittorrent的 Web UI中,点击设置小齿轮,选择「Web UI」菜单,在「使用备用Web UI」一栏勾选,于文件路径填入/config/webui,保存启用。

随后便会自动跳转到「qb-web」。

参数说明

AutoBangumi

环境变量作用参数
TZ时区Asia/Shanghai
AB_INTERVAL_TIME间隔时间1800
AB_DOWNLOADER_HOSTqBittorrent 的地址和端口号localhost:8080
AB_DOWNLOADER_USERNAMEqBittorrent 的用户名admin
AB_DOWNLOADER_PASSWORDqBittorrent 的密码adminadmin
AB_METHOD重命名方法, normal 保留字幕组信息, pn 为纯净模式, Advance可以根据上级文件夹名称对文件进行重命名, none 不重命名pnnomalAdvancenone
AB_GROUP_TAG是否在下载规则中添加组名TrueFalse
AB_DOWNLOAD_PATHqBittorrent 中的下载路径必填项
AB_RSSRSS 订阅地址必填项
AB_NOT_CONTAIN输入想要过滤的元素720
AB_DEBUG_MODE调试模式TrueFalse
AB_EP_COMPLETE历史番剧下载TrueFalse
AB_SEASON_ONE开启后如果没有 Season 信息自动添加为 S01TrueFalse
AB_REMOVE_BAD_BT碰到无法重命名的合集等,自动删除种子TrueFalse
AB_RENAME是否开启番剧自动重命名TrueFalse
AB_TMDB是否开启 TMDB 匹配开关TrueFalse
AB_LANGUAGE保存文件夹语言选择,选择 zh则为中文,其余情况为日文zh或其他
AB_HTTP_PROXY代理设置,用于连接蜜柑计划127.0.0.1:2333

qBittorrent

详见 Docker Hub

参数说明
--name=qbittorrent容器名
-p 8989:8989web访问端口 IP:8989;(默认用户名:admin;默认密码:adminadmin);此端口需与容器端口和环境变量保持一致,否则无法访问
-p 6881:6881BT下载监听端口
-p 6881:6881/udpBT下载DHT监听端口
-v /配置文件位置:/configqBittorrent配置文件位置
-v /下载位置:/DownloadsqBittorrent下载位置
-e UID=1000uid设置,默认为1000
-e GID=1000gid设置,默认为1000
-e UMASK=022umask设置,默认为022
-e TZ=Asia/Shanghai系统时区设置,默认为Asia/Shanghai
-e QB_WEBUI_PORT=8989web访问端口环境变量
-e QB_EE_BIN=false(true/false)设置使用qBittorrent-EE,默认不使用
-e QB_TRACKERS_UPDATE_AUTO=true(true/false)自动更新qBittorrent的trackers,默认开启
-e QB_TRACKERS_LIST_URL=trackers更新地址设置,仅支持ngosang格式,默认为 https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt

参考