unraid安装movie-robot并配置硬链接,最适合国人的观影姿势!
写在前面
最近有一款根据豆瓣来管理自己影视库的软件很火,我一早就是支持了作者的。在一开始,这个软件的用法就是联动qbittorrent下载器,豆瓣上的电影/电视剧点击了想看之后,qb自动下载,下载之后的文件emby并不能完美的识别,还是需要手动改名,或者有保种需求的同学利用hlink硬链接然后tmm刮削等方法改名给emby识别。说实话在这之前,我只是任务这是一个好工具,但还不能算是一个好用的工具。自从2月10号更新了基于硬链接的自动改名功能,突然就香起来了。
现在这个软件是能把你豆瓣上点击了想看的电影/电视剧联动qb去下载,下载好之后自动根据tmdb网站的影片信息来硬链接重命名,并使用bark或者企业微信通知你,做种看片两不误,而你全程只点击了豆瓣上的一个想看按钮。
我写文章是2022/2/11,到今天为止电视剧的硬链接重命名还没有推出,只有电影的硬链接重命名,作者还在优化电视剧的重命名识别,以及还没有更新webui,比如识别的宽容度,精确度等都要靠作者长期的努力。一些配置全靠手动更改yml文件的内容来实现,小白比较容易踩坑,故写下这篇文章告诉大家踩过的坑。
2022/2/13将博客内容同步更新张大妈,今天有电视剧的硬链接重命名了,和电影的一模一样,就不赘述了。
一些顾虑
1.全自动观影,下载的影片什么质量能满足我吗?
这个软件下载电影有自己的一套规则,原理是按照pt站点影片的名字,通过正则表达式来匹配比如1080p、2160p、web-dl等字眼,再按照权重比如影片文件大小、做种人数等来匹配,下载到符合自己预期的质量,基本还是可靠的。作者也预设了三套不同影片质量的规则,或者你也可以自己修改权重呀~
2.软件是怎么识别名字的,重命名准吗?
作者接入了tmdb的api,所以在使用前我们要去注册一下tmdb的账号并且申请个人使用的key,软件通过分析影片的名字来获取tmdb上的id并且重命名,自我感觉是比tmm准多了。现在群里讨论的关于日后动漫番剧的识别,作者的意思可能会引入机器学习,所以相对以及是重命名成功率极高的软件了。
要注意的是tmdb的网站没有墙,但是api有墙,最好学习一下怎么添加dns或者怎么富强民主。
安装过程
我使用的是unraid平台,下载器为qbittorrent,播放器为emby,移动设备为ios,软路由一直处于国外留学的状态。和我一样的同学可以直接照抄我的步骤。
1. docker配置
unraid新建一个docker,按照图中填写参数,映射对应路径。
/data是容器配置文件目录不必多说,LICENSE_KEY是环境变量填写你的激活码,/downloads底下分为mv、tv、emby-mv、emby-tv四个目录,其中mv、tv是我qbittorrent的下载目录,emby-mv、emby-tv下载完成后硬链接指向的目录,供给emby读取。
一共是要映射两个路径,一个环境变量。除了配置文件这里路径之外,另一个路径要配置的和你的qb一样,这样才能下载新电影自动link。
docker的映射我建议都和我这样子,给机器人映射一个大的文件夹,里面包含了你下载的文件夹和你要硬链接的文件夹,而不是/downloads映射一个,/link也映射一个,这样有很大概率硬链接不成功。
以及马上要支持的电视剧硬链接,如果是再新建一个电视剧的映射,在我看来这都不是最优解,只需要给机器人映射一个大的文件夹包含了电影文件夹、电视文件夹以及你要硬链接的文件夹那就完全足够!这句话也是硬链接的关键。
2. 配置文件更改
安装好docker启动会报错,我们可以手动停止容器,下面我们来改一下配置文件。
如果你和我一样,使用的是emby+qbittorrent,那只要把emby和qb要替换的掉就可以了,如果是plex或者tr的在最上面更改即可。
pt站点填上用到的,用不到的就直接删除或者#注释掉,不然也是会报错的。
这里主要是你保存的模式,比如电影来说,目前最多可以有 type、area、my_cate、path、 link_path五个类别, 其中type、area从豆瓣识别,my_cate、path分别是你qb设置中的分类和保存路径,要和你qb里面填的一样才行。link_path为下载之后要硬链接的路径,下面贴一下我自己的。
以上基本app_config.yml配置就差不多了。
movies_config.yml其实默认使用硬链接的话,只需要填写一个tmdb的api,是用来识别你下载的文件并且重命名的。
notify_config.yml是通知,我使用的是bark,只需要填写push_url足够,也没有什么难度的。
企业微信的使用在社区内有另一个文章介绍,我自己也不用,就不过过多阐述了。
到这里三个需要配置的文件都完成了。
3. 检查硬链接
我这里给出一种检查自己是否可以硬链接的方法,如果同学在抄作业的时候一直硬链接不成功,可以先这样检查一遍。
启动movie-robot,启动的前提是上面配置文件里的qb和emby都正常启动,配置文件正确填写的情况下,否则日志会报错。
在我这个例子中,我把宿舍机的/mnt/user/downloads映射到了容器内的/downloads目录,打开容器的控制台,输入先cd /,ls能看见/downloads,cd /downloads,继续ls,能看见mv、tv、emby-mv、emby-tv四个文件夹,分别放电影和电视节目。我的需求是,qb下载的电影在/downloads/mv目录下,这个在qb的分类中已经设置好,通过硬链接将下载的文件“复制”到emby-mv文件夹下,达到emby播放器只需要读取/downloads/emby-mv文件夹的视频文件。我们在mv文件夹下用touch命令创建一个1.txt,然后使用ln命令把1.txt硬链接到emby文件夹下,看看能否成功。
ln /downloads/mv/1.txt /downloads/emby-mv/1.txt
ln 源路径 目标路径,即为最简单的硬链接的方式,如果成功了,cd到emby-mv文件夹,ls查看一下,确实存在1.txt,这说明我们的硬链接是可行的。
如果出现cross-device link字样,说明在你源路径和目标路径之间不能够硬链接,需要你再仔细检查一下。
我之前虽然物理上实际并没有跨盘,但是还是会提示跨盘。然后只给机器人挂载了一个大的文件夹,就能成功硬链接了。
4. 开始硬链接
装好之后我们按照豆瓣机器人下载的电影都是会自动硬链接加上重命名的,可以称为增量视频,而我们在downloads文件夹中原本就有的视频文件可以叫做存量视频。
增量视频在下载好之后自动会硬链接,存量视频则在刚装好的时候手动运行一遍硬链接命令就可。
打开容器的控制台,默认应该就是在/app目录,输入以下命令:
python commandapp.py -w=/data -a=moviesmanager --source-type=movie --source-dir=/downloads/mv --target-dir=/downloads/emby-mv --file-mode=link
其中的source-dir(源路径),target-dir(目标路径)需要自行替换,如果是电视剧,将--source-type=movie改为--source-type=tv即可。
可以看到这几部电影都手动硬链接并且重命名成功了,硬链接加重命名的效果就是下图所示。
上面是存量视频的硬链接,而增量视频的硬链接是不需要我们操心的,自动在qb下载完成之后就会硬链接,但是我们需要做的是,给qb映射的文件夹和给movie-robot映射的文件夹路径相同,并且在app_config.yml文件中配置的也相同,这样就会自动硬链接了。
最后感谢一下作者开发了这么好用的软件并且犹如母猪一般的更新速度~
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
yee329
校验提示文案
Angus疯子
校验提示文案
Adkkf
校验提示文案
ziakkk
校验提示文案
随便给个名字我
校验提示文案
值友5647861819
校验提示文案
妖子
校验提示文案
无形之刃
校验提示文案
好冷T_T
校验提示文案
pang天
校验提示文案
海涛
校验提示文案
海涛
校验提示文案
兜风乌龟
校验提示文案
值友9052223078
校验提示文案
wtj1992
校验提示文案
wtj1992
File "/app/commandapp.py", line 67, in
App.action_movies_manager(mconfig['tmdb']['api_key'], args.file_mode, args.use_country_folder, args.source_type,
File "yee/app.py", line 87, in yee.app.App.action_movies_manager
File "yee/core/moviefilemanager.py", line 93, in yee.core.moviefilemanager.MovieFileManager.walk_link_movies
File "yee/core/moviefilemanager.py", line 104, in yee.core.moviefilemanager.MovieFileManager.walk_link_movies
File "yee/core/moviefilemanager.py", line 316, in yee.core.moviefilemanager.MovieFileManager.link_movie
File "yee/movie/movieanalyze.py", line 27, in yee.movie.movieanalyze.MovieAnalyze.analyze_movie
AttributeError: 'NoneType' object has no attribute 'year'
校验提示文案
番禺靓仔
校验提示文案
番禺靓仔
校验提示文案
wtj1992
File "/app/commandapp.py", line 67, in
App.action_movies_manager(mconfig['tmdb']['api_key'], args.file_mode, args.use_country_folder, args.source_type,
File "yee/app.py", line 87, in yee.app.App.action_movies_manager
File "yee/core/moviefilemanager.py", line 93, in yee.core.moviefilemanager.MovieFileManager.walk_link_movies
File "yee/core/moviefilemanager.py", line 104, in yee.core.moviefilemanager.MovieFileManager.walk_link_movies
File "yee/core/moviefilemanager.py", line 316, in yee.core.moviefilemanager.MovieFileManager.link_movie
File "yee/movie/movieanalyze.py", line 27, in yee.movie.movieanalyze.MovieAnalyze.analyze_movie
AttributeError: 'NoneType' object has no attribute 'year'
校验提示文案
wtj1992
校验提示文案
妖子
校验提示文案
值友9052223078
校验提示文案
兜风乌龟
校验提示文案
海涛
校验提示文案
海涛
校验提示文案
值友5647861819
校验提示文案
随便给个名字我
校验提示文案
pang天
校验提示文案
好冷T_T
校验提示文案
ziakkk
校验提示文案
yee329
校验提示文案
无形之刃
校验提示文案
Adkkf
校验提示文案
Angus疯子
校验提示文案