jQuery $ .ajax调用无法在某些视频中使用YouTube API获取JSON

时间:2012-06-23 03:34:08

标签: javascript jquery youtube-api

我正在努力获取特定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 one,这非常有效。对于其他人,例如this one,它不会抓住那些信息。

为什么这不起作用?第二个例子只是一个不能用于此的视频。看来,大约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);
    }
});

0 个答案:

没有答案