我正在使用YouTube接口v3搜索YouTube。
https://developers.google.com/youtube/v3/docs/search
如您所见,响应JSON不包含视频时长。有没有办法获取视频时长?
最好不要再次为结果中的每个元素调用API (除非这是获取持续时间的唯一方法)。
发布于 2013-03-25 08:23:00
在进行搜索调用之后,您必须调用YouTube data API的视频资源。您可以在一次搜索中输入最多50个视频it,因此您不必为每个元素调用它。
https://developers.google.com/youtube/v3/docs/videos/list
您需要设置part=contentDetails
,因为有持续时间。
例如,下面的调用:
https://www.googleapis.com/youtube/v3/videos?id=9bZkp7q19f0&part=contentDetails&key={YOUR_API_KEY}
结果如下:
{
"kind": "youtube#videoListResponse",
"etag": "\"XlbeM5oNbUofJuiuGi6IkumnZR8/ny1S4th-ku477VARrY_U4tIqcTw\"",
"items": [
{
"id": "9bZkp7q19f0",
"kind": "youtube#video",
"etag": "\"XlbeM5oNbUofJuiuGi6IkumnZR8/HN8ILnw-DBXyCcTsc7JG0z51BGg\"",
"contentDetails": {
"duration": "PT4M13S",
"dimension": "2d",
"definition": "hd",
"caption": "false",
"licensedContent": true,
"regionRestriction": {
"blocked": [
"DE"
]
}
}
}
]
}
时间格式为ISO 8601字符串。PT代表时长,4M代表4分钟,13S代表13秒。
发布于 2015-03-29 15:08:08
这样啊,原来是这么回事!
$dur = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=$vId&key=dldfsd981asGhkxHxFf6JqyNrTqIeJ9sjMKFcX4");
$duration = json_decode($dur, true);
foreach ($duration['items'] as $vidTime) {
$vTime= $vidTime['contentDetails']['duration'];
}
在那里,它返回YouTube应用编程接口版本3的时间(顺便说一下,密钥是由;组成的)。我使用的$vId
,我已经从返回的视频列表中的视频频道,我正在播放的视频来自…
它起作用了。谷歌真的需要在代码片段中包含持续时间,这样你就可以通过一次调用而不是两次调用来获得所有信息……它在他们的“未修好”清单上。
发布于 2016-07-13 17:53:22
此代码通过传入视频ID,使用YouTube接口v3提取YouTube视频时长,适用于我。
<?php
function getDuration($videoID){
$apikey = "YOUR-Youtube-API-KEY"; // Like this AIcvSyBsLA8znZn-i-aPLWFrsPOlWMkEyVaXAcv
$dur = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=$videoID&key=$apikey");
$VidDuration =json_decode($dur, true);
foreach ($VidDuration['items'] as $vidTime)
{
$VidDuration= $vidTime['contentDetails']['duration'];
}
preg_match_all('/(\d+)/',$VidDuration,$parts);
return $parts[0][0] . ":" .
$parts[0][1] . ":".
$parts[0][2]; // Return 1:11:46 (i.e.) HH:MM:SS
}
echo getDuration("zyeubYQxHyY"); // Video ID
?>
您可以在https://console.developers.google.com上获取您的域名的YouTube应用编程接口密钥,并根据自己的需求生成凭据。
https://stackoverflow.com/questions/15596753
复制相似问题