2011-12-25 43 views
1

我试图在YouTube视频上显示信息,并且信息的一个位置是查看视频是否可嵌入我试图使用yt $ accessControl但我不知道怎么过返回许可{"action":"embed","permission":"allowed"}http://jsfiddle.net/YourBlogspot/eWJWZ/29/检查是否允许使用jQuery视频嵌入

function getYouTubeInfo() { 
       $.ajax({ 
         url: "http://gdata.youtube.com/feeds/api/videos/VA770wpLX-Q?v=2&alt=json", 
         dataType: "jsonp", 
         success: function (data) {parseresults(data)} 
       }); 
     } 

     function parseresults(data) { 
       var title = data.entry.title.$t; 
       var description = data.entry.media$group.media$description.$t; 
       var viewcount = data.entry.yt$statistics.viewCount; 
       var author = data.entry.author[0].name.$t; 
       var embedallow = data.entry.yt$statistics.action.embed.permission; 
       $('#title').html(title); 
       $('#description').html('<b>Description</b>: ' + description); 
       $('#extrainfo').html('<b>Author</b>: ' + author + '<br/><b>Views</b>: ' + viewcount); 
      $('#embeddallowed').html('<b>allowed</b>: ' + embedallow + '<br/>'); 
     } 

$(document).ready(function() { 
     getYouTubeInfo(); 
}); 

<div> 
       <br/><br/> 
       <div id="title" style="color: #dddddd">Could not find a title</div><br/> 

       <br/><br/> 
       <div id="description">Could not find a description</div> 
       <div id="extrainfo">Could not find extra information</div> 
    <div id="embeddallowed">Could not find extra information</div> 
     </div> 

回答

2

看看到的jsfiddle:http://jsfiddle.net/eWJWZ/35/

使用 'ALT = jsonc' 使请求和的dataType其设置为JSON。 JSONC格式非常易于使用。

 function getYouTubeInfo() { 
       $.ajax({ 
         url: "http://gdata.youtube.com/feeds/api/videos/VA770wpLX-Q?v=2&alt=jsonc", 
         dataType: "json", 
         success: function (data) {parseresults(data)} 
       }); 
     } 

     function parseresults(result) { 
       console.log(result); 
       var title = result.data.title; 
       var description = result.data.description; 
       var viewcount = result.data.viewCount; 
       var author = result.data.uploader; 
       var embedallow = result.data.accessControl.embed; 
       $('#title').html(title); 
       $('#description').html('<b>Description</b>: ' + description); 
       $('#extrainfo').html('<b>Author</b>: ' + author + '<br/><b>Views</b>: ' + viewcount); 
      $('#embeddallowed').html('<b>allowed</b>: ' + embedallow + '<br/>'); 
     } 

$(document).ready(function() { 
     getYouTubeInfo(); 
}); 
0

我没有检查你的代码,但如果我想这是正确的,你要修改这样的:

var result = function(myData){ 
    var isEmbeddable = null; 
    $.ajax({ 
     url: "http://gdata.youtube.com/feeds/api/videos/VA770wpLX-Q?v=2&alt=json", 
     dataType: "jsonp", 
     async: false, 
     success: function (data) { isEmbeddable = parseresults(data) } 
     }); 

    return isEmbeddable; 
} 

function parseresults(data) { 
    var title = data.entry.title.$t; 
    var description = data.entry.media$group.media$description.$t; 
    var viewcount = data.entry.yt$statistics.viewCount; 
    var author = data.entry.author[0].name.$t; 
    var embedallow = data.entry.yt$accessControl[5].permission; 
    $('#title').html(title); 
    $('#description').html('<b>Description</b>: ' + description); 
    $('#extrainfo').html('<b>Author</b>: ' + author + '<br/><b>Views</b>: ' + viewcount); 
    $('#embeddallowed').html('<b>allowed</b>: ' + embedallow + '<br/>'); 

    return embedallow; 
} 

它应该返回您寻求许可的价值。

顺便说一句,我已经更改为嵌入值路径,它是: var embedallow = data.entry.yt$accessControl[5].permission;

测试它,并告诉我,如果你是这样的!

相关问题