V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Get Google Chrome
Vimium · 在 Chrome 里使用 vim 快捷键
itopmy
V2EX  ›  Chrome

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

  •  
  •   itopmy · 1 天前 · 608 次点击

    如何在 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

    有谁做过类似的需求?

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

    https://www.youtube.com/api/timedtext 这个感觉是比较早的接口了。
    itopmy
        6
    itopmy  
    OP
       1 天前
    @iOCZS 不想拦截请求,就是想用户观看视频时,后台拿到字幕,然后让 AI 加工一下。字幕在用户端获取。现在有好多视频 summary 的插件,都是同样的套路。
    AvilCore
        7
    AvilCore  
       1 天前   ❤️ 1
    有做好的轮子干嘛自己造呢
    https://github.com/LuanRT/YouTube.js/pull/500
    dark495
        8
    dark495  
       1 天前
    iOCZS
        9
    iOCZS  
       23 小时 4 分钟前
    @dark495
    @itopmy 我记得 Chrome 插件原生就提供拦截请求的能力,有个双语字幕就是基于这个原理实现的
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2793 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:04 · PVG 16:04 · LAX 01:04 · JFK 04:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.