Проверьте, разрешено ли встраивание видео на YouTube с помощью jQuery - PullRequest
1 голос
/ 25 декабря 2011

Я пытаюсь показать информацию на видео YouTube, и один бит информации будет видеть, является ли видео встраиваемым, я пытаюсь использовать yt $ accessControl, но я не знаю, как тоже вернуть разрешение {"action":"embed","permission":"allowed"} http://jsfiddle.net/YourBlogspot/eWJWZ/29/

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 ]

2 голосов
/ 26 декабря 2011

Посмотрите на 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 голосов
/ 26 декабря 2011

Я не проверял ваш код, но если я полагаю, что он прав, вы должны изменить это так:

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;

Проверьте это и скажите мне, если это работает для вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...