一尘不染

如何获得YouTube API第3版的视频时长?

php

我正在使用YouTube API v3搜索YouTube。

https://developers.google.com/youtube/v3/docs/search

如您所见,响应JSON不包含视频时长。有没有办法获得视频时长?

最好不要再为结果中的每个元素调用API(除非这是获取持续时间的唯一方法)。


阅读 313

收藏
2020-05-26

共1个答案

一尘不染

进行搜索调用后,您将必须调用YouTube数据API的视频资源。您最多可以在搜索中输入50个视频ID,因此不必为每个元素都调用它。

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秒。

2020-05-26