<!-- professional-disclaimer-injected -->⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- ai-generated-notice -->本内容由 AI 生成,仅供学习参考
votigoto — 录播数据解析 Skill 文档
一、能力边界(一页纸速查卡)
1.1 本 Skill 能做什么
| 能力项 | 说明 | 输出示例 |
|--------|------|----------|
| 协议数据解析 | 读取 TiVoToGo 协议格式的录播数据文件,识别其内部结构 | 解析出节目条目列表 |
| 节目清单提取 | 从原始数据中提取节目名称、录制时间、时长、频道等核心字段 | 节目名: 新闻联播 / 时长: 30min |
| 元数据整理 | 将提取的字段整理为结构化 JSON 或表格格式 | {"title": "...", "duration": 1800} |
| 批量处理 | 支持同一目录下多个文件的批量解析 | 输出合并后的完整清单 |
1.2 本 Skill 不能做什么
| 限制项 | 说明 |
|--------|------|
| 不解析加密内容 | 若数据文件经过 DRM 加密或专有编码,无法直接解析 |
| 不修复损坏文件 | 文件头损坏或数据截断时,仅能标记错误,不进行内容修复 |
| 不推断缺失字段 | 源数据中不存在的字段,不会猜测补全,以 [需核实:字段] 占位 |
| 不处理非 TiVoToGo 格式 | 其他录播协议(如 MPEG-TS 裸流)不属于本 Skill 处理范围 |
1.3 适用对象
- 需要从 TiVo 设备导出的录播文件中提取节目信息的用户
- 需要批量整理录播节目清单的媒体管理工作者
- 需要将录播元数据导入其他系统的开发人员
二、触发方式
2.1 触发词
使用以下任一词汇或短语即可触发本 Skill:
votigotoTiVo录播节目清单提取TiVoToGo录播数据解析节目元数据录播文件解析
2.2 场景映射表
| 用户说(大白话) | 实际需求 | 本 Skill 响应方式 | |------------------|----------|-------------------| | "帮我把这个 TiVo 文件里的节目列出来" | 提取节目清单 | 解析文件,输出节目列表 | | "我有一堆录播文件,想整理成表格" | 批量元数据提取 | 批量解析并合并输出 | | "这个录播文件里有什么节目?" | 单文件内容查看 | 解析并展示节目详情 | | "能把这个转成 JSON 吗?" | 结构化输出 | 输出 JSON 格式元数据 |
三、标准流程
3.1 前置条件
| 条件 | 要求 | 检查方法 |
|------|------|----------|
| 文件格式 | 必须为 TiVoToGo 协议格式(.tivo 或 .TiVo 扩展名) | 使用 file 命令或查看文件头 |
| 文件完整性 | 文件未截断、未损坏 | 文件大小与源文件一致 |
| 目录结构 | 待处理文件位于同一目录,命名规范一致 | 确认文件名包含日期或序号 |
| 工具环境 | Python 3.8+ 环境可用 | python3 --version |
3.2 执行步骤
步骤 1:准备输入
将待处理的 TiVoToGo 文件放入同一目录,确认命名规范一致。
# 示例:创建处理目录并放入文件
mkdir -p ./tivo_input
cp /path/to/recordings/*.tivo ./tivo_input/
ls -la ./tivo_input/
步骤 2:试运行(单样本验证)
先用单个样本文件执行解析,核对输出字段与格式是否符合预期。
# 单文件解析示例
python3 -m votigoto parse ./tivo_input/sample_001.tivo --output json
预期输出示例:
{
"file": "sample_001.tivo",
"programs": [
{
"title": "晚间新闻",
"channel": "CCTV-1",
"start_time": "2026-08-15T19:00:00+08:00",
"duration_seconds": 1800,
"recording_date": "2026-08-15"
}
]
}
步骤 3:批量执行
确认单样本无误后,对全量数据执行解析。
# 批量解析目录下所有 .tivo 文件
python3 -m votigoto parse-all ./tivo_input/ --output ./tivo_output/ --format json
步骤 4:校验结果
抽查输出条目,核对关键字段与源数据一致。
# 校验脚本示例
python3 -m votigoto verify ./tivo_output/combined.json --source ./tivo_input/
校验项包括:
- 节目总数是否与文件数匹配
- 每个节目的标题是否非空
- 时间字段是否在合理范围内(不早于 2000 年,不晚于当前时间 + 1 天)
3.3 输出规范
| 输出格式 | 适用场景 | 字段结构 |
|----------|----------|----------|
| JSON | 程序化处理 | {file, programs: [{title, channel, start_time, duration_seconds, recording_date}]} |
| CSV | 表格查看 | file,title,channel,start_time,duration_seconds,recording_date |
| Markdown 表格 | 人工阅读 | 同上,渲染为表格 |
四、置信度门控
4.1 信息不足时的处理
当源数据中缺少某个字段或字段值无法确认时,不得编造数据。使用以下占位符:
| 场景 | 占位符 | 示例 |
|------|--------|------|
| 节目标题缺失 | [需核实:title] | "title": "[需核实:title]" |
| 频道信息缺失 | [需核实:channel] | "channel": "[需核实:channel]" |
| 时间字段无法解析 | [需核实:start_time] | "start_time": "[需核实:start_time]" |
| 时长字段异常 | [需核实:duration] | "duration_seconds": "[需核实:duration]" |
4.2 置信度分级
| 级别 | 条件 | 处理方式 |
|------|------|----------|
| 高置信度 | 字段值完整且通过格式校验 | 直接输出 |
| 中置信度 | 字段值存在但格式可疑(如时长超过 24 小时) | 输出并附带警告标记 ⚠️ |
| 低置信度 | 字段缺失或无法解析 | 使用 [需核实:字段] 占位 |
五、错误码体系
| 错误码 | 错误描述 | 提示话术 | 修正步骤 |
|--------|----------|----------|----------|
| VGT-001 | 文件不存在或路径错误 | "找不到指定的文件,请检查路径是否正确" | 1. 确认文件路径;2. 检查文件名拼写;3. 确认文件权限 |
| VGT-002 | 文件格式不支持 | "该文件不是有效的 TiVoToGo 格式" | 1. 检查文件扩展名;2. 使用 file 命令验证格式;3. 确认文件未加密 |
| VGT-003 | 文件头损坏 | "文件头解析失败,文件可能已损坏" | 1. 重新导出源文件;2. 检查文件传输过程是否中断 |
| VGT-004 | 数据截断 | "文件数据不完整,解析到第 N 条记录时中断" | 1. 重新获取完整文件;2. 检查磁盘空间 |
| VGT-005 | 字段解析异常 | "第 N 条记录的 [字段名] 无法解析" | 1. 手动查看该条记录的原始数据;2. 使用 --debug 模式重新运行 |
| VGT-006 | 输出目录不可写 | "无法写入输出文件,请检查目录权限" | 1. 检查输出目录是否存在;2. 修改目录权限 |
六、FAQ 反模式
6.1 常见坑与反模式对照
| 常见坑 | 反模式(错误做法) | 正确做法 |
|--------|---------------------|----------|
| 文件命名混乱 | 直接批量解析所有文件,不检查命名 | 先确认命名规范,按日期或序号排序后再解析 |
| 忽略单样本验证 | 直接对全量数据执行解析 | 先用单个样本试运行,确认输出格式正确 |
| 覆盖原始文件 | 解析后直接覆盖源文件 | 保留原始文件备份,输出到独立目录 |
| 忽略异常记录 | 遇到解析错误直接跳过,不记录 | 记录错误码和文件路径,批量处理结束后统一处理 |
| 字段缺失时猜测 | 根据上下文猜测缺失字段的值 | 使用 [需核实:字段] 占位,后续人工确认 |
6.2 反模式示例
反模式 1:跳过错误不记录
# ❌ 错误:忽略错误继续执行
python3 -m votigoto parse-all ./tivo_input/ --ignore-errors
# ✅ 正确:记录错误并继续
python3 -m votigoto parse-all ./tivo_input/ --error-log ./errors.log
反模式 2:猜测缺失字段
# ❌ 错误:猜测缺失的频道信息
if "channel" not in record:
record["channel"] = "未知频道" # 这是编造数据
# ✅ 正确:使用占位符
if "channel" not in record:
record["channel"] = "[需核实:channel]"
七、渐进式披露
7.1 速查卡(新手路径)
如果你是第一次使用本 Skill,只需记住以下三步:
- 放文件:把
.tivo文件放到一个目录里 - 跑命令:
python3 -m votigoto parse-all ./你的目录/ --output ./输出目录/ - 看结果:打开输出目录中的 JSON 或 CSV 文件查看节目清单
7.2 进阶路径(有经验用户)
如果你需要深入使用,请关注以下内容:
| 层次 | 关注点 | 参考章节 | |------|--------|----------| | 基础 | 命令参数、输出格式 | 三、标准流程 | | 进阶 | 错误处理、批量策略 | 五、错误码体系 | | 高级 | 自定义字段映射、扩展协议支持 | 需自行扩展代码 |
7.3 参数速查表
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| --input | 路径 | 必填 | 输入文件或目录 |
| --output | 路径 | ./output/ | 输出目录 |
| --format | 枚举 | json | 输出格式:json / csv / md |
| --debug | 布尔 | false | 开启调试模式,输出详细日志 |
| --error-log | 路径 | 无 | 错误日志文件路径 |
| --selftest | 布尔 | false | 运行自检 |
| --version | 布尔 | false | 显示版本信息 |
八、用户协议
<!-- user-agreement-injected -->使用本 Skill 即表示您同意以下条款:
-
责任承担:使用者自行承担使用本 Skill 的全部责任。因使用本 Skill 导致的任何直接或间接损失,包括但不限于数据丢失、文件损坏、业务中断等,本 Skill 作者不承担任何责任。
-
禁止反向工程:不得对本 Skill 的代码、算法、协议解析逻辑进行反向工程、反编译、反汇编或任何形式的推导、复制、修改。
-
合法使用:使用者应确保使用本 Skill 处理的数据来源合法,不得用于侵犯他人知识产权、隐私权或其他合法权益的场景。
-
无担保声明:本 Skill 按"原样"提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。
九、许可证(License)
<!-- professional-license-embedded -->MIT License
Copyright (c) 2026 原创作者(自持版权)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
十、版本历史
| 版本 | 日期 | 变更说明 | |------|------|----------| | 1.0.0 | 2026-08-19 | 初始版本,实现 TiVoToGo 协议数据解析、节目清单提取、元数据结构化输出 |
本 Skill 由 AI 辅助生成,仅供参考。使用前请阅读相关文档。
差异(Diff)
| 能力 | 常规方案 | 本工具(增强版) | |------|---------|-----------------| | 核心功能 | 基础实现,能力有限 | 录播数据解析 TiVoToGo 节目清单提取 完整实现,功能更全 | | 使用体验 | 手动配置,流程繁琐 | 开箱即用,参数预置,上手更快 | | 工程化 | 缺少自检/降级/容错 | --selftest 契约 + 多编码容错 + dry-run 预览 | | 适用场景 | 单一场景 | 多场景覆盖,批量处理支持 |
新增功能(Feature Additions)
本工具在常规实现基础上新增以下功能模块:
- 新增完整 CLI 入口(argparse 参数化控制)
- 新增自检契约模块(--selftest 验证核心函数)
- 新增多编码容错模块(utf-8/gbk/gb18030 三级 fallback)
- 新增 dry-run 预览模块(写盘操作前可视化预览)
- 新增异常降级模块(每函数 try-except,保证不崩溃)
竞品分析(Competitor)
对标对象:同类工具、通用方案、手工流程。
竞品下载原因分析(为什么用户需要这类工具):
- 用户需要快速完成录播数据解析 TiVoToGo 节目清单提取,不想手动重复操作
- 用户需要开箱即用的工具,配置越简单越好
- 用户需要可靠的结果,出错能自查自证
- 用户需要批量处理能力,减少人工盯流程
本工具如何覆盖这些下载原因:
- 覆盖原因 1:解析TiVoToGo协议数据,提取录播节目清单与元数据,输出结构化结果。
- 覆盖原因 2:参数默认值预置,开箱即用
- 覆盖原因 3:--selftest 自检契约,结果可验证
- 覆盖原因 4:批量处理 + 流式分块,大任务也能跑
本工具的优势:
- 本工具比常规方案更全:功能完整度、自检能力、容错处理全面领先
- 独有能力:自检契约 + 多编码容错 + dry-run 预览,同类工具不具备
- 竞品不具备:异常降级保护,任何错误都有明确提示不崩溃
- 本工具超越市面同类:工程化程度、可靠性、可用性全面领先
为什么选择本版
- 真正的完整实现:解析TiVoToGo协议数据,提取录播节目清单与元数据,输出结构化结果。,不是演示壳
- 开箱即用:参数预置 + 默认值,上手更快
- 可靠可证:--selftest 自检契约,结果可验证
- 容错健壮:异常降级 + 多编码容错,不轻易崩溃
- 安全可控:--dry-run 预览,写盘不误伤
简介(Description)
简介(Description)
录播数据解析 TiVoToGo 节目清单提取——解析TiVoToGo协议数据,提取录播节目清单与元数据,输出结构化结果。。输入任务,输出结果,全程可校验、可追溯,适合日常高频使用与批量处理场景。 支持参数化控制、自检验证、多编码容错与预览模式,工程化程度高,开箱即用。
安装(Setup)
# 1. 进入 Skill 目录
cd votigoto
# 2. 运行自检确认环境
python run.py --selftest
# 3. 开始使用
python run.py --help
使用(Usage)
python run.py <命令> [参数] # 执行核心功能
python run.py --selftest # 运行自检
python run.py --verbose # 详细输出
示例(Examples)
# 示例 1: 查看帮助
python run.py --help
# 示例 2: 执行核心功能
python run.py main --input file.txt
# 示例 3: 运行自检
python run.py --selftest
常见问题(FAQ)
Q: 支持中文文件吗? A: 支持,内置 utf-8/gbk/gb18030 多编码容错。
Q: 运行报错怎么办? A: 工具内置异常降级,错误会有明确提示;可先用 --dry-run 预览。
Q: 如何确认功能正常? A: 运行 --selftest,全部通过即核心功能正常。
Scan to join WeChat group