Youtube api 如何获得;谈话稿;在youtube api v3中

Youtube api 如何获得;谈话稿;在youtube api v3中,youtube-api,Youtube Api,我已经开始在android设备上使用v3的YouTube API,使用java客户端库。我感兴趣的一些视频有成绩单,我可以在web界面上访问(如教育视频)。有没有办法使用v3 API访问转录本(如果有) 谢谢我可能错了,但我认为目前还没有一种文档化的方法可以通过API的v3获取标题跟踪。但是,如果您正在使用oAuth2进行身份验证,您的身份验证也将适用于API的v2,因此您可以快速调用此提要: http://gdata.youtube.com/feeds/api/videos/[VIDEOID]

我已经开始在android设备上使用v3的YouTube API,使用java客户端库。我感兴趣的一些视频有成绩单,我可以在web界面上访问(如教育视频)。有没有办法使用v3 API访问转录本(如果有)


谢谢

我可能错了,但我认为目前还没有一种文档化的方法可以通过API的v3获取标题跟踪。但是,如果您正在使用oAuth2进行身份验证,您的身份验证也将适用于API的v2,因此您可以快速调用此提要:

http://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captiondata/[CAPTION TRACKID]
https://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captions
以获取所需的数据。要使用API的v2检索可能的字幕曲目ID列表,请访问以下提要:

http://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captiondata/[CAPTION TRACKID]
https://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captions

该提要请求还接受一些可选参数,包括语言、最大结果等。有关更多详细信息,以及显示标题曲目列表返回格式的示例,请参阅

中的文档。我也有同样的问题。。。花了一周的时间寻找解决方案,直到我发现:

只需在以下位置执行GET请求:{LANG}&v={VIDEOID}
您不需要任何api/oauth/等来访问此文件。

使用api v3,您可以首先使用代码片段获取可用的转录本:

:

然后选择您想要的成绩单:

此时您需要提供授权密钥。显然,一把简单的钥匙是不够的。可能是因为:

配额影响:调用此方法的配额成本约为200个单位

请注意URL中的细微差别(
/caption/
/caption?

所有可爱的文档都在这里:

以下是我编写的一些代码,它可以从任何youtube视频中获取所有字幕曲目,而无需使用API。只需将视频URL插入
$video\u URL
变量即可

// get video id from url
$video_url = 'https://www.youtube.com/watch?v=kYX87kkyubk';
preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $video_url, $matches);

// get video info from id
$video_id = $matches[0];
$video_info = file_get_contents('http://www.youtube.com/get_video_info?&video_id='.$video_id);
parse_str($video_info, $video_info_array);

if (isset($video_info_array['caption_tracks'])) {
    $tracks = explode(',', $video_info_array['caption_tracks']);

    // print info for each track (including url to track content)
    foreach ($tracks as $track) {
        parse_str($track, $output);
        print_r($output);
    }
}
//从url获取视频id
$video\u url='1https://www.youtube.com/watch?v=kYX87kkyubk';

preg_match(“#(?可能最好的方法是使用Youtube API 3。我正在尝试,但您需要API密钥+OAuth 2.0用户。快速解决方案是使用captionsgrabber并解析返回的HTML数据

使用示例:


//其中id是youtube视频id

感谢您的回复。如何获取[caption trackid]?我在v3 API中也看不到……此API将被删除。如何用v3替换?上周在v3中添加了标题;以下是文档。
https://gdata.youtube.com
API已移动到
https://www.googleapis.com/youtube/v3/videos/
因此,请从2018年1月起使用此方法检索transc不是我自己拥有的视频片段?对我来说很好。出色的工作!当字幕是手动输入时,这似乎有效,而不是由youtube自动创建。对于信息+1,但它对我也不起作用,我已上传视频并自动生成字幕
http://video.google.com/timedtext?lang=en&v=h2pWeot3MJY&track=asr
但是没有从视频中获取字幕,这似乎是不可能的。我所能找到的任何解决方案都不允许我检索自动生成的字幕。因此,我提出了一个更复杂的解决方案。如果有人仍然感兴趣,可以在我的GitHub上找到代码:有趣的案例:我使用了@Solomon选项提到Ucko(
?type=list
)要获取此视频的曲目列表:
CWlbjXwUMJI
,但是当尝试使用
检索曲目时,lang=en&v=CWlbjXwUMJI
我只得到一个空白屏幕。YouTube错误,还是它选择性地保护了某些视频的某些字幕?您是在谈论服务器api还是客户端api?无法使用id选择成绩单,显示error 404“找不到标题轨迹。请检查requests
id
参数的值,以确保其正确性。”我已根据您的标题轨迹逻辑创建了一个代码,如果您希望我们可以一起添加更多支持,我已添加了翻译详细信息,例如。似乎无法处理自动转录的视频…:(!所以可能是使用Youtube API 3和