为什么我的 YouTube 代码不适用于所有播放列表?

Why does my YouTube code not work with all playlists?

jsfiddle playlist first

Alum Songs 播放列表完美运行,但不幸的是,相同的代码不适用于另一个播放列表 ID

jsfiddle playlist second

医疗动画播放列表不工作

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 vid = item.media$group.yt$videoid.$t;
    var url = videoURL + videoID;
    var vidtitle = item.title.$t;
    var vidviews = item.yt$statistics.viewCount;
    var content = item.media$group.media$description.$t;
    var thumb = "http://img.youtube.com/vi/" + videoID + "/default.jpg";
    list_data += '<a href=' + url + '><table width="100%"><tbody><tr><td width="110"><img height="150" width="150" alt=' + feedTitle + ' src=' + thumb + ' style="padding: 5px;"></td><td><h5><a name="p4">' + vidtitle + '</a></h5><p><b>Views:-</b> <b>' + vidviews + '</b> </p><section class="toggle active"><label>Case Study <i class="icon icon-youtube-play"></i></label><div class="toggle-content"><p>' + content + '</p></p></div></section></td></tr></tbody></table></a><hr/>';

  });
  $(list_data).appendTo(".cont");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="cont">
</ul>

原因是该视频没有观看次数,因此 item.yt$statistics 某些视频未定义。删除这些变量,或在访问 viewCount.

之前检查未定义的值

我还注意到提供的 jsFiddle 不包括 jQuery,所以我在下面的 jsFiddle 中更新了它。

http://jsfiddle.net/cqp20zLc/1/