我已经开始使用java客户端库在Android设备上使用YouTube api的v3.我感兴趣的一些视频有我可以在网络界面上访问的成绩单(如教育视频).有没有办法使用v3 apis访问成绩单(如果存在)?
谢谢
Dev*_*ari 33
我有同样的问题......花了一个星期寻找解决方案,直到我点击这个:
只需执行GET请求:http://video.google.com/timedtext? lang = {LANG}&v = {VIDEOID}您不需要任何api/oauth/etc. 访问这个.
使用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"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
然后选择您想要的成绩单:
https://www.googleapis.com/youtube/v3/captions/id?id=TqXDnlamg84o4bX0q2oaHz4nfWZdyiZMOrcuWsSLyPc=
要么
https://www.googleapis.com/youtube/v3/captions/TqXDnlamg84o4bX0q2oaHz4nfWZdyiZMOrcuWsSLyPc=
此时,您需要提供授权密钥。显然,简单的键是不够的。可能是因为:
配额影响:调用此方法的配额成本约为200个单位。
请注意,网址(/caption/和/caption?)略有不同。
所有可爱的文档都在这里:https : //developers.google.com/youtube/v3/docs/captions
我可能错了,但我认为还没有一种记录方法可以通过API的v3来获取字幕.但是,如果您使用oAuth2进行身份验证,则您的身份验证也适用于API的v2,因此您可以快速调用此Feed:
http://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captiondata/[CAPTION TRACKID]
Run Code Online (Sandbox Code Playgroud)
获取您想要的数据.要使用API的v2检索可能的字幕轨道ID列表,您可以访问此Feed:
https://gdata.youtube.com/feeds/api/videos/[VIDEOID]/captions
Run Code Online (Sandbox Code Playgroud)
该Feed请求还接受一些可选参数,包括语言,最大结果等.有关详细信息以及显示字幕轨道列表的返回格式的示例,请参阅https://developers.google.com上的文档./youtube/2.0/developers_guide_protocol_captions#Retrieve_Caption_Set
下面是我编写的一些代码,它可以从任何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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20647 次 |
| 最近记录: |