如何在 chrome 插件中获取 youtube 视频的字幕

2 天前
 itopmy

如何在 chrome 插件中获取 youtube 视频的字幕

有一些 python 的库,没法在 chrome 插件中使用,而且在云端使用容易被封 ip 地址。

所以想从用户的浏览器端来获取 youtube 视频的字幕。youtube 视频播放页面,本身是可以请求字幕的。看起来是请求这个地址: https://www.youtube.com/youtubei/v1/get_transcript?prettyPrint=false 。但是有一个 params 不知道咋构造出来的。

--data-raw '{"context":{"client":{"clientName":"WEB","clientVersion":"2.20250526.00.00"}},"params":"CgtiZFNxNGI2RnFxVRISQ2dOaGMzSVNBbVZ1R2dBJTNEGAEqM2VuZ2FnZW1lbnQtcGFuZWwtc2VhcmNoYWJsZS10cmFuc2NyaXB0LXNlYXJjaC1wYW5lbDABOAFAAQ%3D%3D"}'

有类似的 chrome 插件也是通过请求这个地址获取的字幕,不过对应的 js 代码混淆了。https://chromewebstore.google.com/detail/youtube-summary-chatgpt-b/cdjifpfganmhoojfclednjdnnpooaojb?hl=en-US&utm_source=ext_sidebar

有谁做过类似的需求?

618 次点击
所在节点    Chrome
9 条回复
winterx
2 天前
楼主可以抓一下沉浸式翻译看看他怎么实现的
yb2313
2 天前
好多插件翻译功能都能做到, 给我狠狠逆向他们的插件, 然后带我一起学学
M4ster
2 天前
F12 看了下,在 Network 中 https://www.youtube.com/api/timedtext 相关的请求是与字幕有关的。
其中的查询参数可能要自己研究下怎么计算,在 GitHub 上搜了下有许多相关项目,OP 可以参考下。
https://github.com/search?q=youtube.com%2Fapi%2Ftimedtext&ref=opensearch&type=code
iOCZS
2 天前
应该可以拦截请求。。。。
itopmy
2 天前
@M4ster 视频下面有一个 more ,点开后,有一个 show transcript ,点击后的请求就是 https://www.youtube.com/youtubei/v1/get_transcript?prettyPrint=false ,确实就是不知道它的参数是咋构造的。特别是 params 那个 base64 编码。

https://www.youtube.com/api/timedtext 这个感觉是比较早的接口了。
itopmy
2 天前
@iOCZS 不想拦截请求,就是想用户观看视频时,后台拿到字幕,然后让 AI 加工一下。字幕在用户端获取。现在有好多视频 summary 的插件,都是同样的套路。
AvilCore
2 天前
有做好的轮子干嘛自己造呢
https://github.com/LuanRT/YouTube.js/pull/500
dark495
1 天前
iOCZS
1 天前
@dark495
@itopmy 我记得 Chrome 插件原生就提供拦截请求的能力,有个双语字幕就是基于这个原理实现的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1142821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX