为媒体库刮削而硬链接和改名
硬链接是干嘛的?
由于需要做种获取上传量及魔力收益,期间不能变动文件名及文件结构,但因其命名的原因,并不能被Emby/Plex/Jellyfin等媒体库正确识别和刮削。而硬链接通过一种类似于创建快捷方式的方法(说法不严谨但便于理解),在不影响原文件的情况下,更改其命名以适应刮削。
介绍一些工具
批量硬链接工具
Windows: HardLink
Linux(适用于群晖/QNAP等): hlink | PTtool
刮削改名工具
Windows: Episode-ReName | tMM
Linux(均可硬链接+改名): torcp | nas-tool | ikaros
使用torcp进行实战
以上众多工具中选择 torcp 的原因是其兼具硬链接与改名,仅需安装python环境无需复杂环境部署,并且可以使用当前个人认为最为活跃的TMDB(TheMovieDB)作为刮削命名查询,故选择。
由于本人只有Unraid,其操作过程与群晖/威联通等基于Linux的NAS系统可能存在些许差别,但依然可适用,请融会贯通。
安装Python3和pip
Unraid
首先在应用Tab内搜索 NerdPack GUI 并安装,我这里已经安装过
安装完毕后,可以在插件Tab内找到 Nerd Tools,点击那只企鹅,会跳转至其界面,在搜索框内搜索python:
将python3以及python-pip的右侧分别勾选为ON,再点击 APPLY 按钮即可安装。
群晖
群晖上的Python3安装引用项目README
- DSM 6.x 默认没有安装Python 3,需要在套件中心中搜索安装
Python 3
- 群晖安装pip
python3 -m ensurepip
- DSM 6.x 默认没有安装Python 3,需要在套件中心中搜索安装
威联通
需要在 App Center 中搜索安装
Python 3
而后安装pip 与群晖相似
检查
通过SSH连接NAS,在命令行中输入
python3 -V > Python 3.9.0 pip --version > pip 21.2.3
如有类似以上返回则说明安装成功。
安装
通过SSH连接NAS,在命令行中输入:
pip3 install torcp
会自动安装torcp及其需要的依赖。
(非必须)申请TMDB API
虽然该步骤并非必须,但推荐自己申请,以防网页请求过多造成任务失败。
打开 https://www.themoviedb.org/signup ,填写信息注册。注册完毕后,打开 https://www.themoviedb.org/settings/api ,填写信息申请API。
记下API密钥(v3 auth),稍后会用到。
使用torcp
假设下载目录为 /mnt/user/Download
,内含有Movies(电影)以及TVs(电视剧)两个分类,目标链接目录为 /mnt/user/LinkforEmby
。
以下命令按自身情况选择,无需都运行一遍!
将所有下载目录内所有
.mkv
和.mp4
链接至新目录,并使用TMDB API辅助查询名称torcp /mnt/user/Download -d /mnt/user/LinkforEmby --tmdb-api-key='12c1d*****************'
在其他位置还有一个全是电视剧的文件夹一并链接进来,并使用TMDB API辅助查询名称
torcp /mnt/user/guochanju -d /mnt/user/LinkforEmby --tv --tmdb-api-key='12c1d*****************'
下载目录里还有原盘一并进行链接,并使用TMDB API辅助查询名称
由于上一条命令默认跳过原盘(某些媒体库软件对原盘支持并不好),但目录内又有原盘,故需要添加参数,且原盘内最大的BDMV才是主影片,遂使用
--extract-bdmv
torcp /mnt/user/Download/Movies -d /mnt/user/LinkforEmby/Movies --extract-bdmv --tmdb-api-key='12c1d*****************'
以上一通操作后,将会获得一堆命名标准的文件夹,可以接入媒体库进行刮削操作。
凡事不是完美的,因程序限制依旧会有一些没能识别出的内容,它们被存放于 TMDbNotFound ,需要手动更改命名。命名参考Emby提供的规范:电影 | 剧集
更改完毕后将硬链接文件手动移动至对应分类文件夹。
媒体库刮削
媒体库的搭建在此不赘述,请根据自己喜好选择如Plex / Emby / Jellyfin媒体库程序。本文使用Emby作为例子。
由于是Docker版Emby,需要将目录映射进Docker。在Emby的Docker配置中添加一个路径映射
容器路径为Docker内对应主机路径的路径,可按自己喜好更改;主机路径设置为刚才创建的硬链接路径,务必再三确认是否为硬链接路径!!!
补充群晖下的路径设置,由于我没有群晖,根据网图修改而成,图源见水印。
路径添加完毕后,进入Emby管理面板,点击媒体库
,分别编辑电影与电视剧分类(如果没有请自行创建),分别添加 Movie 与 TV 文件夹。
添加完毕后点击返回,并刷新元数据即可。由于TMDB在大陆的连接性并不好,可能需要修改hosts等方法,超出本文主题不做赘述。
定时任务
设置定时任务以便自动硬链接及自动刮削,自动更新媒体库。
Unraid
使用SSH连接设备,输入
crontab -e
,移动到最后一行添加以下0 2 * * * torcp /mnt/user/Download/Movies -d /mnt/user/LinkforEmby/Movies --extract-bdmv --tmdb-api-key='12c1d*****************'
该命令涵义为每天凌晨2点运行
群晖
依次点击
控制面板
-任务计划
-新增
-计划的任务
-用户定义的脚本
,在计划Tab设置间隔,在任务设置Tab中运行命令填写先前运行的命令
本篇教程结束~Enjoy!
感谢
还有很多不同的参数应对不同的使用场景,如有需要请查阅README
请教下。这样硬链接后从qb直接删除种子及文件,硬链接文件夹中的也会自动删除吗?
不会 需要两者都删除
有需要可以在使用命令时添加 --symbolink 参数
例如:torcp /mnt/user/Download/Movies -d /mnt/user/LinkforEmby/Movies --extract-bdmv --symbolink --tmdb-api-key='12c1d*****************'
https://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
windows端的硬链接工具,集成在了资源管理器,非常好用