代码始终 returns isCC = false 即使对于带有隐藏式字幕的视频也是如此 - Apps 脚本
Code always returns isCC = false even for videos with closed captions - Apps Script
var caption = YouTube.Captions.list("snippet", "XPpsI8mWKmg")
https://www.youtube.com/watch?v=XPpsI8mWKmg
此视频有隐藏式字幕。但是,响应总是 returns isCC = false
。它也发生在更多视频中。谁能告诉我为什么?
https://developers.google.com/youtube/v3/docs/captions
这是回复:
[15-09-14 10:46:33:634 BST] {
kind=youtube#captionListResponse,
tag="jOXstHOM20qemPbHbyzf7ztZ7rI/pWn9PuYA4wHTOuk7gWrw_wkqaMg",
items=[{snippet={lastUpdated=2015-04-22T15:19:44.401Z,
trackKind=ASR, isAutoSynced=false,
audioTrackType=unknown,
isDraft=false, name=,
isEasyReader=false,
isLarge=false,
videoId=XPpsI8mWKmg,
language=en, isCC=false,
status=serving},
kind=youtube#caption,
etag="jOXstHOM20qemPbHbyzf7ztZ7rI/5QI7PZUUbbATmyKtvzGqv9-ylR0",
id=5dp7OTjMUTyH2tf_kEhELNI2X9MpCov20brI5R-kAw4=},
{snippet={
lastUpdated=2015-04-22T15:12:54.185Z,
trackKind=standard,
isAutoSynced=false,
audioTrackType=unknown,
isDraft=false,
name=,
isEasyReader=false,
isLarge=false,
videoId=XPpsI8mWKmg,
language=en,
isCC=false,
status=serving},
kind=youtube#caption,
etag="jOXstHOM20qemPbHbyzf7ztZ7rI/6A1s7QwGUJ_Jp39d-tidbyPR6t4",
id=Q-Rh5crBiivJBgQyElc_gzhB8eK8y0V4}]}
谢谢。
我认为问题可能出在您的语法中:
var caption = youtube.captions().list("snippet", "XPpsI8mWKmg").execute();
或者也许
var caption = youtube.Captions.list("snippet", "XPpsI8mWKmg").execute();
我对 YouTube 没有太多经验 api 但查看 documentation 我发现了上面的代码。
我尝试为自己的视频设置隐藏式字幕,但得到了相同的结果。
我相信在播放器中,你看到的"CC"其实是指字幕。字幕和隐藏式字幕之间存在重要区别(参见 here and here)。
Subtitles (or English Subtitles) is usually just a word-for-word
translation of the dialog into English words.
...
CC usually also tells the viewer about sound effects or background
noises. For example if you are watching a movie with explosions,
gunfire or other sounds that are important to the plot, CC will
usually display text that announces such sounds
因此,我相信 isCC
只会 true
用于包含此类字幕的视频,这些字幕是为那些可能无法听到视频中发生的事情的人准备的,而不是仅仅人们可以在视频中添加的一般字幕。我认为在几乎所有情况下,只有 YouTube 上的高质量付费电影才会有这类字幕。从这个意义上说,isCC
属性 以它应该的方式工作。
var caption = YouTube.Captions.list("snippet", "XPpsI8mWKmg")
https://www.youtube.com/watch?v=XPpsI8mWKmg
此视频有隐藏式字幕。但是,响应总是 returns isCC = false
。它也发生在更多视频中。谁能告诉我为什么?
https://developers.google.com/youtube/v3/docs/captions
这是回复:
[15-09-14 10:46:33:634 BST] {
kind=youtube#captionListResponse,
tag="jOXstHOM20qemPbHbyzf7ztZ7rI/pWn9PuYA4wHTOuk7gWrw_wkqaMg",
items=[{snippet={lastUpdated=2015-04-22T15:19:44.401Z,
trackKind=ASR, isAutoSynced=false,
audioTrackType=unknown,
isDraft=false, name=,
isEasyReader=false,
isLarge=false,
videoId=XPpsI8mWKmg,
language=en, isCC=false,
status=serving},
kind=youtube#caption,
etag="jOXstHOM20qemPbHbyzf7ztZ7rI/5QI7PZUUbbATmyKtvzGqv9-ylR0",
id=5dp7OTjMUTyH2tf_kEhELNI2X9MpCov20brI5R-kAw4=},
{snippet={
lastUpdated=2015-04-22T15:12:54.185Z,
trackKind=standard,
isAutoSynced=false,
audioTrackType=unknown,
isDraft=false,
name=,
isEasyReader=false,
isLarge=false,
videoId=XPpsI8mWKmg,
language=en,
isCC=false,
status=serving},
kind=youtube#caption,
etag="jOXstHOM20qemPbHbyzf7ztZ7rI/6A1s7QwGUJ_Jp39d-tidbyPR6t4",
id=Q-Rh5crBiivJBgQyElc_gzhB8eK8y0V4}]}
谢谢。
我认为问题可能出在您的语法中:
var caption = youtube.captions().list("snippet", "XPpsI8mWKmg").execute();
或者也许
var caption = youtube.Captions.list("snippet", "XPpsI8mWKmg").execute();
我对 YouTube 没有太多经验 api 但查看 documentation 我发现了上面的代码。
我尝试为自己的视频设置隐藏式字幕,但得到了相同的结果。
我相信在播放器中,你看到的"CC"其实是指字幕。字幕和隐藏式字幕之间存在重要区别(参见 here and here)。
Subtitles (or English Subtitles) is usually just a word-for-word translation of the dialog into English words.
...
CC usually also tells the viewer about sound effects or background noises. For example if you are watching a movie with explosions, gunfire or other sounds that are important to the plot, CC will usually display text that announces such sounds
因此,我相信 isCC
只会 true
用于包含此类字幕的视频,这些字幕是为那些可能无法听到视频中发生的事情的人准备的,而不是仅仅人们可以在视频中添加的一般字幕。我认为在几乎所有情况下,只有 YouTube 上的高质量付费电影才会有这类字幕。从这个意义上说,isCC
属性 以它应该的方式工作。