人工智能AI AgentMCP 服务AI 技能CLI【免费下载链接】Agent-Reach给你的 AI Agent 一键装上互联网能力。13 个平台网页/GitHub/YouTube/小红书/B站/Twitter/Reddit 等多后端路由当下最稳的接入方式替你选好、装好、体检好。GitHub 主仓库同步镜像。项目地址https://gitcode.com/Panniantong/Agent-Reach点击查看免费下载本篇技术指南以 Agent-Reach 的 视频/播客参考文档 为核心骨架系统讲解如何为 AI Agent 赋予 YouTube、B站、小宇宙播客三大声频平台的内容提取能力。你将掌握 yt-dlp 字幕抓取、bili-cli 只读查询、OpenCLI 浏览器会话补字幕、B站搜索 API 零配置兜底以及基于 Whisper 的agent-reach transcribe无字幕音视频转录全套实战方案并理解doctor体检与后端路由的边界active_backend: yt-dlp不等于字幕已实时验证。概览三平台、五条后端链路Agent-Reach 对视频与播客内容的处理遵循多后端路由 失败重试链 无字幕兜底的总体设计场景首选后端失败/兜底路径YouTube 字幕yt-dlpOpenCLI最多重试 3 次→agent-reach transcribeYouTube 元数据 / 搜索yt-dlp--dump-json—B站视频详情 / 搜索 / 热门 / 排行bili-cli只读免登录B站搜索 API curl 直连B站字幕OpenCLI需桌面 Chrome—小宇宙播客转录transcribe.shGroq Whisper--polish用 Llama 3.3 70B 补标点无字幕音视频任意平台agent-reach transcribeGroq → OpenAI 自动切换显式授权时从源码结构看频道基类 定义了backends有序候选列表与active_backend语义backends[0]是首选后端其余为降级路径用户还可以通过channel_backend配置键或CHANNEL_BACKEND环境变量强制指定后端。这正是上述重试链与多后端路由机制的实现基础。YouTube用 yt-dlp 提取元数据、字幕与评论获取视频元数据--dump-json输出完整视频 JSON标题、时长、UP主、播放互动数据等是 Agent 做视频信息检索的基础命令yt-dlp --dump-json URL下载字幕不下载视频# 下载字幕 (不下载视频) yt-dlp --write-sub --write-auto-sub --sub-lang zh-Hans,zh,en --skip-download -o /tmp/%(id)s URL # 然后读取 .vtt 文件 cat /tmp/VIDEO_ID.*.vtt--write-sub拉取手动上传字幕--write-auto-sub拉取自动生成字幕--sub-lang限定语言中文简繁 英文--skip-download只取字幕不下载视频-o /tmp/%(id)s以视频 ID 命名输出文件。字幕质量注意手动上传的字幕提取可靠自动生成字幕可能存在行间重复需要后处理Agent 读取.vtt后应做去重/清洗。获取评论# 提取评论best-effort不保证完整 yt-dlp --write-comments --skip-download --write-info-json \ --extractor-args youtube:max_comments20 \ -o /tmp/%(id)s URL # 评论在 .info.json 的 comments 字段中评论注意--write-comments基于网页抓取非 YouTube Data API部分评论可能丢失属于 best-effort 结果不应视为完整评论数据。搜索视频yt-dlp --dump-json ytsearch5:queryytsearch5:query前缀让 yt-dlp 直接执行搜索并输出前 5 个结果的 JSON适合 Agent 的搜索→选取→深入提取工作流。前置条件yt-dlp 与 JS runtimeYouTube 的解密与播放地址解析依赖外部 JS runtime这一点在 YouTube 通道实现 中体现得很明确通道check()会真实执行yt-dlp --version探活而非仅查shutil.which区分未安装 / venv 断链跑不动 / 版本过旧三种状态缺少 JS runtimeNode.js 或 deno时返回warnYouTube 必须使用 JS runtime。安装 Node.js 或 deno 后运行agent-reach install --system若只有 Node.js 而无 deno需在 yt-dlp 用户配置中显式加入--js-runtimes node一行deno 开箱即用Node.js 需要显式配置。升级命令为python -m pip install -U yt-dlp[default]yt-dlp 需不低于2025.11.12才支持 JS runtime 配置从源码可见youtube.py#L96-L118当 Groq/OpenAI Whisper key 已配置且 ffmpeg、ffprobe 齐备时doctor还会提示可转写音频groq/openai。字幕失败时的重试链按序执行拿到实质内容即停关键认知doctor只确认 yt-dlp 本体与 JS runtime 能执行不会请求具体视频因此active_backend: yt-dlp不等于目标视频的字幕已经通过实时验证。这也符合 doctor.py 的职责边界——它只聚合各通道的体检结果不执行平台命令。先用上面的yt-dlp --write-sub --write-auto-sub命令。若出现 bot 校验、字幕响应为空或没有生成字幕文件且 OpenCLI 已连接opencli youtube transcript URL -f yaml。OpenCLI 若返回Caption URL returned empty response最多重试 3 次这是带过期时间的字幕 URL 偶发失效不能把空响应当成视频没有字幕。仍失败或视频本来就没有字幕agent-reach transcribe URL下载音频转写。成功标准是实际得到非空字幕/转录内容不是命令退出码或doctor的版本探测结果。无字幕兜底agent-reach transcribe与 Whisper 音频转写视频没有字幕时的最终兜底方案是下载音频并用 Whisper 转写# 视频没有字幕时的兜底下载音频并用 Whisper 转写Groq 免费 key 即可 agent-reach transcribe https://www.youtube.com/watch?vVIDEO_ID agent-reach transcribe ./local_audio.mp3 -o /tmp/transcript.txt输入约束与提供商路由agent-reach transcribe只接收公开 http(s) URL 或本地音频文件。用ytsearch5:搜索时先从 yt-dlp 结果里选出具体视频 URL再转写需要先配置 keyagent-reach configure groq-key隐藏输入免费console.groq.com或agent-reach configure openai-key默认 auto 模式只使用第一个已配置服务商优先 Groq否则 OpenAI失败即停止不会把音频自动发给另一家--allow-provider-fallback会显式授权跨服务商降级同一音频内容可能被 Groq 和 OpenAI 分别处理并可能产生 OpenAI 费用只应在确认内容可分享给两家后使用。CLI 层同样校验--allow-provider-fallback要求--provider auto见 cli.py#L220-L225。底层流水线与安全边界从 transcribe.py 的实现可以看到完整流水线URL 安全校验_assert_safe_public_url仅允许公开 http(s)拒绝 localhost、私网 IP、编码/歧义主机防 SSRF音频下载yt-dlp -x --audio-format m4a --audio-quality 0 --no-playlist限制源文件 ≤ 512 MiB时长探测ffprobe读取时长超过 4 小时MAX_AUDIO_SECONDS 24 × 600s直接拒绝压缩ffmpeg 重编码为单声道 / 16kHz / 32kbps m4a使多数内容低于 Whisper API 的 25MB 上限分片超过 24MB 时按 10 分钟一段切分CHUNK_SECONDS 600每片 ≤ 24MB总切片 ≤ 96MiB逐片转写调用提供商端点并拼接结果。Groq 使用whisper-large-v3OpenAI 使用whisper-1PROVIDERS定义。对应的测试覆盖了端点路由、模型选择、鉴权头与 fallback 行为见 test_transcribe.py。B站 / Bilibilibili-cli 为主、OpenCLI 补字幕⚠️不要用 yt-dlp 读 B站B站风控已全面 412 拦截 yt-dlp实测最新版、直连/代理/带 Cookie 全部无效。yt-dlp 只用于 YouTube。这一结论在 Bilibili 通道源码 中有明确记录live-verified 2026-06yt-dlp 已从该通道后端中移除bili-cli 与 OpenCLI 取而代之。视频详情/搜索/热门/排行bili-cli只读无需登录# 视频详情标题/UP主/时长/播放互动数据/字幕可用性 bili video BVxxx # 搜索视频 bili search query --type video -n 5 # 热门视频 / 排行榜 bili hot -n 10 bili rank -n 10 # 下载音频并切分为 ASR-ready WAV无字幕时配合 agent-reach transcribe 转写 bili audio BVxxx安装pipx install bilibili-cli上游 2026-03 起停更但实测健康只读场景无需登录bili login扫码可解锁动态/收藏等个人功能doctor对 bili-cli 的体检逻辑在 bilibili.py#L82-L94真实执行bili --version探活区分未装/断链/探测失败可用时返回搜索/热门/排行/视频详情/音频无需登录字幕需 OpenCLI。字幕OpenCLI需要桌面 Chrome# 字幕逐句带时间轴 opencli bilibili subtitle BVxxx # OpenCLI 也能搜索/读视频元数据备选 opencli bilibili search query -f yaml opencli bilibili video BVxxx -f yamlOpenCLI 走浏览器会话能绕过纯命令行工具拿不到的字幕。安装方式agent-reach install --system --channels opencli桌面环境专用服务器环境会被自动跳过见 cli.py#L326-L342。OpenCLI 通道的doctor状态为warn已连接但登录态与实际命令未实时验证因为 Doctor 不执行平台命令——使用前请先在 Chrome 里完成登录见 _opencli_site.py。零配置兜底搜索 API 直连即使 bili-cli 与 OpenCLI 都不可用B站搜索仍可通过 Web 接口直连UAMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 curl -s -c /tmp/bili_ck.txt -o /dev/null -A $UA https://www.bilibili.com/ curl -s -b /tmp/bili_ck.txt -A $UA -e https://www.bilibili.com/ \ https://api.bilibili.com/x/web-interface/search/all/v2?keywordQUERYpage1此方案需要先访问主页获取 Cookie-c写入、-b回读并带 Referer 与浏览器 UA 头。Bilibili 通道的体检实现会直连search/all/v2并检查返回code 0来判定该兜底是否可用bilibili.py#L24-L32可用时后端显示为B站搜索 API仅搜索curl 直连。小宇宙播客 / Xiaoyuzhou Podcast一键转录单集转录单集播客可选 --polish 增强标点# 输出 Markdown 文件到 /tmp/。--polish 让 Llama 3.3 70B 给文稿补中文标点合理分段 ~/.agent-reach/tools/xiaoyuzhou/transcribe.sh --polish https://www.xiaoyuzhoufm.com/episode/EPISODE_ID转写 prompt 已要求 Whisper 输出中文标点若标点效果仍不理想可加--polish用 Groq 上免费的 Llama 3.3 70B 补标点合理分段9 分钟播客约多 ~7 秒。每次转写多一轮 LLM 调用按需使用。从 transcribe_xiaoyuzhou.sh 的实现看--polish阶段使用llama-3.3-70b-versatile提示词严格要求只补中文标点。与合理分段不得修改、删除、增加任何汉字或英文/数字输出被截断时还会从中点切半递归重试最多 3 层。脚本另有完整的安全护栏仅接受xiaoyuzhoufm.com及其子域L47-L66、音频时长上限 3 小时、Groq API 429 限流自动等待重试、5xx 时提示用agent-reach transcribe兜底。前置要求ffmpeg:brew install ffmpegLinux 可用apt install -y ffmpegGroq API Key(免费): https://console.groq.com/keys配置 Key:agent-reach configure groq-key隐藏输入首次运行:agent-reach install --envauto --system --channelsxiaoyuzhou需用户明确授权安装逻辑见 cli.py#L914-L962脚本会写入~/.agent-reach/tools/xiaoyuzhou/transcribe.sh并以 0700 权限保护Groq key 优先取GROQ_API_KEY环境变量否则读取~/.agent-reach/config.yaml。检查状态agent-reach doctordoctor汇总所有频道的健康状态✅ 可用 / [!] 已装但需配置 / [X] 未安装并给出安全提示。输出 Markdown 文件默认保存到/tmp/。选择指南场景推荐工具YouTube 字幕yt-dlp失败时 OpenCLI最多 3 次→ agent-reach transcribeB站视频详情/搜索bili-cliB站字幕opencli bilibili subtitle播客转录小宇宙 transcribe.sh无字幕音视频agent-reach transcribeB站音频先bili audio常见问题与注意事项doctor不等于功能验证doctor只做静态/版本级探活真实执行--version类命令见 probe.py不会请求具体视频每条字幕链路都要以实际拿到非空内容为成功标准yt-dlp 的 B站限制412 风控拦截是实测结论B站场景请勿再用 yt-dlp改用 bili-cli / OpenCLI / 搜索 APItranscribe 的提供商边界默认 auto 只用一个提供商跨服务商降级必须显式--allow-provider-fallback注意隐私与费用影响安全设计转写流水线内置 SSRF 防护拒绝私网/内网地址、文件大小与时长上限、分片总量上限小宇宙脚本限制域名白名单资源来源本文所有命令与行为均可对照仓库源码频道路由见 base.pyYouTube 见 youtube.pyB站见 bilibili.py转写流水线见 transcribe.py小宇宙脚本见 transcribe_xiaoyuzhou.shCLI 命令定义见 cli.py。赞分享人工智能AI AgentMCP 服务AI 技能CLI【免费下载链接】Agent-Reach给你的 AI Agent 一键装上互联网能力。13 个平台网页/GitHub/YouTube/小红书/B站/Twitter/Reddit 等多后端路由当下最稳的接入方式替你选好、装好、体检好。GitHub 主仓库同步镜像。项目地址https://gitcode.com/Panniantong/Agent-Reach点击查看免费下载相关推荐oh-my-openagent ultimate-browsing 视频与播客内容获取指南基于 agent-reach 的 YouTube、B 站、小宇宙与抖音字幕转录实战oh my openagent ultimate browsing 视频与播客内容获取指南基于 agent reach 的 YouTube、B 站、小宇宙与抖人工智能AI Agent代码智能体多智能体MCP ClientsAgent 编排Charm FS实战教程为Go应用添加无摩擦云端文件系统Charm FS实战教程为Go应用添加无摩擦云端文件系统 Charm FS是一个为Go应用设计的无摩擦云端文件系统解决方案它实现了标准的 fs.FS 接口虚拟化图形学逆向工程RingRTC Protobuf 协议速查signaling.proto 与 group_call.proto 完整字段清单RingRTC Protobuf 协议速查signaling.proto 与 group_call.proto 完整字段清单 RingRTC 是 Signal上一篇mlcourse.ai Bonus Assignment 1 深度解析用 Pandas 探索性分析奥运会历史数据athlete_events.csv下一篇如何为FigmaCN贡献翻译从报告问题到提交修正的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考