除其他详细信息外,我正在尝试获取某个 YouTube 视频的给定视频的标题。因为它们可能都源于同一个问题,所以我将仅展示一个简化示例,仅使用 API 获取标题。这是我到目前为止所拥有的:
$.ajax({
url: "https://gdata.youtube.com/feeds/api/videos/" + videoID + "?v=2&alt=json",
dataType: "jsonp",
success: function(data) {
videoName = data.entry.title.$t;
$('#video_name').text(videoName);
}
});
对于某些视频,例如这个,这非常有效。对于其他人,例如this,它永远不会获取该信息。
为什么这不起作用?第二个示例只是一个不适用于此的视频。大约 1/3 似乎不起作用。
我真的很感激对此的一些见解。
编辑我如何得到videoID
:
var videoID = getUrlVars()["v"];
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
function(m,key,value) {
vars[key] = value;
});
return vars;
}
示例视频的结尾如下:?v=J66NOwZegc4
EDIT2所以我添加了 $.ajax 函数,它似乎是导致问题的原因:
$.ajax({
url: "https://gdata.youtube.com/feeds/api/videos/" + videoID + "?v=2&alt=json",
dataType: "jsonp",
async: "false",
success: function(data) {
commentCount = data.entry.gd$comments.gd$feedLink.countHint;
iterations = Math.floor(commentCount/50);
remaining = commentCount - (iterations*50);
videoDesc = data.entry.title.$t;
$('#video_name').text(videoDesc);
document.title = 'Watching "' + videoDesc + '" on YTRT';
$('#shareLink').val('http://www.ytrealtime.com?v=' + videoID);
}
});