← Back to Skills Marketplace
851032763

Emby Tv Organizer

by lizehua · GitHub ↗ · v1.1.2 · MIT-0
cross-platform ⚠ suspicious
180
Downloads
0
Stars
0
Active Installs
4
Versions
Install in OpenClaw
/install emby-tv-organizer
Description
Emby 电视剧媒体库整理助手。当用户提供一个电视剧文件夹路径,需要按照 Emby 标准命名规范整理文件结构、识别季号集号、处理特别篇/SP/OVA、生成重命名对照表并输出 Excel 时,使用此 Skill。 典型触发场景:「帮我整理这个电视剧文件夹」「按 Emby 规范重命名」「扫描 /vol3/... 文件...
README (SKILL.md)

Emby 电视剧媒体库整理助手

概述

接收用户提供的电视剧文件夹路径,扫描文件结构,按照 Emby 标准命名规范分析并生成整理方案。 严格遵守"先预览、后执行"原则:在用户确认前,不执行任何实际的重命名或移动操作。


标准目录结构

电视剧名称 (年份)/
  Season 01/
    电视剧名称 (年份) - S01E01.ext
    电视剧名称 (年份) - S01E01 - 集名称.ext          ← 原文件含集名称时保留
    电视剧名称 (年份) - S01E01.zh-CN.srt
    电视剧名称 (年份) - S01E01 - 集名称.zh-CN.srt    ← 字幕同步保留集名称
  Season 02/
    电视剧名称 (年份) - S02E01.ext
  Season 00/
    特别篇原文件名.ext(文件名不变)
    SP原文件名.ext(文件名不变)

集名称保留规则

当原文件名中包含集名称/话名(即集号之后的标题性文字)时,应在重命名后的文件名中保留,格式为:

电视剧名称 (年份) - S01E01 - 集名称.ext

识别集名称的方法

  1. 提取集号标识(第1话E01EP01等)之后、画质/编码/发布组等噪音标签之前的文字
  2. 集名称通常出现在集号后,以空格、下划线或横线分隔

典型示例

原始文件名 提取的集号 提取的集名称 重命名结果
01_《刀剑神域》第1话 剑的世界_高清 1080P+.mp4 S01E01 剑的世界 刀剑神域 (2012) - S01E01 - 剑的世界.mp4
第2话 灰色之剑.mkv S01E02 灰色之剑 刀剑神域 (2012) - S01E02 - 灰色之剑.mkv
[ANi] 芙莉莲 - 05 [1080P].mkv S01E05 (无) 葬送的芙莉莲 (2023) - S01E05.mkv
布鲁伊.S01E01.mkv S01E01 (无) 布鲁伊 (2018) - S01E01.mkv

噪音排除规则(以下内容不属于集名称,应剥离):

  • 画质:1080P1080p720P4K2160p
  • 编码:x264x265HEVCH.264H.265
  • 来源:WEB-DLWEBRipBluRayBDRipHDTV
  • 音频:AACDDP5.1DTS
  • 色彩:HDRDV10bit
  • 发布组/网站标识:用 []【】 包围的内容
  • 后缀噪音:_高清+- 结尾的无意义字符
  • 文件扩展名:.mkv.mp4

完整工作流程

阶段一:扫描分析(不修改任何文件)

  1. 扫描输入路径,列出所有文件(含子目录),包括视频、字幕、NFO、图片等。
  2. 识别剧名:从文件夹名中去除分类标签、季数说明、画质信息等干扰字符(见下方清理规则)。
  3. 识别年份:优先从文件夹名或 NFO 文件读取;无法确认时标注「需要人工确认」。
  4. 识别季号集号:按集数识别规则逐文件解析(见下方规则)。
  5. 判断特别篇:按特别篇识别关键词分类(见下方规则)。

阶段二:输出整理方案(必须完整输出以下五部分)

一、识别结果摘要

- 输入文件夹路径:(用户提供的原始路径)
- 识别电视剧名称:(从路径/文件名提取的原始名称)
- 建议电视剧名称:(清理后的标准名称)
- 年份:(识别到的年份,或"需要人工确认")
- 识别到的季:(如:第1季、第2季、第3季)
- 是否包含特别篇:是/否
- 是否存在需要人工确认的文件:是/否
- 建议整理后的根目录:(如:/vol3/1000/Movies/TVPlay/布鲁伊 (2018))

二、建议目录结构

用树形结构展示整理后的完整目录。

三、重命名前后对照表

序号 原始路径/文件名 建议路径/文件名 文件类型 识别信息 说明

四、需要人工确认的问题

列出所有无法自动判断的条目,如:

  • 年份无法确认
  • 季号无法判断
  • 集号无法判断
  • 特别篇编号/类型无法确认
  • 字幕无法匹配对应视频

五、Excel 对照表信息

Excel 文件名:电视剧名称_yyyyMMdd_HHmmss.xlsx
Excel 保存路径:\x3C用户指定路径>/电视剧名称_yyyyMMdd_HHmmss.xlsx

保存路径规则

  1. 如果用户在本次请求中明确指定了保存路径(如「保存到 /vol3/backup」),则使用用户指定的路径。
  2. 如果用户未指定路径,使用默认路径:/vol2/1000/SyncFile/OpenClawSync
  3. 在输出整理方案时,需向用户确认 Excel 保存路径,例如: 「Excel 将保存到:/vol2/1000/SyncFile/OpenClawSync(默认),如需保存到其他位置请告知。」

阶段三:等待用户确认

输出整理方案后,必须停止并等待用户明确确认,不得自动继续执行。

阶段四:执行整理(用户确认后)

  1. 按对照表逐文件执行移动和重命名。
  2. 如果目标文件已存在,不覆盖,标记为「冲突」。
  3. 所有操作完成后,生成 Excel 对照表并保存。

阶段五:生成 Excel 对照表

⚠️ 关键:必须通过运行 Python 脚本生成 Excel,严禁手动写入 .xlsx 文件内容!

.xlsx 文件是 ZIP 压缩的 XML 格式,手动写入会生成损坏的文件。必须使用 generate_excel.py 脚本通过 openpyxl 库正确生成。

生成步骤(严格按顺序执行)

  1. 构造 JSON 数据:将整理结果组装为如下结构的 JSON:

    {
      "show_name": "电视剧名称",
      "output_dir": "/vol2/1000/SyncFile/OpenClawSync",
      "records": [
        {
          "序号": 1,
          "电视剧名称": "刀剑神域",
          "年份": "2012",
          "原始路径": "/vol3/1000/Movies/TVPlay/[动漫]刀剑神域/01_《刀剑神域》第1话 剑的世界_高清 1080P+.mp4",
          "原始文件名": "01_《刀剑神域》第1话 剑的世界_高清 1080P+.mp4",
          "新路径": "/vol3/1000/Movies/TVPlay/刀剑神域 (2012)/Season 01/刀剑神域 (2012) - S01E01 - 剑的世界.mp4",
          "新文件名": "刀剑神域 (2012) - S01E01 - 剑的世界.mp4",
          "季号": "S01",
          "集号": "E01",
          "集名称": "剑的世界",
          "文件类型": "普通剧集",
          "是否重命名": "是",
          "是否移动": "是",
          "处理状态": "待确认",
          "说明": "保留集名称"
        }
      ]
    }
    
  2. 写入临时 JSON 文件:将 JSON 数据保存到临时文件,例如 /tmp/emby_data_\x3Ctimestamp>.json

    Write tool → file_path: /tmp/emby_data_\x3Ctimestamp>.json, content: \x3C上述JSON>
    
  3. 通过 Bash 运行脚本:使用 Bash 工具执行 Python 命令:

    python "C:/Users/Admin/.workbuddy/skills/emby-tv-organizer/scripts/generate_excel.py" --data /tmp/emby_data_\x3Ctimestamp>.json --output \x3C保存目录>
    
  4. 确认输出:脚本成功后会打印 [OK] Excel 已生成:\x3C完整路径>,将此路径报告给用户。

脚本路径C:/Users/Admin/.workbuddy/skills/emby-tv-organizer/scripts/generate_excel.py

保存目录规则

  • 优先使用用户本次指定的路径
  • 用户未指定时使用默认路径 /vol2/1000/SyncFile/OpenClawSync

文件名格式电视剧名称_yyyyMMdd_HHmmss.xlsx(非法文件名字符自动替换为下划线)

输出效果:列宽适配长路径(路径列 75 字符宽),首行+首列冻结,自动筛选,状态颜色标记,统计 Sheet 含边框样式

❌ 错误做法:直接用 Write 工具将内容写入 .xlsx 文件(会产生 XML 原文而非有效 Excel) ✅ 正确做法:写 JSON → Bash 运行 Python 脚本 → openpyxl 生成有效 .xlsx


路径清理规则(识别剧名时移除以下内容)

类型 示例
分类标签 [动漫] [电视剧] [美剧] [日剧] [韩剧]
季数说明 1-3季 第一季 第二季 全集 完结
画质信息 1080p 2160p 4K 720p
编码信息 x264 x265 HEVC AVC WEB-DL WEBRip BluRay BDRip HDTV
音频信息 AAC DDP5.1 DD+5.1 Atmos DTS H.264 H.265
色彩信息 HDR DV Dolby Vision 10bit 8bit
其他 发布组名称、网站广告、无意义中括号内容、多余空格/点号/横线

示例:[动漫]布鲁伊 1-3季 → 剧名:布鲁伊


集数识别规则

以下格式均应被识别并统一转换为 SxxExx

原始格式 示例 转换结果
S01E01 / s01e01 S01E01 S01E01
S1E1 S1E1 S01E01
1x01 1x01 S01E01
EP01 / Ep.01 / E01 EP01 E01(季号需另行判断)
第01集 / 第1集 第1集 E01
01话 / 第01话 第01话 E01
Episode 01 Episode 01 E01
纯数字 01 01 E01(季号需另行判断)

季号判断优先级

  1. 文件名中含明确季号(S01第一季等)→ 直接使用。
  2. 文件位于明确季文件夹(Season 02第二季)→ 使用该季号。
  3. 上级路径含 1-3季 等范围说明,但单文件无法判断 → 标注「需要人工确认」。
  4. 无任何季信息 → 默认为第 1 季(S01)。

多集合并:多集文件命名为 电视剧名称 (年份) - S01E01-E02.ext


特别篇识别关键词

以下关键词命中时,归入 Season 00文件名保持原样不变

特别篇、SP、Special、OVA、OAD、番外、花絮、幕后、Making Of
预告、Trailer、PV、OP、ED、NCOP、NCED、采访、访谈

文件类型分类

文件类型 扩展名
视频(普通剧集) .mkv .mp4 .avi .ts .m2ts
字幕 .srt .ass .ssa .sub .idx
NFO .nfo
图片 .jpg .jpeg .png .webp .tbn
其他 以上之外的所有文件

字幕命名规则:普通剧集字幕与视频同名,保留语言标签,集名称同步保留:

布鲁伊 (2018) - S01E01.mkv
布鲁伊 (2018) - S01E01 - 玩游戏.mkv              ← 含集名称的视频
布鲁伊 (2018) - S01E01.zh-CN.srt
布鲁伊 (2018) - S01E01 - 玩游戏.zh-CN.srt        ← 字幕同步保留集名称
布鲁伊 (2018) - S01E01.en.srt

Season 00 中的特别篇字幕,保持原文件名风格,不强制改名。


Excel 字段规范

调用 scripts/generate_excel.py 时,Excel 需包含以下字段:

字段 说明
序号 从 1 开始递增
电视剧名称 整理后的标准剧名
年份 首播年份,未知填「需要人工确认」
原始路径 文件整理前的完整路径
原始文件名 文件整理前的文件名
新路径 文件整理后的完整路径
新文件名 文件整理后的文件名
季号 如 S01、S02、S00
集号 如 E01、E02;特别篇可填「特别篇」或留空
集名称 原文件中的集标题/话名,如「剑的世界」;无则留空
文件类型 普通剧集/特别篇/SP/OVA/番外/花絮/字幕/NFO/图片/其他
是否重命名 是/否
是否移动 是/否
处理状态 已整理/待确认/跳过/失败
说明 如「特别篇放入 Season 00,名称不变」「保留集名称:剑的世界」

安全约束(铁律)

  • 绝不在用户确认前执行任何文件操作。
  • 目标文件已存在时,不覆盖,标记为「冲突」并记录在 Excel 的「说明」列。
  • 任何步骤失败时,在 Excel 中记录失败原因,继续处理其他文件。
  • 对于无法确认的信息,标注「需要人工确认」,不强行猜测。

参考资源

  • 详细的 Excel 生成脚本:scripts/generate_excel.py
  • 集数识别正则表达式参考:references/episode_patterns.md
Usage Guidance
Review the generated rename plan carefully before approving any file operations. If you use the Excel feature, be aware that the helper may install openpyxl automatically unless it is already present; prefer installing a pinned dependency yourself or asking the publisher to declare it properly.
Capability Assessment
Purpose & Capability
The stated purpose matches the artifacts: it scans user-provided TV folders, proposes Emby-style names, and can generate an Excel mapping. It also has authority to move and rename many local media files after user confirmation.
Instruction Scope
The instructions repeatedly require a preview and explicit user confirmation before actual renaming/moving, which is an appropriate control for the stated purpose.
Install Mechanism
There is no install spec or declared dependency, but the included Python helper auto-installs openpyxl with pip at runtime if missing. That is an under-disclosed, unpinned runtime package install.
Credentials
The skill reads and writes local filesystem paths, creates an Excel report, and defaults to /vol2/1000/SyncFile/OpenClawSync. This is purpose-aligned, but users should confirm the output location because the report includes full media paths.
Persistence & Privilege
The skill can make persistent local filesystem changes by moving/renaming files and creating directories/files, but the artifacts say it must wait for user confirmation and avoid overwriting existing targets.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install emby-tv-organizer
  3. After installation, invoke the skill by name or use /emby-tv-organizer
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.2
**集名称识别与保留功能更新** - 增加了“集名称”/“话名”自动识别与保留规范,重命名时支持将集号后的集名称保留在新文件名中。 - 更新标准目录结构、命名示例、文件名范式和说明,明确视频及对应字幕如何同步保留集名称。 - Excel 对照表新增“集名称”字段,说明及JSON生成样例相应补充。 - 噪音信息识别说明加强,细化集名称识别的噪音剥离规则。 - 相关文档与脚本调用说明同步补全,加强中文示例。
v1.1.1
**Excel 表生成方式全面升级,需通过 Python 脚本自动生成,不可人工写入 .xlsx 文件。** - 明确要求必须先写 JSON,再用 Bash 工具调用 generate_excel.py 脚本生成 Excel,禁止直接写 .xlsx。 - 更新详细生成流程说明,强调 openpyxl 库和脚本输出格式,防止 Excel 文件损坏。 - 新增错误与正确做法对比,保障文件规范性和操作安全。 - 增加 README.md 文件,丰富参考和文档。 - 优化部分流程描述,便于用户理解各环节操作与确认点。
v1.0.1
- Updated documentation describing the complete workflow and detailed rules for organizing TV series folders according to Emby conventions, in Chinese. - Clarified directory naming, episode/season recognition, and special rules for special episodes (SP/OVA). - Outlined specific steps: analysis, solution output (structured tree, rename table, Excel export), user confirmation, file operations, and Excel generation. - Emphasized safety: no file operations before user confirmation; no overwrite of existing files. - Defined file type classifications, naming conventions, episode/season parsing, and Excel output fields. - Added instructions for setting and confirming the Excel output path, and detailed rules for user interaction and data validation.
v1.0.0
Initial release of Emby 电视剧媒体库整理助手. - 提供 Emby 电视剧文件夹的自动扫描、识别、命名规范化方案,并可生成 Excel 对照表。 - 支持严格按照 Emby 标准目录与命名规范预览整理方案,涵盖普通剧集、特别篇/SP/OVA。 - 明确区分扫描预览与实际整理操作,所有变更需用户确认后方可执行。 - 输出包含识别摘要、建议结构、重命名对照表、人工确认项及 Excel 文件信息。 - 支持灵活保存 Excel 路径,用户可指定,未指定时用默认路径。 - 明确安全约束,防止误操作或覆盖;所有未知或不确定项均提示人工确认。
Metadata
Slug emby-tv-organizer
Version 1.1.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 4
Frequently Asked Questions

What is Emby Tv Organizer?

Emby 电视剧媒体库整理助手。当用户提供一个电视剧文件夹路径,需要按照 Emby 标准命名规范整理文件结构、识别季号集号、处理特别篇/SP/OVA、生成重命名对照表并输出 Excel 时,使用此 Skill。 典型触发场景:「帮我整理这个电视剧文件夹」「按 Emby 规范重命名」「扫描 /vol3/... 文件... It is an AI Agent Skill for Claude Code / OpenClaw, with 180 downloads so far.

How do I install Emby Tv Organizer?

Run "/install emby-tv-organizer" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Emby Tv Organizer free?

Yes, Emby Tv Organizer is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Emby Tv Organizer support?

Emby Tv Organizer is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Emby Tv Organizer?

It is built and maintained by lizehua (@851032763); the current version is v1.1.2.

💬 Comments