前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。当媒体服务器(如 Jellyfin、Emby)无法正确识别你的资源目录结构时,手动重命名既耗时又容易出错。dsh-plugin-media-naming 插件旨在解决这一问题,它通过预设的规则包,将指定的目录名和视频文件名规范化为媒体服务器能识别的形式,并支持 115 网盘与本机/NAS 环境。
插件概览¶
- 名称:
dsh-plugin-media-naming - 核心价值:媒体库统一命名,规范化目录名与视频文件名
- 环境支持:自动识别 115 网盘或本机/NAS/Linux 路径
- 维护者:CustomLZH
- 许可证:MIT
核心功能¶
- 媒体库统一命名:规范化目录名与视频文件名。
- 双环境支持:自动识别 115 网盘或本机/NAS/Linux 路径,无需手动切换。
- 先出计划再执行:生成审核清单,确认后执行,避免误操作。
- 支持断点续跑与回滚:通过
apply-state.json和rollback.json管理执行状态。
安装与依赖¶
前置条件¶
| 依赖 | 是否必需 | 说明 |
|---|---|---|
| DSH | 必需 | 插件宿主 |
| Node.js ≥ 18 | 必需 | 插件本体与本地后端都是 JS |
Python ≥ 3.10 + p115client |
仅 115 网盘需要 | 只处理本机 / NAS 文件时完全不需要 Python |
安装步骤¶
- 克隆仓库到任意目录:
git clone https://github.com/CustomLZH/dsh-plugin-media-naming.git
- 在 DSH 的插件管理中将其作为 bundle 安装并启用(通过
plugin_manager的install_bundle→set_bundle→set_plugin)。 - 重启 DSH。插件代码有模块缓存,修改代码后同样需要重启才能加载。
环境自检¶
安装完成后,可以通过以下命令验证环境:
npm test # 一键运行全部测试
node test/local-storage-test.mjs # 只跑本地/NAS 后端
典型用法¶
插件提供了一套工具来处理从扫描到执行的全流程。
1. 首次准备(仅 115 网盘)¶
如果需要操作 115 网盘资源,需先进行扫码登录:
py -u python/login_115.py # 终端显示二维码,扫码确认
py -u python/login_115.py --png qr.png # 生成二维码图片(用于展示)
py -u python/login_115.py --self-check # 仅检查环境,不联网
凭据成功后会自动写入本地 config.json。
2. 生成审核清单¶
使用 media_naming_quick 工具指定目标路径,生成审核清单:
// 整理 影视资源/电视剧/某剧 (2026)
dsh media_naming_quick target="影视资源/电视剧/某剧 (2026)"
该命令会返回一个审核清单,列出需要修改的文件和目录,以及变更依据。
3. 执行修改¶
在确认审核清单无误后,使用 media_naming_apply 完成修改并自动复验:
// 可以
dsh media_naming_apply confirm=true
工作流与安全机制¶
分工协作¶
- 插件:负责提供规则、计算计划、判定对错。
- Agent:负责按流程编排,展示审核清单,确认后执行。
- 你:负责指定目录并审核点头。
执行闸门¶
执行写操作前必须满足两个条件:
1. 用户确认:Agent 必须先将审核清单展示给你看过。
2. 计划干净:conflict = 0、unknown = 0、无重复目标。
处理范围¶
- 只处理规则包里声明的视频文件,字幕/NFO/海报保持不动。
- 凭据只写入本地配置文件,不回显、不落任何产物。
- 修改代码后必须重启 DSH 才能生效。
规则包与配置¶
插件内置了 rules/ 目录,包含规则配置和样例数据。libraries 是映射而非白名单,只要路径中任一段命中即生效。如需更换规则包,可新建 rules/<id>/ 并登记,或在调用时传入 rulePackPath。