它解决什么问题
学校和课程创作者往往有数百个没有文字稿的视频,或只有无法当作文档阅读的自动字幕。无障碍服务办公室只能逐个处理便利需求。为所有视频发布易读的文字稿,能清空积压,惠及每位学习者。
第一版应该包含哪些功能
- 为课程或频道中的每个视频生成文字稿
- 为没有字幕的视频提供 AI 语音识别
- 段落和说话人标签,提升可读性
- 便于屏幕阅读器导航的 HTML 文字稿页面
- 可下载的文本和字幕文件
分步实现指南
- 01
盘点视频
解析每个课程播放列表或频道,列出所有需要文字稿的视频。
- 02
批量转录
把 ID 发送到 /batch 并启用 format.paragraphs。启用 allow_asr 并配置 webhook,让没有字幕的视频通过 AI 语音识别转录。
- 03
提升可读性
对于有多位讲者的课程,使用 ASR 说话人标签。保留分段和标题,让文字稿读起来像文档。
- 04
发布
把每份文字稿渲染为 HTML 页面或视频下方的可折叠区块,并提供下载链接。
入门代码
这个创意基于“方案 3:把播放列表批量导入知识库”模式。替换成你自己的频道、提示词和存储即可。
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
"limit": 100}).json()
ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
"video_ids": ids,
"format": {"timestamp": True, "paragraphs": True},
}).json()
# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
if r["status"] == "completed":
for p in r["data"]["transcript"].get("paragraphs") or []:
store(video_id=r["video_id"], start=p["start"], text=p["text"]) # your vector DB为什么值得做
对机构来说,回报是更快地履行无障碍义务,让课程内容更好用、更容易被发现。代理公司和平台可以把文字稿发布作为服务卖给学校。
需要避开的坑
- 把自动字幕作为一整块不分段的文本发布:要按段落和说话人整理格式。
- 只把文字稿藏在下载链接里:把文本放在页面上,既易读又可被索引。
- 默认 AI 输出完美无误:请人抽查专业术语和人名,尤其是在提供必要便利时。
关于这个创意的问题
文字稿对视频无障碍有帮助吗?
有。文字稿让听障用户和屏幕阅读器用户能完整获取口语内容,常见的无障碍指南也建议与字幕一起提供。
文字稿对 SEO 有帮助吗?
以文本形式发布在页面上的文字稿,比单纯嵌入视频能为搜索引擎提供更多可索引的相关内容。
如果视频没有字幕怎么办?
启用 AI 语音识别,API 会用 99 种语言中的任意一种转录音频。