OpenList 交互式剧集重命名工具:用 Python 批量整理你的剧集文件

用 Python 批量整理你的剧集文件,智能识别 + 多种重命名模式 + 无缝对接 OpenList

OpenList 交互式剧集重命名工具是一款基于 Python 的命令行工具,专为连接 OpenList 服务并批量重命名剧集文件而设计。通过直观的交互界面,支持从文件名自动提取剧集信息,并提供多种灵活的重命名策略,让媒体库整理变得高效又省心。

核心功能

目录浏览

  • 交互式导航 OpenList 远程文件系统
  • 实时列出当前目录下的视频文件与子目录
  • 支持 0 键返回上级目录,数字键进入子目录

批量重命名

支持四种重命名模式,满足不同场景需求:

模式说明
智能重命名自动解析原始文件名中的剧名、季数、集数,标准化输出(如 S01E01
手动重命名逐个为文件指定新名称,适合特殊命名需求
统一样式使用统一模板(如 {title}.S{season}E{episode:02d}),自动递增集号
正则替换通过正则表达式进行高级文本替换,适用于复杂格式清洗

剧集信息识别

  • 自动从常见命名格式(如 剧名.S01E01.1080p.mkv)中提取:
    • 剧集标题(title)
    • 季数(season)
    • 集数(episode)

用户体验优化

  • Rich 终端界面:美观、彩色、结构化显示(推荐使用)
  • 操作预览:重命名前显示完整变更列表,需手动确认
  • 进度指示:执行过程中显示可视化进度条
  • 错误处理:完善的异常捕获与用户提示,避免误操作

新增:登录与配置管理

Token 持久化

  • 登录成功后,JWT 令牌将保存至本地文件:
    $EPISODE_PATH/token(若未设置环境变量,则默认保存到 /tmp/token
  • 启动时自动检测令牌有效性,有效则跳过登录

配置文件

  • 首次运行时输入的 OpenList 服务地址将保存至:
    ~/.episoderenamer_config.ini
  • 后续启动自动加载该地址,无需重复输入

系统要求

  • Python 3.7 或更高版本
  • 可访问 OpenList 服务(需网络连通)
  • 支持的视频格式:
    .mp4.mkv.avi.mov.wmv.flv.webm.m4v.mpg.mpeg.ts.m2ts.vob.iso

安装与使用

1. 获取代码

git clone https://github.com/xiaobili/openlist_episode_rename.git
cd interactive-episode-renamer

2. 安装依赖

pip install requests rich

3. 运行程序

# 推荐:使用 Rich 美化界面
python interactive_episode_renamer_with_rich.py

# 基础版本(无 Rich 依赖)
python interactive_episode_renamer.py

配置参数

项目说明
服务地址OpenList 实例 URL(如 http://192.168.1.1:5244
用户名/密码OpenList 账户凭据
令牌路径由环境变量 $EPISODE_PATH 控制,默认 /tmp/token
配置文件~/.episoderenamer_config.ini,存储默认服务地址

使用流程

  1. 启动程序
    → 自动尝试加载本地令牌
    → 若无效,提示输入服务地址、用户名、密码
  2. 首次配置
    → 输入 OpenList 地址后,自动保存至配置文件
  3. 浏览目录
    → 选择数字进入子目录,0 返回上级
  4. 选择文件 & 重命名
    → 勾选目标视频文件
    → 选择重命名模式
    → 预览变更 → 确认执行
  5. 命名模板示例
{title}.S{season}E{episode:02d}          → 权力的游戏.S01E01.mp4
Season_{season}_Episode_{episode:02d}_{title} → Season_01_Episode_01_权力的游戏.mp4

技术架构

主要组件

  • InteractiveEpisodeRenamer:核心重命名逻辑类
  • API 集成:与 OpenList REST API 通信
  • 文件系统操作:远程目录遍历与重命名
  • Token 管理:本地持久化与自动恢复
  • 配置管理:INI 文件读写与默认值加载

调用的 OpenList API

  • POST /api/auth/login —— 用户认证
  • GET /api/fs/list —— 获取目录内容
  • POST /api/fs/batch_rename —— 批量重命名文件

适用场景

  • 整理从不同来源下载的剧集,统一命名规范
  • 修复乱码、缺失季集信息的文件名
  • 为 Plex / Jellyfin / Emby 媒体服务器准备标准化文件
  • 自动化媒体库维护脚本的前端交互工具

评论