如何获得在YouTube上-API V3“成绩单”(How to get “transcript”

2019-07-17 15:27发布

我已经开始使用YouTube的API V3在Android设备上,使用Java客户端库。 我感兴趣的一些影片有我可以在网络界面上访问(如教育视频)的成绩单。 是否有访问笔录的方式,如果存在的话,使用V3的API?

谢谢

Answer 1:

我可能是错的,但我不认为这是又一个记录的方式通过API的V3让字幕轨道。 如果你正在使用的OAuth2认证,但是,您的验证也将是良好的API的V2,所以你可以做一个快速调用该饲料:

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

得到你想要的数据。 要检索与API的V2可能字幕轨道ID的列表,您可以访问此饲料:

https://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captions

饲料要求也接受一些可选参数,包括语言,最大结果等有关详细信息,与显示字幕轨道列表返回格式的样品一起,请参阅文档在https://developers.google.com /youtube/2.0/developers_guide_protocol_captions#Retrieve_Caption_Set



Answer 2:

我有这个同样的问题......而像花一个星期寻找一个解决方案,直到我打这个:

https://stackoverflow.com/questions/10036796/how-to-extract-subtitles-from-youtube-videos

只要做一个GET请求: http://video.google.com/timedtext?lang= {} LANG&V = {} VIDEOID你不需要任何API / OAuth的/等。 访问此。



Answer 3:

下面有一些代码,我写了抓住任何YouTube视频中的所有字幕轨道,而不必使用API​​。 只要插上视频网址$video_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);
    }
}


Answer 4:

随着API V3可以先抢到与片段可用成绩单:

https://www.googleapis.com/youtube/v3/captions?videoId=U1e2VNtEqm4&part=snippet&key=(my_api_key) :

{
 "kind": "youtube#captionListResponse",
 "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/aGHflncRxq1Uz6m1akhrOLUWUqU\"",
 "items": [
  {
   "kind": "youtube#caption",
   "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/IC7rNKkn3SQNdovFwR6fEabUYnY\"",
   "id": "TqXDnlamg84o4bX0q2oaHz4nfWZdyiZMOrcuWsSLyPc=",
   "snippet": {
    "videoId": "U1e2VNtEqm4",
    "lastUpdated": "2016-01-25T21:50:27.142Z",
    "trackKind": "standard",
    "language": "en-GB",
    "name": "",
    "audioTrackType": "unknown",
    "isCC": false,
    "isLarge": false,
    "isEasyReader": false,
    "isDraft": false,
    "isAutoSynced": false,
    "status": "serving"
   }
  },
  {
   "kind": "youtube#caption",
   "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/5UP1qPkmq6mzTUaEVnFC8WqjFgU\"",
   "id": "TqXDnlamg84o4bX0q2oaHw_Y53ilUWv6vMFbk0RL3XY=",
   "snippet": {
    "videoId": "U1e2VNtEqm4",
    "lastUpdated": "2016-01-25T21:55:07.481Z",
    "trackKind": "standard",
    "language": "en-US",
    "name": "",
    "audioTrackType": "unknown",
    "isCC": false,
    "isLarge": false,
    "isEasyReader": false,
    "isDraft": false,
    "isAutoSynced": false,
    "status": "serving"
   }
  }
 ]
}

然后选择你需要的成绩单:

https://www.googleapis.com/youtube/v3/captions/id?id=TqXDnlamg84o4bX0q2oaHz4nfWZdyiZMOrcuWsSLyPc=

要么

https://www.googleapis.com/youtube/v3/captions/TqXDnlamg84o4bX0q2oaHz4nfWZdyiZMOrcuWsSLyPc=

此时你需要提供授权密钥。 显然,简单的按键是不够的。 可能是因为:

配额的影响:本方法的调用具有大约200单位的配额成本。

请注意,在URL中的微小差异( /caption/对比/caption? )。

所有可爱的文件是在这里: https://developers.google.com/youtube/v3/docs/captions



Answer 5:

对于任何人试图达到同样的,你可以尝试这个API,我创建 -

https://rapidapi.com/yashagarwal/api/subtitles-for-youtube

您也可以在免费的计划,每天100个请求。 它可以让你获取两个自动生成和手动上传字幕。



文章来源: How to get “transcript” in youtube-api v3
标签: youtube-api