0

除其他详细信息外,我正在尝试获取某个 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);
    }
});
4

0 回答 0