用一个自定义函数在 Google Sheets 中获取 YouTube 转录文本

将 YouTube 转录文本放入 Google Sheets 只需一个 Apps Script 函数。粘贴一次,=YT_TRANSCRIPT(A2) 像任何内置公式一样工作:一列中的 URL,下一列中的转录文本。这是完整的脚本,加上两个 Google Sheets 特定的陷阱,如果没有人警告你会咬你。
脚本
打开你的电子表格,转到扩展程序 > Apps Script,粘贴这个:
const API_KEY = 'yt_YOUR_KEY';
/**
* Fetches the transcript of a YouTube video.
* @param {string} url Any YouTube URL or a bare 11-char video id.
* @param {number} maxChars Optional length cap (default 5000).
* @return {string} The transcript text.
* @customfunction
*/
function YT_TRANSCRIPT(url, maxChars) {
if (!url) return '';
const endpoint = 'https://youtube2text.org/api/transcribe'
+ '?url=' + encodeURIComponent(url)
+ '&maxChars=' + (maxChars || 5000);
const response = UrlFetchApp.fetch(endpoint, {
headers: { 'x-api-key': API_KEY },
muteHttpExceptions: true
});
const body = JSON.parse(response.getContentText());
if (body.error) return 'ERROR: ' + body.error.code;
return body.result.content;
}
保存,函数在你的表中是活的。@customfunction 标签是它与自动完成注册的东西;muteHttpExceptions 保持一个 404 不会爆炸成一个没人要求的红色单元格的栈跟踪。
对于密钥:在你的浏览器中请求 https://youtube2text.org/api/demo-key,它递回 {"success": true, "apiKey": "yt_..."}——一个免费共享密钥、无账户、每个 IP 每月限制 5 个视频。对于尝试这个很好;对于真实用途得到你自己的。
使用它
- 将视频 URL 放在 A 列中——完整链接、
youtu.be短链接或裸露的 11 字符 id 都可以。 - 在 B2 中,输入
=YT_TRANSCRIPT(A2)。 - 需要更多或更少文本?
=YT_TRANSCRIPT(A2, 20000)显式设置上限。 - 向下拖动公式在列中看着单元格填充。
转录文本来自 YouTube 的字幕——手动当创作者上传它们时、自动生成否则、优先英文,对存在的任何语言有回退。
为什么 maxChars 在这里比任何地方都更重要
Google Sheets 单元格最多容纳 50000 个字符。这是一个硬平台限制,API 的 150000 字符默认上限远超过它——一个长播客剧集会无法到达单元格。所以在 Sheets 中,总是传递 maxChars 50000 或更少。我将脚本默认设置为 5000,涵盖摘要、关键字检查和馈送 AI 公式,而不会把你的电子表格变成小说。
重新计算陷阱
这是自定义函数方法的诚实限制:Sheets 在它重新计算时重新运行自定义函数——包括每次文件重新打开时。每次重新运行是真实的 API 调用,所以一个有 40 个转录文本公式的表会在打开时悄悄重新获取 40 个视频并吃掉你的配额早餐。修复很简单:一旦转录文本到达,选择单元格并将它们粘贴回作为值(复制,然后粘贴特殊 > 仅值)。文本保留;公式及其胃口,去掉。
当单元格说 ERROR
函数返回可读的代码而不是崩溃。ERROR: TRANSCRIPT_UNAVAILABLE 意味着视频根本没有字幕——没有东西要获取。ERROR: RATE_LIMIT_EXCEEDED 意味着密钥的月配额用完了,在共享演示密钥上发生得很快。ERROR: INVALID_URL 意味着单元格不包含任何类似 YouTube 视频的东西。
何处拿去
一个转录文本满满的表是一个惊人好的研究工具——我在内容研究文章中走了那个工作流。当你超越公式并想在视频发布时自动获取转录文本时,n8n 工作流是无需动手的。
对于你自己的密钥——无共享配额、无电话、无卡——在 youtube2text.org/app/keys 用 Google 登录。免费涵盖每月 5 个视频;5.99 美元得到 50,9.99 美元得到 500,19.99 美元是无限。粘贴它到 API_KEY 表完成其余。