《油管字幕下载器》在线工具上线

2023-12-13 | 75浏览 | 0评论 | 标签:无

花了两天时间写了这个网页版 油管字幕下载器(YouTube Captions Download) ,用于将YouTube cc字幕导出到本地,支持srt/vtt/txt/json等格式。

使用地址

点这里可直接免费使用:【油管字幕下载器】

功能介绍

将你感兴趣的YouTube视频地址url复制到工具输入框中,程序将自动获取该视频下的所有语种的字幕列表,并提供常用字幕格式的预览和下载。

效果演示

油管字幕下载器(YouTube Captions Download).gif

实现过程

谷歌官方提供了YouTube字幕相关的API (官方api地址),要列表有列表,要下载有下载,看起来很美好,调用接口时发现需要额外授权。搜查了不少资料后决定放弃官方接口,改由爬取页面的老手艺。(不明白为什么油管cc字幕是公开的,但下载字幕却需要额外授权)。

一、获取字幕列表

熟悉油管源码的朋友可能知道,字幕是通过https://www.youtube.com/api/timedtext接口返回的,网上流传的通过https://www.youtube.com/api/timedtext?lang={LANG}&v={VIDEO_ID}方式已经失效,推测应该是加了签名验证。通过查看https://youtube.com/watch?v={VIDEO_ID} 网页源码可发现,源码中即包含了一个timedtext集合,在captionTracks对象中。

youtube源码.jpg

通过正则或其它方式将其解析出来,得到类似于这样的字幕地址:
https://www.youtube.com/api/timedtext?v=PkZNo7MFNFg&ei=F6t6ZcShFMiWvcAP_5OZqAM&caps=asr&opi=112496729&xoaf=5&hl=zh-HK&ip=0.0.0.0&ipbits=0&expire=1702563207&sparams=ip,ipbits,expire,v,ei,caps,opi,xoaf&signature=D32EB73F562CC8651795FF5D2EF6189028305883.16939FF8E96324579331B8D4AB1ED314DE7EFFC3&key=yt8&lang=en(注意有时效限制),尝试进行访问,得到了一个xml格式的字幕文件。

油管字幕xml.jpg

果不其然进行了签名验证,既然已经拿到字幕,接下来的事就水到渠成了。

二、预览/下载字幕

字幕文件已经到手,虽然是xml文件,预览和下载功能算是呼之欲出了,这里我使用Node.js进行文本的读取和写入,网上很多Node解析xml、Node文本读写的教程,不再赘述。

后话

我自已对字幕不是很懂,对一些细节问题可能没法设身处地去理解。我看网上也有人做了类似工具,甚至支持了翻译和双字幕功能,我暂时没有发现支持大额且免费的翻译方法,不知道他们是怎么解决翻译成本问题的。如果有人知道,也请不吝赐教。

(本篇完。有疑问欢迎留言探讨)

留言:

*

* (方便回复通知)

打赏
编辑代码 运行结果
退出