它解决什么问题
用户把 YouTube 链接粘贴给助手时,助手要么拒绝,要么根据标题胡编,要么在长视频上直接失败。为研究、销售或客服打造智能体的团队,需要一种可靠的方式把任意视频转成模型能推理的文本,而不必维护一碰到 YouTube 改版就失效的爬虫。
第一版应该包含哪些功能
- 模型可用任意 YouTube URL 或视频 ID 调用的工具
- 干净的字幕文本,外加用于引用的带时间戳分段
- 支持为非英语视频选择语言和翻译
- 对长视频进行分块,以适配模型的上下文窗口
- 缓存机制,同一个视频不会重复获取
分步实现指南
- 01
选择集成方式
如果你的助手支持 Model Context Protocol,接入 MCP 服务器后工具会自动出现。否则就定义一个调用 /transcribe 的函数工具。
- 02
定义工具协议
接收视频 URL 和可选的语言参数,返回字幕文本和带开始时间的分段列表。
- 03
处理长视频
对于超出上下文窗口的视频,把分段切成多个块,先分别总结再作答,或只检索与问题相关的块。
- 04
引用来源
指示模型从分段中引用时间戳,让用户能核实每一个说法。
入门代码
这个创意基于“方案 1:输入一个视频,输出结构化结果”模式。替换成你自己的频道、提示词和存储即可。
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
res = requests.post(f"{API}/transcribe", headers=HEADERS, json={
"video": "https://www.youtube.com/watch?v=VIDEO_ID",
"format": {"timestamp": True, "paragraphs": True},
}).json()
transcript = res["data"]["transcript"]
print(transcript["text"][:500]) # plain text for your LLM prompt
for seg in transcript["segments"][:3]: # timestamps for deep links
print(seg["start"], seg["text"])为什么值得做
这通常是一个功能而非独立产品:它能让你现有的助手、机器人或 Copilot 明显更好用。如果做成独立产品,一个能回答群内分享视频相关问题的 Slack 或 Discord 机器人可以按工作区收费。
需要避开的坑
- 把三小时的字幕塞进一个提示词:应分块检索或分块总结。
- 丢掉时间戳,导致回答无法核实。
- 反复获取同一个热门视频,而不是缓存字幕。
关于这个创意的问题
ChatGPT 或 Claude 能读取 YouTube 视频吗?
单靠它们自己并不可靠。接入字幕工具或 MCP 服务器后,它们就能读取任何带字幕的公开视频的完整字幕。
什么是 MCP 服务器?
Model Context Protocol 是为 AI 助手提供工具的标准方式。我们的 MCP 服务器提供字幕工具,兼容的助手无需自定义代码即可调用。
超长视频怎么处理?
把带时间戳的分段切成多个块,然后分别总结每个块,或只检索与用户问题相关的块。