15

我正在嵌入带有特定语言字幕的 youtube 视频(在我的例子中是希伯来语)。我在用着:

hl=He&cc_load_policy=1

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

但是,如果我的语言没有字幕,我希望将英语字幕(如果有的话)作为默认设置。有没有办法强制这样做?

4

4 回答 4

30

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

网址:

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

接口:

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

于 2014-04-11T14:58:37.213 回答
5

我在他们的 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
于 2014-03-29T01:46:34.593 回答
3

我相信完全省略 hl= 会更好。(这实际上不是我们官方支持的播放器参数之一。)字幕将默认为视频观看者的语言偏好,我的假设是如果没有观看者首选语言的字幕,它将使用英语。

于 2012-10-02T19:14:33.290 回答
2

我发现的唯一方法是将 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 -)?&hl=es-419" | sed "s|youtube.com/watch?v=|youtube-nocookie.com/embed/|1" | xclip -selection c

您可以使用youtube-dl列出可用的字幕ISO 639-1 语言代码

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

唯一的缺点是视频将覆盖整个屏幕......这可能是停止拖延相关视频的好事:)

于 2019-04-02T19:05:09.023 回答