Ollama:无需为令牌付费即可摘要 YouTube 视频

你可以让 Ollama 用一个 shell 管道摘要 YouTube 视频:通过 HTTP 获取转录文本、用 jq 提取文本、馈送到本地模型。没有 OpenAI 账单、除转录文本获取本身外没有数据离开你的机器。这是管道、使其工作的上下文窗口数学,以及它在哪里失短。
单行程序
首先获取共享演示密钥(或自带——下面更多):
API_KEY=$(curl -s https://youtube2text.org/api/demo-key | jq -r .apiKey)
然后:
curl -s "https://youtube2text.org/api/transcribe?url=https://www.youtube.com/watch?v=VIDEO_ID&maxChars=12000" \
-H "x-api-key: $API_KEY" \
| jq -r .result.content \
| ollama run llama3.1 "Summarize this video transcript in five bullet points:"
API 返回 {"result": {"videoId", "title", "pubDate", "content", ...}};jq -r .result.content 将其剥离到原始文本,Ollama 将管道的 stdin 附加到提示参数。三十秒后你有项目符号,YouTube 永远不会看到来自你 IP 的请求——转录文本获取通过 youtube2text.org,它处理当你从你自己的机器爬取时被阻止的部分。
为什么 maxChars=12000
这是人们做错的数字。Ollama 默认运行具有 4096 令牌上下文的模型,所有东西竞争它:你的提示、转录文本和模型的输出。按粗略的每令牌 4 字符,12000 字符转录文本是 ~3000 令牌,为摘要留下头部空间。在 API 默认上限 150000 字符管道完整 90 分钟播客,Ollama 无声地从前面截断——模型摘要最后十分钟并自信地忽略其余。没有错误,只是一个错误的答案。
如果你的硬件有节省的 RAM,一起提升两端:
OLLAMA_CONTEXT_LENGTH=16384 ollama serve
然后将 maxChars 提升到大约 50000。两个数字成对锁定规模,或者你回到无声截断。
将其制成 shell 函数
yt-summary() {
curl -s "https://youtube2text.org/api/transcribe?url=$1&maxChars=12000" \
-H "x-api-key: $API_KEY" \
| jq -r .result.content \
| ollama run llama3.1 "Summarize this video transcript in five bullet points:"
}
yt-summary "https://www.youtube.com/watch?v=VIDEO_ID"
交换提示为你实际需要的——"提取提到的每个工具"、"列表操作项"、"翻译为德文"。相同管道,不同指令。对于将讲座变成结构化笔记,在来自讲座视频的研究笔记中有更长的工作流。
隐私和成本情况
只有一件事离开你的机器:对 youtube2text.org 的转录文本请求。视频的内容、你的提示和模型的输出都保持本地。对于任何人摘要内部培训视频、竞争对手研究或内容他们宁愿不发送到云 LLM,那是整个宣传。成本方面:LLM 推理永远免费;唯一计量的部分是转录文本获取。
它在哪里失短
诚实的限制:一个 8B 模型摘要一个长小时视频的上限分片会遗漏事物。maxChars 从固定预算截断,llama3.1 在 4k 上下文不做深度合成——它在拟合的东西上做有能力的压缩。对于快速"这个视频值得我的时间"分类,它很优秀。对于长内容上的研究级提取,要么运行一个有真实上下文窗口的更大模型,要么适当地索引一切——看对 YouTube 频道的 RAG对于那个路线。
也:演示密钥是共享的,每个 IP 每月限制 5 个视频。它存在所以上面的单行程序在你注册任何东西之前工作。一旦你超越踢轮胎,获得你自己的密钥——免费层也是 5 个视频/月,但它是你的,5.99 美元买 50。