为媒体库刮削而硬链接和改名

硬链接是干嘛的?

由于需要做种获取上传量及魔力收益,期间不能变动文件名及文件结构,但因其命名的原因,并不能被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 并安装,我这里已经安装过

    1_nerdpack

    安装完毕后,可以在插件Tab内找到 Nerd Tools,点击那只企鹅,会跳转至其界面,在搜索框内搜索python:

    1_nerdgui

    python3以及python-pip的右侧分别勾选为ON,再点击 APPLY 按钮即可安装。

  • 群晖

    群晖上的Python3安装引用项目README

    • DSM 6.x 默认没有安装Python 3,需要在套件中心中搜索安装 Python 3
    • 群晖安装pip
    python3 -m ensurepip
  • 威联通

    需要在 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),稍后会用到。

3_tmdb

使用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*****************'

以上一通操作后,将会获得一堆命名标准的文件夹,可以接入媒体库进行刮削操作。

4_link

凡事不是完美的,因程序限制依旧会有一些没能识别出的内容,它们被存放于 TMDbNotFound ,需要手动更改命名。命名参考Emby提供的规范:电影 | 剧集
更改完毕后将硬链接文件手动移动至对应分类文件夹。

媒体库刮削

媒体库的搭建在此不赘述,请根据自己喜好选择如Plex / Emby / Jellyfin媒体库程序。本文使用Emby作为例子。

由于是Docker版Emby,需要将目录映射进Docker。在Emby的Docker配置中添加一个路径映射

5_unraid

容器路径为Docker内对应主机路径的路径,可按自己喜好更改;主机路径设置为刚才创建的硬链接路径,务必再三确认是否为硬链接路径!!!

补充群晖下的路径设置,由于我没有群晖,根据网图修改而成,图源见水印。

5_synology

路径添加完毕后,进入Emby管理面板,点击媒体库,分别编辑电影与电视剧分类(如果没有请自行创建),分别添加 MovieTV 文件夹。

5_addpath

添加完毕后点击返回,并刷新元数据即可。由于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!

感谢

ccf-2012/torcp

还有很多不同的参数应对不同的使用场景,如有需要请查阅README