Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检索播放列表视频YouTube API的持续时间、视频图片和视图_Javascript_Youtube Data Api - Fatal编程技术网

Javascript 检索播放列表视频YouTube API的持续时间、视频图片和视图

Javascript 检索播放列表视频YouTube API的持续时间、视频图片和视图,javascript,youtube-data-api,Javascript,Youtube Data Api,我正在尝试使用Youtube API检索播放列表视频的持续时间、图片和视图。我注意到我检索到的代码片段中没有包含这些内容。以下是我目前掌握的代码: gapi.client.setApiKey('xxxx'); gapi.client.load('youtube', 'v3', function() { var request = gapi.client.youtube.playlistItems.list({ part: 'snippet, contentDetails',

我正在尝试使用Youtube API检索播放列表视频的持续时间、图片和视图。我注意到我检索到的代码片段中没有包含这些内容。以下是我目前掌握的代码:

gapi.client.setApiKey('xxxx');
gapi.client.load('youtube', 'v3', function() {

    var request = gapi.client.youtube.playlistItems.list({
      part: 'snippet, contentDetails',
      playlistId: 'PL3C9792F77CB0EE51',
      maxResults: 50
    });  

request.execute(function(response) {
    for (var i = 0; i < response.items.length; i++) {
       console.log(response.items[i].snippet.title + " published at " 
       + response.items[i].snippet.publishedAt);
       console.log(response.items[i].contentDetails.videoId);
    } 
});
console.log(response.items[i].contentDetails)
返回:

Object {
    videoId: ...,
}
我在考虑是否可以使用videoId来发出另一个请求并检索每个给定视频的持续时间、图片和视图,但我不确定如何一步一步地进行

Youtube播放项具有此结构

  {
  "kind": "youtube#playlistItem",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "thumbnails": {
      (key): {
        "url": string,
        "width": unsigned integer,
        "height": unsigned integer
      }
    },
    "channelTitle": string,
    "playlistId": string,
    "position": unsigned integer,
    "resourceId": {
      "kind": string,
      "videoId": string,
    }
  },
  "contentDetails": {
    "videoId": string,
    "startAt": string,
    "endAt": string,
    "note": string
  },
  "status": {
    "privacyStatus": string
  }
}

如果要检索视频图像,请在
缩略图
属性中输入图像的url。但是你也可以这样做

http://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg
返回的JSON如下所示:

{
   kind: "youtube#videoListResponse",
   etag: ""oqbvhYxBE6fAbRk6m7aLlHf5s1I/jg_aG2jmpbZL5qs3yae4JnZbDs0"",
   pageInfo: {
      totalResults: 1,
      resultsPerPage: 1
   },
   items: [{
      kind: "youtube#video",
      etag: ""oqbvhYxBE6fAbRk6m7aLlHf5s1I/YQ-QRwoxkXL4UBFIFCyCwIdmtzg"",
      id: "ojCkgU5XGdg",
      contentDetails: {
         duration: "PT23M14S",
         dimension: "2d",
         definition: "hd",
         caption: "true",
         licensedContent: false
      },
      statistics: {
         viewCount: "25587",
         likeCount: "168",
         dislikeCount: "17",
         favoriteCount: "0",
         commentCount: "45"
     }
   }]
}
如果要检索有关视频的更多信息。您必须添加查询
部分
参数,并添加以下任何选项:
代码段
内容详细信息
文件详细信息
播放器
处理详细信息
统计信息
状态
建议
y
主题详细信息


我希望这有帮助

你能发布你检索到的数据吗?@Sapikelio,我编辑了我的帖子。我已经为你发布了一个解决方案。希望有帮助:)我如何获得
videobjet
?换句话说,我如何请求检索它?我已经编辑了答案,并为您做了演示。如果您还有更多疑问,请告诉我:Dand仅仅获取视频视图的速度会非常慢,因为每个视频的每个请求都需要100-200毫秒,因此在获得播放列表项(约500毫秒)后,您还需要花费时间获取该播放列表项目的视图或其他信息,例如播放列表中的50个视频==50*150=7500毫秒(7.5秒),听起来很疯狂
http://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
$.ajax({
    async: false,
    type: 'GET',
    url:  "https://www.googleapis.com/youtube/v3/videos?id={{videoId}}&key={{yourKey}}&part=snippet,contentDetails",
    success: function(data) {
        ...Do what you want with data...
    }
}
{
   kind: "youtube#videoListResponse",
   etag: ""oqbvhYxBE6fAbRk6m7aLlHf5s1I/jg_aG2jmpbZL5qs3yae4JnZbDs0"",
   pageInfo: {
      totalResults: 1,
      resultsPerPage: 1
   },
   items: [{
      kind: "youtube#video",
      etag: ""oqbvhYxBE6fAbRk6m7aLlHf5s1I/YQ-QRwoxkXL4UBFIFCyCwIdmtzg"",
      id: "ojCkgU5XGdg",
      contentDetails: {
         duration: "PT23M14S",
         dimension: "2d",
         definition: "hd",
         caption: "true",
         licensedContent: false
      },
      statistics: {
         viewCount: "25587",
         likeCount: "168",
         dislikeCount: "17",
         favoriteCount: "0",
         commentCount: "45"
     }
   }]
}