检查是否允许使用jQuery进行youtube视频嵌入

时间:2011-12-25 19:44:38

标签: jquery ajax json youtube

我正在尝试在YouTube视频上显示信息,一点信息就是看视频是否可嵌入我试图使用yt $ accessControl但我不知道如何返回权限{{1} } http://jsfiddle.net/YourBlogspot/eWJWZ/29/

{"action":"embed","permission":"allowed"}

2 个答案:

答案 0 :(得分: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();
});

答案 1 :(得分: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;

测试一下,告诉我这是否适合你!