Fabric YouTube 处理实战指南:字幕、评论、元数据与播放列表的一站式 AI 工作流
Fabric YouTube 处理实战指南字幕、评论、元数据与播放列表的一站式 AI 工作流【免费下载链接】FabricFabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.项目地址: https://gitcode.com/GitHub_Trending/fa/FabricFabric 内置了完整的 YouTube 视频处理能力可提取视频字幕Transcript、评论Comments与元数据Metadata并直接送入 AI 模型配合 pattern 完成总结、观点抽取、事实核查等任务。本指南以docs/YouTube-Processing.md为主线结合仓库源码internal/tools/youtube/youtube.go、internal/cli/flags.go与测试用例讲透每个参数的作用、参数优先级、语言回退机制以及常见 429 限流问题的排查思路读完即可上手搭建自己的“视频 → 洞察”流水线。前置条件必装yt-dlp字幕提取依赖Fabric 的字幕提取完全依赖外部工具yt-dlp源码中通过exec.LookPath(yt-dlp)检测其是否存在缺失时报youtube_ytdlp_not_found见 youtube.go。macOS 下安装brew install yt-dlp也可以使用你所在操作系统对应的包管理器如pip install yt-dlp。注意仅字幕提取需要 yt-dlp评论与元数据提取走的是 YouTube Data API不经过 yt-dlp。可选YouTube API Key评论与元数据评论、元数据、播放列表枚举均依赖 YouTube Data API v3需要 API Key。仓库将 Key 设计为可选配置youtube_optional_test.go中明确断言ApiKey.Required false且未配置 Key 时插件仍视为已配置见 youtube_optional_test.go这意味着不配置 Key 也能正常提取字幕。配置方式二选一# 方式一交互式配置推荐同时配置模型、vendor 等 fabric --setup # 方式二环境变量 export FABRIC_YOUTUBE_API_KEYyour_api_key_here从源码看NewYouTube()通过plugins.BuildEnvVariablePrefix(YouTube)生成FABRIC_YOUTUBE_API_KEY前缀并在initService()中用option.WithAPIKey初始化 Google API 客户端youtube.go。基础用法提取字幕并用 pattern 处理-y--youtube是 Fabric 的 YouTube 入口接受视频或播放列表 URLfabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern summarize默认行为是提取纯文本字幕并交给 pattern 处理。从 cli.go 可见当未显式指定--comments/--metadata/--visual时字幕默认抓取语言默认en。带时间戳的字幕fabric -y https://www.youtube.com/watch?vVIDEO_ID --transcript-with-timestamps --pattern extract_wisdom时间戳模式会把 VTT 中的时间点转成[HH:MM:SS]前缀如[00:01:05] 文本实现代码见 youtube.go。该实现有两个值得注意的细节重复内容过滤同一句文本若在 10 秒内再次出现会被视为 VTT 格式化产生的重复而丢弃超过 10 秒间隔的合法重复如副歌、口头禅则保留。阈值常量TimeGapForRepeats 10定义于 youtube.go对应逻辑shouldIncludeRepeat有完整单测覆盖见 timestamp_test.go。时间戳精度由formatVTTTimestamp控制VTT 原格式00:00:01.234会截断毫秒部分。提取评论fabric -y https://www.youtube.com/watch?vVIDEO_ID --comments --pattern analyze_claims评论通过 YouTube Data API 的CommentThreads.List拉取默认最多 100 条顶层评论并包含回复回复以-前缀缩进展示见 youtube.go。此功能必须配置 API Key否则报“YouTube is not configured”。提取元数据fabric -y https://www.youtube.com/watch?vVIDEO_ID --metadata输出为 JSON包含字段id、title、description、publishedAt、channelId、channelTitle、categoryId、tags、viewCount、likeCount结构定义在VideoMetadatayoutube.go由Videos.List的snippetstatistics数据组装youtube.go。同样需要 API Key。高级选项自定义 yt-dlp 参数--yt-dlp-args可向 yt-dlp 透传任意参数用户参数优先级最高可覆盖 Fabric 内置参数# 使用浏览器 cookies 访问年龄受限或私有视频 fabric -y https://www.youtube.com/watch?vVIDEO_ID --yt-dlp-args--cookies-from-browser brave # 覆盖语言选择优先级高于 -g 标志 fabric -g en -y https://www.youtube.com/watch?vVIDEO_ID --yt-dlp-args--sub-langs es,fr # 指定下载格式 fabric -y https://www.youtube.com/watch?vVIDEO_ID --yt-dlp-args--format best # 降低请求频率限流场景 fabric -y https://www.youtube.com/watch?vVIDEO_ID --yt-dlp-args--sleep-requests 1 # 多参数组合用引号包裹 fabric -y https://www.youtube.com/watch?vVIDEO_ID --yt-dlp-args--cookies-from-browser firefox --write-info-json # 限流 认证组合 fabric -y https://www.youtube.com/watch?vVIDEO_ID --yt-dlp-args--cookies-from-browser brave --sleep-requests 1 # 覆盖内置字幕格式默认 vtt fabric -y https://www.youtube.com/watch?vVIDEO_ID --yt-dlp-args--sub-format srt参数优先级重要Fabric 构建 yt-dlp 命令的顺序如下见 youtube.go 的tryMethodYtDlpInternal内置基础参数--write-auto-subs --skip-download --sub-format vtt -o 临时目录/%(title)s.%(ext)s语言选择来自-g标志构造--sub-langs LANGUAGE,LANG.*形式如es,es.*若主语言为两位码还会追加兜底用户参数--yt-dlp-args通过shellquote.Split解析后追加位于最末、可覆盖前面任何同名参数视频 URL因此“覆盖内置行为”只需在--yt-dlp-args中显式写出同名参数即可。注意多参数必须用引号包裹为一个整体字符串且参数解析依赖 shell-quote 规则。语言回退机制当你指定-g es而该语言字幕不可用或下载失败时Fabric 自动执行两级降级无需手动干预自动重试yt-dlp 失败后tryMethodYtDlpInternal会通过noLangs()移除--sub-langs参数并重试一次循环for retry : 1; retry 0; retry--见 youtube.go。智能文件探测findVTTFilesWithFallback优先匹配.语言.vtt文件找不到时退而匹配任意语言文件如.en.vtt再不行就取第一个 VTT 文件确保回退下载的语言也能被识别使用youtube.go。# 即使西班牙语字幕不存在也会自动使用 yt-dlp 找到的任何可用语言 fabric -g es -y https://youtube.com/watch?vVIDEO_ID --pattern summarize语言代码建议用两位标准码en、es、zh、fr等。CLI 中语言默认值在GrabByFlags处为enyoutube.goCLI 主流程同样默认encli.go。播放列表处理--playlist标志用于强制按播放列表处理当 URL 同时含视频 ID 与播放列表 ID 时默认优先按视频处理# 处理播放列表中所有视频依次抓取字幕并交给 pattern fabric -y https://www.youtube.com/playlist?listPLAYLIST_ID --playlist --pattern summarize # 将播放列表视频清单保存为 CSV fabric -y https://www.youtube.com/playlist?listPLAYLIST_ID --playlist -o playlist.csv行为逻辑见 tools.go无-o时逐视频提取内容若未指定 pattern非聊天请求每个视频输出为规范化标题.md文件。指定-o时改为调用FetchAndSavePlaylist将视频 ID 与标题写入 CSV表头VideoID,Title。播放列表分页拉取每页 50 条翻页间time.Sleep(1 * time.Second)以尊重 API 配额youtube.go。注意播放列表枚举同样依赖 YouTube API Key。组合使用多个选项各选项可自由叠加输出按顺序拼接后一并送入模型# 同时获取字幕、评论与元数据 fabric -y https://www.youtube.com/watch?vVIDEO_ID \ --transcript \ --comments \ --metadata \ --pattern comprehensive_analysis从 cli.go 的processYoutubeVideo可确认组合顺序字幕 → 视觉visual→ 评论 → 元数据 JSON。输出选项# 仅保存结果 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern summarize -o summary.md # 保存整个会话含输入内容 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern summarize --output-session -o full_session.md # 实时流式输出 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern summarize --stream-o对应Flags.OutputWriteOutput在打印结果的同时写入指定文件flags.go。常见使用场景内容分析# 抽取视频核心智慧/见解 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern extract_wisdom # 核查视频中的论断 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern analyze_claims学习与教育# 生成学习笔记 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern create_study_notes # 抽取核心概念与定义 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern extract_concepts会议与演讲处理# 带时间戳总结演讲便于回看定位 fabric -y https://www.youtube.com/watch?vVIDEO_ID \ --transcript-with-timestamps \ --pattern meeting_summary # 抽取会议待办事项 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern extract_action_items内容创作# 生成社媒文案 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern create_social_posts # 将视频脚本改写成博客文章 fabric -y https://www.youtube.com/watch?vVIDEO_ID --pattern write_blog_post说明上述 pattern 是否可用以fabric -l--listpatterns实际列出为准你也可以用fabric -y URL --pattern data/patterns 中存在的任意 pattern灵活组合。常见问题排查常见问题速查问题原因解决方案yt-dlp not found未安装 yt-dlp用 pip 或系统包管理器安装年龄受限视频YouTube 风控--yt-dlp-args--cookies-from-browser BROWSER无字幕可用部分视频无自动字幕换视频或放弃字幕提取API 配额耗尽YouTube API 每日配额等待次日或调整用量HTTP 429字幕请求被限流见下文专项处理错误信息对照YouTube is not configured运行fabric --setup配置 YouTube API对应 tools.go 的IsConfigured检查。yt-dlp failed检查 URL可尝试用--yt-dlp-args传入 cookies 认证。No transcript content found视频可能没有可用字幕youtube.go 在 VTT 清理后为空时报此错。HTTP Error 429: Too Many RequestsYouTube 限流日益常见。源码中detectError专门扫描 429 与 “Too Many Requests” 等特征串并映射为限流错误提示youtube.go。处理建议等待 10–30 分钟后重试最有效加大请求间隔--yt-dlp-args--sleep-requests 5带浏览器 cookies 重试--yt-dlp-args--cookies-from-browser brave --sleep-requests 5换一个视频——部分视频限制更宽松使用 VPN——更换 IP 可能有效不指定语言——让 yt-dlp 自动选择可用语言改用英文fabric -g en英文字幕被限流的概率相对较低另外detectError还会把 “Sign in to confirm youre not a bot” 与 “Use --cookies-from-browser” 识别为需要浏览器认证的风控提示出现时按提示传入对应浏览器的 cookies 即可。语言回退行为回顾指定语言如-g es不可用时的完整链路① 自动去除语言参数重试 → ② 回退下载到任意语言 VTT 时智能识别并使用 → ③ 全程无需人工干预。配置持久化YAML 配置将常用 yt-dlp 参数写入默认配置文件~/.config/fabric/config.yaml避免每次重复输入ytDlpArgs: --cookies-from-browser brave --write-info-json该配置项与 CLI 标志--yt-dlp-args共享同一yaml:ytDlpArgs标签flags.go加载逻辑在Init()中实现CLI 显式参数优先YAML 值仅在对应标志未使用时生效flags.go与文档描述的“用户参数优先”原则保持一致。环境变量export FABRIC_YOUTUBE_API_KEYyour_api_key_here实用技巧与最佳实践选择精准的 pattern根据目标总结/洞察/核查/翻译匹配 pattern效果更佳可先用fabric -l浏览全部可用 pattern。善用管道与文件结果可直接-o落盘或与fabric --pattern之外的其他命令组合进行二次加工。批量处理播放列表模式可一次处理多个视频效率更高。认证私有或年龄受限内容优先使用浏览器 cookies。语言选择指定语言码可提升字幕准确度如-g zh、-g es。限流遇到 429 先--sleep-requests 1降速。持久化高频使用的 yt-dlp 参数写入 config.yaml。参数覆盖用--yt-dlp-args覆盖任何内置行为。先探测再处理处理前用yt-dlp --list-subs URL查看可用字幕语言避免无效请求。完整示例快速视频总结流式fabric -y https://www.youtube.com/watch?vdQw4w9WgXcQ --pattern summarize --stream带认证的深度分析fabric -y https://www.youtube.com/watch?vVIDEO_ID \ --yt-dlp-args--cookies-from-browser chrome \ --transcript-with-timestamps \ --comments \ --pattern comprehensive_analysis \ -o analysis.md播放列表批量智慧抽取fabric -y https://www.youtube.com/playlist?listPLrAXtmRdnEQy6nuLvVUxpDnx4C0823vBN \ --playlist \ --pattern extract_wisdom \ -o playlist_wisdom.md覆盖内置语言选择# -g es 的内置语言选择被用户参数覆盖 fabric -g es -y https://www.youtube.com/watch?vVIDEO_ID \ --yt-dlp-args--sub-langs fr,de,en \ --pattern translate相关资源主文档Fabric 使用文档包含更多 pattern 与进阶用法如聊天、上下文、策略等源码与测试internal/tools/youtube/youtube.go核心实现、timestamp_test.go时间戳与重复过滤测试、youtube_test.goURL 解析测试、youtube_optional_test.goAPI Key 可选性测试CLI 集成internal/cli/flags.goYouTube 相关标志定义、internal/cli/cli.go处理流程、internal/cli/tools.go工具分发与播放列表逻辑REST APIPOST /youtube/transcript端点定义于 internal/server/youtube.go请求体支持url、language默认en、timestamps三个字段返回transcript、videoId、title、description适用于无 CLI 的 HTTP 调用场景。【免费下载链接】FabricFabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.项目地址: https://gitcode.com/GitHub_Trending/fa/Fabric创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考