我能够从Youtube API返回搜索结果。
如何显示搜索结果的持续时间?我在json数据中的任何地方都看不到持续时间。
function ySearch(e) {
let searchYt = searchTermYt.value;
search = encodeURIComponent(searchYt);
let urlYt = 'https://www.googleapis.com/youtube/v3/search/?part=snippet&type=video&key=' + apiYt + '&q=' + searchYt + '&maxResults=5';
if (e.target.token) {
urlYt += '&pageToken='+e.target.token;
}
fetch(urlYt).then(function (response) {
return response.json()
}).then(function (data) {
// check for page token to enable or disable page buttons
if(data.prevPageToken){
btnPrev.token = data.prevPageToken;
btnPrev.disabled = false;
}else{
btnPrev.token = false;
btnPrev.disabled = true;
}
if(data.nextPageToken){
btnNext.token = data.nextPageToken;
btnNext.disabled = false;
}else{
btnNext.token = false;
btnNext.disabled = true;
}
return data.items.map(function (x) {
return {
title: x.snippet.title,
// use id in URL to watch video
id: x.id.videoId
}
})
}).then(function (array) {
renderData(array);
}).catch(function (error) {
console.log(error);
})
}
答案 0 :(得分:1)
搜索结果不包含视频时长。您必须从搜索结果中获取videoID,然后使用videoID和部件参数“ contentDetails”再次调用Videos:list。
示例:https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=gVLsVj7BebE&key=API_KEY
将返回
data() {
return {
tasks: [
{'id': 0, 'title': 'One', isChecked: false},
{'id': 1, 'title': 'Two', isChecked: true},
{'id': 2, 'title': 'Three', isChecked: false}
],
}
},
computed: {
message() {
return "<!-- Tasks Page -->";
}
},
methods: {
onDrawerButtonTap() {
utils.showDrawer();
},
onLabelTap(event) {
alert('You clicked on ' + event.index) // I can access `event.index` here
.then(() => {
console.log("Alert dialog closed.");
});
},
onCheckChange(event) {
this.isChecked = event.value;
console.log(this.isChecked);
console.log(event.index); // but I can't access it here
}