youtube embed - 使用默认的特定语言强制使用字幕

时间:2012-10-02 06:05:03

标签: youtube-api

我正在使用特定语言的字幕嵌入youtube视频(希伯来语,在我的情况下)。 我正在使用:

hl=He&cc_load_policy=1

显示希伯来语字幕,效果很好。

但是,如果我的语言中没有副词,我希望看到英语(如果有的话)作为默认语言。有没有办法强迫它?

4 个答案:

答案 0 :(得分:20)

您可以使用cc_load_policy&强制使用字幕和语言。通过

选择cc_lang_pref个选项

<强> URL:

http://www.youtube.com/embed/M7lc1UVf-VE?cc_load_policy=1&cc_lang_pref=en

<强> API:

var ytPlayer = new YT.Player(
    ...
    playerVars: {
        cc_load_policy: 1,
        cc_lang_pref: 'en'
    },
    ....
});

致谢:https://webapps.stackexchange.com/questions/27669/is-there-any-way-to-force-subtitles-in-a-youtube-video

答案 1 :(得分:3)

我没有在他们的api文档中找到它,但是使用youtube播放器对象,您应该可以执行以下操作将其更改为英文字幕:

player.setOption("captions", "track", {"languageCode": "en"});  //Works for html5 ignored by AS3
player.setOption("cc", "track", {"languageCode": "en"});  //Works for AS3 ignored by html5

你也可以这样做:

var module;
if (testplayer.getOptions().indexOf("cc") !== -1) {
    module = "cc";
} else if (testplayer.getOptions().indexOf("captions") != -1) {{
    module = "captions";
}
var tracklist = testplayer.getOption(module, "tracklist");

// then iterate through the tracklist to see if "he" or "en" is there.

你有cc_load_policy = 1但你也可以通过js打开它:

player.loadModule("captions");  //Works for html5 ignored by AS3
player.loadModule("cc");  //Works for AS3 ignored by html5

将其关闭:

player.unloadModule("captions");  //Works for html5 ignored by AS3
player.unloadModule("cc");  //Works for AS3 ignored by html5

答案 2 :(得分:2)

我相信完全忽略hl =会更好。 (它实际上不是我们的officially supported Player parameters之一。)字幕将默认为视频观看者的语言偏好,我的假设是,如果观众的首选语言中没有字幕,它将会回归到英语

答案 3 :(得分:0)

我发现的唯一方法是更改​​URI

https://www.youtube.com/watch?v=2s3aJfRr9gE

为此模式

"https://www.youtube-nocookie.com/embed/" + video_id + "?hl=" lang_code

在bash / Linux上,您只需复制具有该结构的URI,然后运行此命令(西班牙语编码为硬编码)即可转换剪贴板内容(您可以创建别名):

xclip -selection c -o | echo "$(cat -)?&amp;hl=es-419" | sed "s|youtube.com/watch?v=|youtube-nocookie.com/embed/|1" | xclip -selection c

您可以用ISO 639-1 language codes列出可用的字幕youtube-dl

youtube-dl --list-subs "{video_id or url}"

唯一的缺点是该视频将覆盖整个屏幕...对于停止拖拉相关视频可能是一件好事:)