2011-12-25 59 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;

測試它,並告訴我,如果你是這樣的!

相關問題