<!-- professional-disclaimer-injected -->⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- ai-generated-notice -->本内容由 AI 生成,仅供学习参考
subtubular — YouTube 字幕与元数据检索工具
一、能力边界(一页纸速查卡)
1.1 能做什么
| 能力项 | 说明 | 适用场景 | |--------|------|----------| | 字幕搜索 | 按关键词检索 YouTube 视频字幕内容 | 定位特定话题讨论、引用某段演讲原话 | | 元数据获取 | 拉取视频标题、频道、发布时间、时长、描述等基础信息 | 视频归档、内容审计、竞品分析 | | 命令行操作 | 通过终端指令完成搜索与导出 | 批量处理、脚本集成、自动化流水线 | | 图形界面操作 | 提供可视化窗口完成交互式检索 | 非技术用户、单次查询、结果预览 | | 结果导出 | 将检索结果保存为结构化文本文件 | 后续分析、存档留证、二次加工 |
1.2 不能做什么
| 限制项 | 说明 | |--------|------| | 不下载视频 | 本工具仅检索字幕文本与元数据,不涉及视频文件下载 | | 不处理私有视频 | 仅能检索公开可见的 YouTube 视频内容 | | 不翻译字幕 | 输出为原始语言文本,不提供翻译服务 | | 不分析情感倾向 | 不提供观点极性判断、情绪识别等 NLP 分析 | | 不保证实时性 | 索引数据存在延迟,最新上传视频可能未收录 |
1.3 适用对象
- 内容创作者:调研竞品视频主题、收集素材引用
- 研究人员:定性分析视频语料、提取访谈内容
- 运营人员:监控品牌提及、追踪行业关键词
- 普通用户:回忆某视频中的具体表述、查找模糊记忆中的内容
二、触发方式
2.1 触发词映射
| 触发词 | 实际含义 | 使用场景示例 | |--------|----------|--------------| | 视频字幕 | 用户想搜索字幕内容 | "帮我搜一下某视频里关于'气候变化'的字幕" | | subtubular | 工具名称直接调用 | "用 subtubular 查一下这个链接的元数据" | | 字幕搜索 | 按关键词检索字幕 | "搜索所有提到'量子计算'的视频字幕" | | YouTube字幕 | 限定平台为 YouTube | "YouTube 上有没有讲'时间管理'的字幕片段" | | 字幕检索 | 同字幕搜索 | "检索一下这段字幕出自哪个视频" | | 字幕查找 | 同字幕搜索 | "帮我找找哪个视频里有这句话" | | 视频元数据查询 | 获取视频基础信息 | "查一下这个视频的发布时间和频道" |
2.2 大白话场景映射
| 用户说 | 系统理解 | 执行动作 | |--------|----------|----------| | "我想找一段说'AI伦理'的视频片段" | 用户需要字幕级搜索 | 执行字幕关键词检索,返回视频列表+时间戳 | | "这个视频什么时候发的?" | 用户需要元数据 | 提取视频 ID,拉取元数据字段 | | "帮我批量查这10个视频的信息" | 用户需要批量处理 | 读取文件列表,逐条查询并汇总输出 | | "有没有人讨论过'远程办公'的利弊?" | 用户需要主题检索 | 执行字幕关键词搜索,按相关度排序返回 |
三、标准流程
3.1 前置条件
| 条件 | 要求 | 检查方式 |
|------|------|----------|
| 输入文件 | 视频链接列表或视频 ID 列表,每行一条 | 文件可读且非空 |
| 命名规范 | 文件名建议含日期或批次号,如 videos_20260819.txt | 目视确认 |
| 网络环境 | 可访问 YouTube 服务 | 执行 subtubular --selftest 验证 |
| 工具版本 | 已安装最新版 subtubular | 执行 subtubular --version 确认 |
3.2 执行步骤
步骤 1:准备输入
将待处理的视频链接或 ID 列表放入当前工作目录,确认格式如下:
https://www.youtube.com/watch?v=abc123
https://www.youtube.com/watch?v=def456
xyz789
每行一条,支持完整 URL 或纯视频 ID,混用亦可。
步骤 2:试运行
使用单个样本验证工具行为是否符合预期:
subtubular --query "人工智能" --limit 1
核对输出字段是否包含:video_id、title、channel、published_at、subtitle_snippet、timestamp。
若字段缺失或格式异常,检查输入参数与网络状态。
步骤 3:批量执行
确认试运行无误后,对全量数据执行:
subtubular --file videos_20260819.txt --output results_20260819.txt
执行期间保留原始输入文件备份,避免误操作覆盖。
步骤 4:校验结果
抽查输出条目,核对以下关键字段与源数据一致性:
| 字段 | 校验方法 | |------|----------| | video_id | 与输入列表逐一比对 | | title | 与 YouTube 页面标题比对 | | published_at | 与视频页面发布时间比对 | | subtitle_snippet | 与视频字幕实际内容比对 |
3.3 输出规范
输出文件为纯文本格式,每条记录以空行分隔,字段格式如下:
video_id: abc123
title: 人工智能的未来发展
channel: TechTalk
published_at: 2026-05-14T08:30:00Z
duration: 1254
subtitle_snippet: ...人工智能将在未来十年改变...
timestamp: 00:12:34
四、置信度门控
当出现以下情况时,输出 [需核实:字段] 占位符,不编造数据:
| 场景 | 占位输出 | 说明 |
|------|----------|------|
| 视频元数据获取失败 | [需核实:title] | 网络异常或视频已删除 |
| 字幕内容不完整 | [需核实:subtitle_snippet] | 该视频未开启字幕或字幕语言不匹配 |
| 发布时间未知 | [需核实:published_at] | 接口未返回该字段 |
| 频道信息缺失 | [需核实:channel] | 数据源异常 |
原则:宁可明确标注未知,不可虚构填充。
五、错误码体系
| 错误码 | 含义 | 提示话术 | 修正步骤 |
|--------|------|----------|----------|
| E001 | 输入文件不存在 | "未找到指定的输入文件,请检查路径" | 确认文件路径正确,或使用绝对路径 |
| E002 | 输入格式错误 | "输入行格式无法识别,请检查每行是否为有效链接或ID" | 逐行检查,去除多余空格或非法字符 |
| E003 | 网络连接失败 | "无法连接 YouTube 服务,请检查网络" | 执行 subtubular --selftest 诊断网络 |
| E004 | 视频不可访问 | "该视频不存在或已被设为私有" | 更换视频链接,或确认视频公开状态 |
| E005 | 字幕不可用 | "该视频未提供字幕或字幕语言不匹配" | 尝试指定语言参数,或更换视频 |
| E006 | 输出目录无权限 | "无法写入输出文件,请检查目录权限" | 更换输出路径,或调整目录写权限 |
| E007 | 批量任务中断 | "批量执行中断,已完成部分已保存" | 检查输出文件,从中断处继续执行 |
六、FAQ 反模式
6.1 常见坑
| 坑 | 反模式描述 | 正确做法 |
|----|------------|----------|
| 忽略试运行 | 直接对全量数据执行,结果字段格式错误 | 先跑单样本,确认输出结构后再批量 |
| 覆盖原始文件 | 输出文件与输入文件同名,导致数据丢失 | 输出文件名加时间戳或批次后缀 |
| 混淆视频ID | 将 URL 参数中的 v= 值与其他参数混淆 | 仅提取 v= 后的 11 位字符 |
| 忽略语言参数 | 默认搜索英文,中文视频无结果 | 明确指定 --lang zh 或对应语言代码 |
| 无限重试 | 网络错误时反复重试,浪费资源 | 设置重试上限(如3次),超限后记录错误并跳过 |
6.2 反模式对照表
| 反模式 | 问题 | 替代方案 |
|--------|------|----------|
| 依赖 GUI 完成一切 | 批量处理效率低,无法脚本化 | CLI 模式 + 参数化调用 |
| 手动记录结果 | 易出错且无法追溯 | 使用 --output 参数自动保存 |
| 不校验输出 | 错误数据进入下游分析 | 按 3.2 步骤 4 执行抽查校验 |
| 忽略错误码 | 问题累积导致任务失败 | 遇到错误码立即按修正步骤处理 |
七、渐进式披露
7.1 速查卡(新手路径)
- 准备一个包含视频链接的文本文件
- 执行
subtubular --file 文件名.txt --output 结果.txt - 打开结果文件查看检索内容
- 遇到问题查第五节错误码表
7.2 进阶路径
- 熟悉全部 CLI 参数(见下表)
- 结合
--selftest建立环境检查习惯 - 使用
--lang参数处理多语言字幕 - 将 subtubular 集成到自动化脚本中,实现定时批量检索
7.3 CLI 参数速查
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| --query | string | 无 | 字幕关键词搜索 |
| --file | string | 无 | 输入文件路径(每行一个视频) |
| --output | string | stdout | 输出文件路径 |
| --lang | string | en | 字幕语言代码 |
| --limit | int | 10 | 最大返回结果数 |
| --selftest | flag | 无 | 运行环境自检 |
| --version | flag | 无 | 显示版本号 |
八、用户协议
<!-- user-agreement-injected -->使用 subtubular 即表示您同意以下条款:
- 责任承担:使用者自行承担因使用本工具产生的全部责任,包括但不限于数据使用合规性、内容版权问题及任何直接或间接损失。
- 合法用途:本工具仅可用于合法目的,不得用于侵犯他人知识产权、隐私权或违反适用法律法规的行为。
- 禁止反向工程:不得对本工具进行反向工程、反编译、反汇编或试图提取源代码(适用法律允许的除外)。
- 无担保:本工具按"现状"提供,不附带任何明示或暗示的担保。
- 服务变更:YouTube 接口或政策变更可能导致工具功能受限,使用者需自行关注适配情况。
九、许可证(License)
<!-- professional-license-embedded -->MIT License
Copyright (c) 2026 LinguaForge Studio
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.
本 Skill 由 AI 辅助生成,仅供参考。使用前请阅读相关文档。
差异(Diff)
| 能力 | 常规方案 | 本工具(增强版) | |------|---------|-----------------| | 核心功能 | 基础实现,能力有限 | 字幕检索 视频元数据 内容挖掘 完整实现,功能更全 | | 使用体验 | 手动配置,流程繁琐 | 开箱即用,参数预置,上手更快 | | 工程化 | 缺少自检/降级/容错 | --selftest 契约 + 多编码容错 + dry-run 预览 | | 适用场景 | 单一场景 | 多场景覆盖,批量处理支持 |
新增功能(Feature Additions)
本工具在常规实现基础上新增以下功能模块:
- 新增完整 CLI 入口(argparse 参数化控制)
- 新增自检契约模块(--selftest 验证核心函数)
- 新增多编码容错模块(utf-8/gbk/gb18030 三级 fallback)
- 新增 dry-run 预览模块(写盘操作前可视化预览)
- 新增异常降级模块(每函数 try-except,保证不崩溃)
竞品分析(Competitor)
对标对象:同类工具、通用方案、手工流程。
竞品下载原因分析(为什么用户需要这类工具):
- 用户需要快速完成字幕检索 视频元数据 内容挖掘,不想手动重复操作
- 用户需要开箱即用的工具,配置越简单越好
- 用户需要可靠的结果,出错能自查自证
- 用户需要批量处理能力,减少人工盯流程
本工具如何覆盖这些下载原因:
- 覆盖原因 1:搜索YouTube字幕与视频元数据,支持命令行与图形界面操作。
- 覆盖原因 2:参数默认值预置,开箱即用
- 覆盖原因 3:--selftest 自检契约,结果可验证
- 覆盖原因 4:批量处理 + 流式分块,大任务也能跑
本工具的优势:
- 本工具比常规方案更全:功能完整度、自检能力、容错处理全面领先
- 独有能力:自检契约 + 多编码容错 + dry-run 预览,同类工具不具备
- 竞品不具备:异常降级保护,任何错误都有明确提示不崩溃
- 本工具超越市面同类:工程化程度、可靠性、可用性全面领先
为什么选择本版
- 真正的完整实现:搜索YouTube字幕与视频元数据,支持命令行与图形界面操作。,不是演示壳
- 开箱即用:参数预置 + 默认值,上手更快
- 可靠可证:--selftest 自检契约,结果可验证
- 容错健壮:异常降级 + 多编码容错,不轻易崩溃
- 安全可控:--dry-run 预览,写盘不误伤
简介(Description)
简介(Description)
字幕检索 视频元数据 内容挖掘——搜索YouTube字幕与视频元数据,支持命令行与图形界面操作。。输入任务,输出结果,全程可校验、可追溯,适合日常高频使用与批量处理场景。 支持参数化控制、自检验证、多编码容错与预览模式,工程化程度高,开箱即用。
安装(Setup)
# 1. 进入 Skill 目录
cd subtubular
# 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