Skip to content

电视剧/番剧自动化重命名工具, 一键批量改名. 可配合QBittorrent下载后自动重命名, 方便Emby自动刮削. 支持Windows, Linux, MacOS, Docker 和 群晖套件环境运行

License

Notifications You must be signed in to change notification settings

Nriver/Episode-ReName

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f119fee · Aug 23, 2024
Jul 25, 2022
Aug 9, 2022
Aug 17, 2022
Aug 23, 2024
May 12, 2023
May 23, 2024
Oct 19, 2021
Apr 16, 2024
Apr 22, 2024
Apr 8, 2022
Aug 29, 2023
Dec 17, 2021
Oct 21, 2021
Oct 21, 2021
Mar 4, 2023

Repository files navigation

📝 Episode-ReName

Github all releases GitHub license Maintenance GitHub release

懒人包下载

电视剧/番剧自动化重命名工具. 本工具可以对大部分资源进行重命名处理. 主要是给资源重命名后给Emby, Jellyfin, Tiny Media Manager 等软件刮削数据使用. 也可以配合qbitorrent下载文件后自动重命名, 具体使用方法请看下面的说明.

⚠️ 注意

注意0: 本工具是命令行工具, 没有界面, 没有界面, 没有界面, 不要问我为什么双击exe没有反应!

注意1: 需要重命名的文件必须在类似 Season 1, s1 的目录中才会被处理. 这样设置是为了防止误操作.

注意2: 对文件夹使用本程序会删除没有按照规范命名的 jpg, png, nfo, torrent 文件!!如果有需要的文件请提前备份. 关于文件命名规范请参考强制的规范元数据结构.

注意3: 请不将本程序放在含有空格的路径中, 路径可以有中文但是不能有空格, 切记!

🦮 目录

使用场景1 - 📁 右键菜单调用

右键菜单快速重命名

  1. Release直接下载最新的exe程序
  2. 修改 右键菜单 添加.reg 的exe路径并导入注册表

添加注册表

  1. 找到要重命名的文件/文件夹, 右键点击"自动剧集命名".

右键重命名

注:可以多选进行批量操作. win10多选超过15个, 右键菜单会消失, 可以运行win10 右键多文件限制修改.reg将限制修改成999个.

使用场景2 - 📥 windows的qbitorrent下载后自动重命名

qb下载自动重命名

可以在qbittorrent 中进行设置, 实现下载完成后自动重命名

  1. 选项—>BitTorrent—>做种限制—>做种0分钟—>暂停或删除做种
  2. 选项—>下载—>完成时运行外部程序—>命令行
D:\Test\EpisodeReName.exe "%D" 15

参数说明

  • EpisodeReName工具所在路径
  • "%D"是文件下载路径, 这个一般不要修改
  • 最后的数字是执行延时, 单位是秒, 因为qb下载完成会锁住文件, 需要等一段时间来让它释放, 时间长短可自行调整

以上为简易参数, 需要其它功能请参考下面的复杂参数模式

D:\Test\EpisodeReName.exe --path "%D" --delay 15 --overwrite 1

具体参数请看下面的复杂参数模式章节

使用场景3 - 📥 群晖套件版qbittorrent下载后自动重命名

  1. 群晖需要安装qbittorrent套件和python3套件
  2. 群晖的qb使用的是admin账户, 请将EpisodeReName.pycustom_rules.py, utils目录放到群晖File Station的homes/admin 目录下, 或者手动通过ssh上传到/var/services/homes/admin目录 或 /volume1/homes/admin目录
  3. 设置下载后自动运行改名,修改qb配置: 下载 勾选 Torrent 完成时运行外部程序, 下面填上
/usr/local/bin/python3 /var/services/homes/admin/EpisodeReName.py --path "%D" --delay 15 --overwrite 1
  1. 取消做种,修改qb配置: BitTorrent做种限制 改成 当分享率达到0,当做种时间达到0分钟然后暂停torrent

使用场景4 - 🐳 docker版qbittorrent下载后自动重命名

测试了以下三个镜像 linuxserver/qbittorrent, superng6/qbittorrentee, johngong/qbittorrent, 其它镜像操作也是类似的

  1. 下载 EpisodeReName.pycustom_rules.py, utils目录到docker的宿主机上
  2. 复制到docker容器里,这里以从宿主机复制到docker容器根目录 / 为例

linuxserver和johngong用这个命令复制

docker cp EpisodeReName.py qbittorrent:/
docker cp custom_rules.py qbittorrent:/

superng6的容器名字要改成qbittorrentee

docker cp EpisodeReName.py qbittorrentee:/
docker cp custom_rules.py qbittorrentee:/
  1. 设置下载后自动运行改名,修改qb配置: 下载 勾选 Torrent 完成时运行外部程序, 下面填上
python3 /EpisodeReName.py --path "%D" --delay 15 --overwrite 1
  1. 取消做种,修改qb配置: BitTorrent做种限制 改成 当分享率达到0,当做种时间达到0分钟然后暂停torrent

注: 以上方法写入的文件在更新镜像后可能会被删除,你可以把py文件放到你自己映射的下载目录里,改好对应的路径就行

使用场景5 - 🪟 windows命令行运行

😊 简易参数模式

可以直接传入文件路径, 注意有空格的路径加双引号

D:\Test\EpisodeReName.exe "D:\我的番剧\XXX\Season 1"

可以传入第二个参数, 作为重命名的延迟. 这个参数主要是配合qbitorrent使用, 避免qb锁定文件导致重命名失败. 一般停止做种15秒后在操作能确保文件被释放.

D:\Test\EpisodeReName.exe "D:\我的番剧\XXX\Season 1" 15

🤯 复杂参数模式

使用方法示例

延迟1秒后重命名, 如果有同名文件, 取消重命名操作

EpisodeReName.exe --path D:\down\XXX\s2 --delay 1 --overwrite 0

(测试)命名格式修改,识别分辨率,输出结果类似于 S01E01 - 1080p.mp4, 以下两个命令效果相同

EpisodeReName.exe --path D:\down\XXX\s2 --parse_resolution 1
EpisodeReName.exe --path D:\down\XXX\s2 --name_format "S{season}E{ep} - {resolution}"

使用 -h 参数查看支持的参数

D:\Test\EpisodeReName.exe -h

目前支持的参数

  --path PATH           目标路径
  --delay DELAY         重命名延迟(秒) 配合qb使用的参数, 默认为0秒不等待
  --overwrite OVERWRITE
                        强制重命名, 默认为1开启覆盖模式, 0为不覆盖, 遇到同名文件会跳过, 结果输出到error.txt
  --name_format NAME_FORMAT
                        (慎用) 自定义重命名格式, 参数需要加引号 默认为 "S{season}E{ep}" 可以选择性加入 系列名称如 "{series} - S{season}E{ep}"
  --name_format_bypass NAME_FORMAT_BYPASS
                        (慎用) 自定义重命名格式, 对满足格式的文件忽略重命名步骤
  --parse_resolution PARSE_RESOLUTION
                        (慎用) 识别分辨率,输出结果类似于 `S01E01 - 1080p.mp4`, 1为开启, 0为不开启. 开启后传入的 name_format 参数会失效, 强制设置为
                        "S{season}E{ep} - {resolution}"
  --force_rename FORCE_RENAME
                        (慎用) 即使已经是标准命名, 也强制重新改名, 默认为0不开启, 1是开启
  --replace REPLACE [REPLACE ...]
                        自定义替换关键字, 一般是给字幕用, 用法 `--replace chs chi --replace cht chi` 就能把chs和cht替换 成chi, 可以写多组关键字
  --use_folder_as_season USE_FOLDER_AS_SEASON
                        优先使用父级文件夹中的季数来代替文件名中的季数, 默认为0不开启, 1是开启
  --del_empty_folder DEL_EMPTY_FOLDER
                        删除空的子目录, 默认为0不开启, 1是开启

使用场景6 - 🐧 Linux终端运行

本程序支持在linux中运行, 需要python3运行环境

先将整个项目clone下来

git clone https://github.com/Nriver/Episode-ReName

使用

python3 -m pip install -r requirements.txt --user

命令来安装相关模块

使用以下命令调用程序进行重命名操作

python3 EpisodeReName.py "/home/user/我的番剧/XXX/Season 1"

🛠️ 脚本编译成可执行程序

如果你想自己将python脚本打包成exe, 需要python3运行环境.

安装pyinstaller模块.

可以使用以下命令来安装相关模块

pip3 install -r requirements.txt

将脚本打包成可执行程序

pyinstaller -F EpisodeReName.py

将脚本打包成可执行程序 (不带启动黑框)

pyinstaller -F -w EpisodeReName.py

📜 强制的规范元数据结构

  1. 剧季文件夹:Season1 / Season 1 / s1 / S1
  2. 媒体源文件:SxxExx (.mkv / .mp4 等常见视频格式)
  3. 剧集元数据:SxxExx.nfo / SxxEPxx.nfo
  4. 外置字幕源:SxxExx.zh (.ass / .ssa / .srt)
  5. 剧集缩略图:SxxExx-thumb (.jpg / .png)
  6. 剧季元数据:season.nfo

🕹️ 工具主要功能和处理逻辑

  1. 对剧季命名以外的文件夹无效
  2. 根据保存的剧季目录命名集号
  3. 删除规范以外的多余元数据
  4. 下载完成后尝试命名并加.new后缀
  5. 删除可命名的同名文件达到换源目的
  6. 去除文件命名后的.new后缀名
  7. 如果4步命名成功则继续执行5, 6
  8. 如果第4步命名不成功则终止后续操作

📄 主要文件说明

EpisodeReName.py 重命名工具主程序

utils 工具类

make_exe.bat 将python脚本打包成exe, 依赖pyinstaller模块

🚩 处理带有数字的剧集名称

ignore 文件

如果剧集中带有年份等数字, 程序可能会将剧集标题中的数字误认为是集数. 要处理这种文件, 可以在EpisodeReName 主程序同目录下创建一个名为ignore的文件. 把完整的剧集名称输入进去, 一行一个剧集名称, 程序就会在获取集数时忽略这些文字. 注意文件要使用utf-8编码.

💡 多季番剧tmdb集数适配

对于有多季的番剧, 比如鬼灭之刃28集, 在tmdb里没有第28集, 而是第2季第2集, 要正确削刮需要从S02E28改成S02E02.

这时候可以在鬼灭之刃的Season 2文件夹中添加一个all.txt文件, 里面写上一个数字, 会在自动重命名的时候减掉这个数字. 比如上面的例子就需要在all.txt填入26, 自动重命名就会把S02E28改成S02E02, 这样就能正常削刮了.

all.txt 也可以填入负数来实现增加数字. 比如需要把S02E01改为S02E13, 就填入-12.


⏳ Stargazers 数据

统计图使用 caarlos0/starcharts 项目生成.

Stargazers over time


💰 捐赠

如果你觉得我做的程序对你有帮助, 欢迎捐赠, 这对我来说是莫大的鼓励!

支付宝:
Alipay

微信:
Wechat Pay


🙏 感谢

感谢某位不愿意透露姓名的朋友, 没有他的帮助, 就没有这个工具的诞生.

感谢 J*s 赞助的50元!

感谢 **莲 赞助的10元!

感谢 **楷 赞助的5元!

感谢 *睿 赞助的5元! 备注: 感谢您的自动命名工具

感谢 *メ 赞助的200元!

感谢 A* 赞助的100元! 备注: 非常感謝你寫這個小程式,捐贈了小小的心意給你及保重身體!

感谢Jetbrins公司提供的Pycharm编辑器!

Jetbrains

About

电视剧/番剧自动化重命名工具, 一键批量改名. 可配合QBittorrent下载后自动重命名, 方便Emby自动刮削. 支持Windows, Linux, MacOS, Docker 和 群晖套件环境运行

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published