Javascript 检索播放列表视频YouTube API的持续时间、视频图片和视图
我正在尝试使用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',
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"
}
}]
}