javascript - 如何使用 javascript API 和 json 获取 youtube 播放列表

标签 javascript jquery json youtube jsonp

这是我的 youtube 项目的一部分。我尝试从 JSON 格式中提取视频信息,但我在这一行中遇到了问题:

var videoId = data.feed.entry[i].link[1].href;

当我在单行中执行此操作时,不是在 cikle evrithing 中,但在 cikle for or while 我有错误。

//get youtube ID

function extract(url){
    pos1=url.indexOf("videos/");
    pos2=url.substr(42,11);
    return pos2;
}

//My playlist LINK
var url2="http://gdata.youtube.com/feeds/api/playlists/B2A4E1367126848D?v=2&alt=json";
function playlistinfo(url1) {
    $.ajax({
        url: url1,
        dataType: "jsonp",
        success: function (data) { parseresults(data); }
    });
}

//whit this get playlist data
function parseresults(data) {

    //return playlist clip number
    var klipove= data.feed.openSearch$totalResults.$t;
    //put clips in  <li>

    for(i=0;i<=klipove-1;i++) {
        var videoId = data.feed.entry[i].link[1].href;
        //get video id  ID
        var id= extract(videoId);
        thumb = data.feed.entry[i].media$group.media$thumbnail[0].url;
        $('<li><img src="'+thumb+'" alt="'+id+'" class="thumb"/></li>').appendTo('.cont');
    }
}

最佳答案

恕我直言,如果您使用 $.getJSON$.each
,您的代码可以大大缩短 试试这个。

var playListURL = 'http://gdata.youtube.com/feeds/api/playlists/B2A4E1367126848D?v=2&alt=json&callback=?';
var videoURL= 'http://www.youtube.com/watch?v=';
$.getJSON(playListURL, function(data) {
    var list_data="";
    $.each(data.feed.entry, function(i, item) {
        var feedTitle = item.title.$t;
        var feedURL = item.link[1].href;
        var fragments = feedURL.split("/");
        var videoID = fragments[fragments.length - 2];
        var url = videoURL + videoID;
        var thumb = "http://img.youtube.com/vi/"+ videoID +"/default.jpg";
        if (videoID !='videos') {
list_data += '<li><a href="'+ url +'" title="'+ feedTitle +'"><img alt="'+ feedTitle+'" src="'+ thumb +'"</a></li>';
}
    });
    $(list_data).appendTo(".cont");
});

演示:Fiddle for the playlist you have provided

P.S:请记住,YouTube 视频的缩略图可以在

http://img.youtube.com/vi/{video-id}/default.jpg 

( More Info here )

关于javascript - 如何使用 javascript API 和 json 获取 youtube 播放列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560311/

相关文章:

javascript - 在 JavaScript 中返回多个值?

javascript - 如何使用 JavaScript 根据父元素的动态高度显示/隐藏元素?

javascript - Jquery 向上滑动登录表单

javascript - 更改 Bootstrap 弹出窗口中的数据内容

Java Map,如何正确将UTF-8字符串放入 map ?

javascript - 更改 getBoundingClientRect() 的事件或观察者

javascript - 如何使用 webapp 处理事件?

Jquery 添加一个选项来选择

android - 如何在 Android 上使用 phonegap/cordova 下载和保存文件

android - java.lang.IllegalStateException : Expected BEGIN_OBJECT but was STRING at line 1 column 错误