首页 > 解决方案 > 如何使用 JavaScript 找出 YouTube 的“自动字幕语言”?(获取自动字幕语言)

问题描述

  1. 我开发了 YouTube 字幕提取。
    我的程序获取“用户选择的语言”的字幕。

在此处输入图像描述



  1. 但是,有很多语言可供选择。

在此处输入图像描述



  1. 所以,我使用下面的链接来获取“视频的字幕语言列表”。
    http://video.google.com/timedtext?v=${youtubeID}&type=list
    http://video.google.com/timedtext?v=oIa3BFBHJFI&type=list(示例)

在此处输入图像描述

我的代码:

        fetch(`http://video.google.com/timedtext?v=${youtubeID}&type=list`
        .then(res => res.text())                                                 // 1. xml -> get text
        .then(str => (new window.DOMParser()).parseFromString(str, "text/xml"))  // 2. text -> xml
        .then(data => {
            let tempLanguageList = [];
            let xml = data.getElementsByTagName("transcript_list")[0];          

            // get language
            for (let i = 0; i < xml.childElementCount; i++) {
                let item = xml.children.item(i);   // 형태: <track id=​&quot;22" name lang_code=​&quot;en" lang_original=​&quot;English" lang_translated=​&quot;English" lang_default=​&quot;true">​&lt;/track>​
                let itemObject = item.getAttribute("lang_code") + ", " + item.getAttribute("lang_original")
                tempLanguageList.push(itemObject);  // ex) en
            }

            console.log("tempLanguageList: ", tempLanguageList);
        })

结果:

在此处输入图像描述



  1. 但是,自动字幕没有显示在上面的链接中。 在此处输入图像描述

(add) 比如这个视频中的https://youtu.be/D_M9fl_Cj9I,'english '是自动字幕,'korea'是手动字幕。

在此处输入图像描述

但是当我检查它时,英语并没有出现在列表中。
http://video.google.com/timedtext?v=D_M9fl_Cj9I&type=list

在此处输入图像描述



[问题]
如何查看特定 YouTube 视频的“自动字幕语言列表”?

标签: javascriptyoutubeyoutube-apiyoutube-data-api

解决方案


推荐阅读