运行时依赖
安装命令
点击复制技能文档
YouTube 频道解析概述 本技能支持两种工作流程。 对于单个视频: 解析特定视频 URL 获取或生成视频的字幕 总结视频内容 提取结构化的笔记或可重用的输出 对于 YouTube 频道: 获取频道视频清单 根据主题、日期范围、演讲者或其他元数据过滤器选择要分析的视频 获取所选视频子集的字幕 生成过滤后的视频子集的摘要和结构化输出 输入 接受以下输入: channel_url 或 video_url(可选) since_date(可选) until_date(可选) topic_filter(可选) speaker_filter(可选) metadata_filters(可选) output_prefix(可选) whisper_model(可选) 工作流选择 根据提供的 URL 选择工作流: 如果用户提供 video_url,则运行单个视频工作流 如果用户提供 channel_url,则运行频道工作流 如果用户同时提供 video_url 和 channel_url,则使用 video_url 运行特定视频请求的工作流,并使用 channel_url 运行过滤后的频道请求的工作流 检查环境访问权限。如果环境阻止 YouTube 网络访问,确认限制后停止重试,并告知用户如何启用访问权限。 单个视频工作流 规范化视频 URL 并获取视频 ID 获取视频元数据 获取字幕 生成字幕文件 当用户请求分析、发现或可重用的笔记时,生成 markdown 摘要或笔记文件 当任务需要下游重用时,生成结构化的 JSON 输出 频道工作流 获取频道视频清单 规范化每个视频的元数据 应用选择标准,例如日期范围、主题、演讲者或元数据过滤器 在选择本身是交付成果的一部分时,写入过滤后的数据集 获取所选视频子集的字幕 生成过滤后的视频子集的摘要、笔记和报告 过滤规则 按以下顺序应用过滤器: 日期窗口 元数据过滤器 主题过滤器 演讲者过滤器 在元数据过滤可以高效地缩小数据集时,使用基于元数据的过滤 在请求的标准依赖于口语内容(例如演讲者引用、重复主题或标题和描述中不存在的术语)时,使用基于字幕的过滤 从 references/filtering.md 读取详细的过滤语义,当请求依赖于细致的选择逻辑时。 字幕工作流 首先获取直接字幕 当直接字幕不可用时,尝试获取字幕之前的全音频字幕 当字幕获取不可用时,生成从下载的音频中获取的字幕,并继续工作流 当它们已经与当前请求匹配时,重用现有的字幕文件和缓存的音频文件 除非用户要求更高的准确性,否则使用 tiny.en 或 tiny 作为默认的快速转录 如果元数据获取工作但字幕或音频因 bot 检测、403 或登录验证错误而失败,则将其视为内容访问限制,并清晰地解释环境限制。 输出 当需要时,输出频道库存的 JSON 和 markdown 格式 当需要时,输出过滤后的视频数据集的 JSON、CSV 和 markdown 格式 每个视频的字幕文件 按主题、演讲者、日期或元数据标准过滤的子集 带有发现、摘要和注意事项的 markdown 报告 使用 markdown 输出用于摘要、发现、可重用的笔记和频道级报告 从 references/outputs.md 读取命名和目录约定,以编写文物。 能力 工作流能力结果 频道分析整个频道 库存、选择、字幕和频道级输出 视频分析单个视频 字幕、摘要、笔记和结构化输出 频道按日期窗口过滤视频 缩小的候选集,在获取字幕之前 频道按主题、日期范围、演讲者或元数据标准过滤或分组视频 用于分析和报告的选定子集 视频或频道获取直接字幕(当可用时) 从现有来源更快地获取字幕 视频或频道在需要时从下载的音频中生成字幕 继续执行,当直接字幕不可用时 视频或频道生成简洁的摘要和可重用的文物 markdown 报告、笔记和结构化数据输出 资源 使用以下捆绑脚本: fetch_channel.py 用于库存、日期过滤和元数据规范化 transcribe_with_fallback.py 用于字幕 API 尝试、yt-dlp 音频下载和本地 Whisper 转录 build_report.py 用于主题分组、摘要和 markdown 或 CSV 输出 使用以下参考文件: references/dependencies.md references/filtering.md references/outputs.md 依赖项 本技能使用: yt-dlp 用于频道库存和音频下载 youtube-transcript-api 用于直接字幕获取 faster-whisper 用于本地转录回退 使用以下命令: uv run --with yt-dlp --with youtube-transcript-api --with faster-whisper python scripts/