yt-dlp 字幕对转录文本 API:哪个使用

yt-dlp 可以下载基本上任何 YouTube 视频的字幕,如果你用它做媒体下载,你可能已经发现了标志。它是一个真正伟大的工具——我在任何地方都安装它。但"可以下载字幕"和"是在服务中获取转录文本的正确方式"是不同的声明,我被混淆它们烧伤了。这是每个方法实际上是什么样的,包括没人警告你的清理步骤。
yt-dlp 方式,逐端
抓自动生成的英文字幕,没有下载视频:
yt-dlp --write-auto-sub --sub-lang en --skip-download \
-o "%(id)s" "https://www.youtube.com/watch?v=VIDEO_ID"
(对人类上传的轨道使用 --write-sub 代替,或两个标志一起。)这掉下一个 VIDEO_ID.en.vtt 文件。打开它,你会看到为什么你还没完成:
WEBVTT
Kind: captions
Language: en
00:00:00.320 --> 00:00:02.879
so today we're going to look at
00:00:01.760 --> 00:00:04.560
so today we're going to look at
how youtube handles
自动字幕是"滚动"字幕——每个提示重复前一行,所以天真的剥离给你每句两次。每个人下这条路最后写这个清理的某个版本:
import re, pathlib
lines = []
for line in pathlib.Path("VIDEO_ID.en.vtt").read_text().splitlines():
if "-->" in line or line.startswith(("WEBVTT", "Kind:", "Language:")) or not line.strip():
continue
line = re.sub(r"<[^>]+>", "", line).strip() # strip inline timing tags
if not lines or line != lines[-1]: # collapse rolling duplicates
lines.append(line)
text = " ".join(lines)
命令、子进程处理、文件 I/O、去重——在你有纯文本之前称之为 40 行胶水。
yt-dlp 是正确答案的地方
- 大容量离线存档。 指向它在频道 URL,它会走每个视频、字幕包括、可恢复和免费。对于在你的家庭连接上构建个人存档,没什么能击败它。
- 你想要字幕文件本身。 如果 srt/vtt 带时间是可交付的——馈送视频编辑、保留确切提示时间——yt-dlp 给你原始工件。
- 你下载媒体无论如何。 已经拉音频用于Whisper 转录文本?添加
--write-auto-sub是一个标志。 - 零预算、个人规模。 在人类速度的住宅 IP 上,它只是工作。
它在服务器上伤害的地方
三个单独的维护负担在 yt-dlp 移入后端时出现:
- 二进制跑步机。 YouTube 不断改变它的内部,yt-dlp 不断发送修复——这是一个功能,但它意味着你的生产依赖需要频繁更新或提取开始失败。
- IP 限制。 从 AWS/GCP/Heroku 地址,期望"登录以确认你不是机器人"错误。这是相同的墙阻止云中的 youtube-transcript-api——切换工具不切换你的 IP 声誉。
- 胶水代码。 子进程管理、临时文件、上面的 vtt 清理、非英文轨道、通过退出代码和 stderr 解析的缺失字幕检测。
API 方式
托管端点版本的上面整个管道:
curl -s "https://youtube2text.org/api/transcribe?url=VIDEO_ID" \
-H "x-api-key: yt_YOUR_KEY"
返回 JSON——{"result": {"videoId", "title", "pubDate", "content", ...}}——已经去重纯文本、带结构化错误(TRANSCRIPT_UNAVAILABLE 当没有字幕存在时、代替 stderr 考古)。一个共享演示密钥是一个调用离开(curl -s https://youtube2text.org/api/demo-key、每个 IP 每月 5 个视频);完整快速启动在用 curl 提取转录文本。
诚实的脚注
两个方法从相同地方获取相同字幕,两个都必须处理 YouTube 不想要自动化流量。yt-dlp 制作那是你的问题——在笔记本上很好、在服务器上代理项目。托管 API 制作它是提供者的问题:youtube2text.org 路由获取通过旋转住宅代理服务器端、这恰好是你不能容易从数据中心 IP 复制的片段。你不为转录文本付费;你付费不操作那个。
我的分割:yt-dlp 用于存档和我自己机器上的一次性、API 用于任何无人值守运行。如果那匹配你的情况,密钥在 youtube2text.org/app/keys——Google 登录、免费 5/月层、从 5.99 美元付费。