面向大规模 RAG 应用的 YouTube 文字稿:积分、自动充值与预算
一位开发者把 10,000 个 YouTube 视频导入 RAG 应用。看看成本、速率限制的计算,以及自动充值和预算如何让开支可预测。

如果你的 RAG 或 AI 应用需要大规模的 YouTube 文字稿,切实可行的方案是:按用量付费、使用预付积分的文字稿 API,加上让长时间导入任务永不中断的自动充值,以及让一个 bug 不会推高账单的月度预算。本文跟随一位开发者,用 sum.video 文字稿 API 完成这套设置。
情境
Maya 在做一个研究助手,回答关于会议演讲的问题。她的索引要覆盖来自几百个频道的约 10,000 个 YouTube 视频,之后每月新增约 300 个视频。她在一台小服务器上运行导入任务,既不想一直盯着,也不想被账单吓一跳。
她的要求很明确:成本可预测,任务中途不需要手动充值,并且能干净地处理没有文字稿的视频。
她需要什么
- 每个视频的纯文本,可以直接分块和做向量嵌入。
- 时间戳,这样回答可以链接到视频中的确切时刻。
- 一个开始前就能估算的成本。
- 一个硬性的支出上限。
分步说明
1. 先估算成本
一份文字稿消耗 2 个积分,没有返回文字稿的请求不收费。10,000 个视频最多是 20,000 个积分。使用 5,000 积分套餐(价格 $74.99,每份 $0.030),10,000 份文字稿总共约 $300,如果有些视频没有字幕,会稍微少一点。较小的套餐每份更贵:100 积分每份 $0.090,500 积分 $0.056,2,000 积分 $0.038。最新详情见价格页面。
积分一次购买、永不过期,所以她开发期间没有订阅的计时在走。
2. 用免费积分测试
她的第一个 API 密钥附带 10 个免费积分,也就是 5 份文字稿。她用它们检查几个视频的响应,分别用 json 格式(带有以秒为单位的 offset 和 duration 的分段)和 text 格式。如果想了解请求细节,指南如何用 API 获取 YouTube 文字稿里有可运行的 curl、Python 和 JavaScript 示例。
3. 设置自动充值
在 API 控制台中,她打开自动充值。规则是:余额低于所选水平时,就从已保存的银行卡再扣一个套餐的费用。导入任务整夜持续运行,无需手动充值。
4. 设置预算
有两项限制在保护她:
- 月度充值预算,限制自动充值每月最多能花多少。
- 月度积分上限。一旦达到,之后的请求都会返回
402 budget_exceeded。
她还打开了电子邮件提醒,针对余额不足、达到月度上限的 80%,以及充值失败。提醒会在还来得及处理的时候告诉她出了问题。
5. 遵守速率限制
每个密钥每分钟允许 60 次请求。按这个速度,10,000 次请求大约需要 167 分钟,单个密钥不到三个小时。她运行一个简单的队列,每秒发送一个请求,这样不会出现突发,也不会超限。她最多可以创建 5 个有效密钥,比如一个用于导入,另一个用于应用的实时查询,这样回填任务就不会阻塞用户的请求。
6. 处理没有文字稿的视频
API 只返回现有的 YouTube 字幕。直播、私享或已删除的视频,以及没有字幕的视频,都会返回 404 no_transcript。在她的队列里,这个状态意味着标记为已跳过并继续,绝不重试。由于这些请求不收费,一个全是无字幕视频的频道也不会消耗她的预算。
她的循环,用伪代码表示:
- 从队列中取出下一个视频 ID。
- 以
format=json调用 API。 - 成功时:把分段切成大约一分钟的块,连同起始偏移量一起保存,并做嵌入。
- 遇到
404 no_transcript:保存一个"无文字稿"标记。 - 遇到
402 budget_exceeded:暂停队列并提醒自己。 - 遇到服务器错误:延迟后重试。
7. 在代码里检查余额
在每个大批次之前,她都会调用 GET /api/v1/credits。如果余额低于这个批次所需,而自动充值又是关闭的,任务就拒绝启动。这是防止导入做到一半的一种低成本保护。
她最终得到什么
第一晚之后,索引里已有几乎全部 10,000 个视频的文字稿,每个块都带着起始时间。用户提问时,助手会引用某场演讲和一个时间戳,链接会直接从那个时刻打开视频。持续成本很小:每月 300 个新视频最多 600 个积分,按 5,000 套餐每份 $0.030 的价格计算约为 $18。
如果 Maya 订阅 Pro,每月还会获得 100 个赠送积分,可以抵消部分增长。
不足之处
- 没有字幕就没有文字稿。 API 不会转写音频。没有字幕的视频需要另一个来源,比如语音转文字服务,并且要另外付费。其他一些文字稿 API 提供音频兜底,见 YouTube 文字稿 API 对比。
- 自动生成的字幕有错误。 人名和行话通常是重灾区。响应会说明一条轨道是否为自动生成,所以你可以给这些块降权或打上标记。
- 语言是字幕轨道的语言。 响应报告的是真实语言,所以不要想当然地认为它与你请求的一致。
- 吞吐量按密钥限制。 非常大的回填需要几个小时,而不是几秒钟。
- 只返回文字稿。 分块、嵌入和检索是你自己的工作。如果你只需要一个视频的摘要,请使用 YouTube 摘要工具。
来源
常见问题
获取 10,000 份 YouTube 文字稿要花多少钱?
最多 20,000 个积分,因为每份文字稿 2 个积分。使用 5,000 积分套餐($74.99,每份 $0.030),大约是 $300。没有文字稿的视频不收费,所以实际总额可能更低。
长任务中余额用完了会怎样?
开启自动充值后,一旦余额低于你所选的水平,就会从已保存的银行卡再扣一个套餐的费用,任务继续运行。不开启的话,积分用完时请求就会停止。
如何防止 bug 推高我的账单?
设置月度充值预算和月度积分上限。达到积分上限后,请求会返回 402 budget_exceeded。你还可以收到余额不足、达到月度上限的 80%,以及充值失败的电子邮件提醒。
速率限制是多少?
每个密钥每分钟 60 次请求,最多 5 个有效密钥。按每秒一次请求,10,000 个视频用单个密钥不到三个小时。
没有字幕的视频怎么办?
它们会返回 404 no_transcript,且不收费。API 不会转写音频,所以这些视频需要另一个来源。
相关阅读
最佳 YouTube 文字稿 API 对比:sum.video、Supadata、Transcribr 与 Python 库用代码获取 YouTube 文字稿的四种方式,从价格、限制和可靠性对比:sum.video、Supadata、Transcribr 和 youtube-transcript-api。
如何用 API 获取 YouTube 文字稿(curl、Python、JavaScript)只需一次 HTTP 请求,就能获取任何公开 YouTube 视频的文字稿。含可运行的 curl、Python 和 JavaScript 示例、输出格式、错误码与费用。
从YouTube视频构建个人知识库将你学习的YouTube视频转化为一个可搜索的摘要和保存点库,并附带每周回顾,这样你就能在几个月后再次找到某个想法。
最新文章
最佳 YouTube 文字稿 API 对比:sum.video、Supadata、Transcribr 与 Python 库用代码获取 YouTube 文字稿的四种方式,从价格、限制和可靠性对比:sum.video、Supadata、Transcribr 和 youtube-transcript-api。
如何用 API 获取 YouTube 文字稿(curl、Python、JavaScript)只需一次 HTTP 请求,就能获取任何公开 YouTube 视频的文字稿。含可运行的 curl、Python 和 JavaScript 示例、输出格式、错误码与费用。
从YouTube视频构建个人知识库将你学习的YouTube视频转化为一个可搜索的摘要和保存点库,并附带每周回顾,这样你就能在几个月后再次找到某个想法。