youtube视频和照片在django的博客文章中

时间:2013-07-15 07:00:27

标签: python django youtube-api

我想在我的django博客文章中整合youtube视频和照片。 youtube数据API和youtube analyticis API文档非常混乱。有人能指出我正确的方向。我该如何继续整合它。

2 个答案:

答案 0 :(得分:0)

您需要嵌入的iframe的一般格式是:

<iframe class="youtube-player" type="text/html" width="' + {{ w }} + '" height="' + {{ h }} + '" src="http://www.youtube.com/embed/' + {{ youtubelink }} + '" allowfullscreen frameborder="0"></iframe>

将其插入到您的模板中,无论您需要在页面上显示视频。您需要将变量whyoutubelink(其格式为h5EofwRzit0)传递给模板,并且可以直接从网址中提取那个视频)。当然,如果您愿意,可以对其中的任何一个或全部进行硬编码,而不是要求传递变量。这应该是显示视频所需的全部内容。

答案 1 :(得分:0)

这里video_id是

中的id
youtube url https://www.youtube.com/watch?v=id <- video_id is this one.

缩略图使用此网址

http://img.youtube.com/vi/{{video_id}}/0.jpg 

0.jpg总是高清缩略图.. 1.jpg,2.jpg 3.jpg是缩略图1,2,3

使用以下JS获取title / desc / comments等信息。

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

    function parseresults(data,video_id) {
            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 pubdate=data.entry.published.$t;

            var pubdate = new Date( data.entry[ "published" ].$t.substr( 0, 4 ), data.entry[ "published" ].$t.substr( 5, 2 ) - 1, data.entry[ "published" ].$t.substr( 8, 2 ) ).toLocaleDateString( )

          //  document.getElementById('jsmessage').innerHTML+=video_id;
            var title_id='#title'+video_id;
            var description_id='#description'+video_id;
            var extrainfo_id='#extrainfo'+video_id;
            var pubdate_id='#pubdate'+video_id;

            $(title_id).html(title);
            $(pubdate_id).html('<b>Added on: </b>'+pubdate)
            $(description_id).html('<b>Description</b>: ' + description);
            $(extrainfo_id).html('<b>Author</b>: ' + author + '<br/><b>Views</b>: ' + viewcount);
         //   getComments(data.entry.gd$comments.gd$feedLink.href + '&max-results=50&alt=json', 1);
    }




    function getComments(commentsURL, startIndex) {
            $.ajax({
                    url: commentsURL + '&start-index=' + startIndex,
                    dataType: "jsonp",
                    success: function (data) {
                    $.each(data.feed.entry, function(key, val) {
                            $('#comments').append('<br/>Author: ' + val.author[0].name.$t + ', Comment: ' + val.content.$t);
                    });
                    if ($(data.feed.entry).size() == 50) { getComments(commentsURL, startIndex + 50); }
                    }
            });
    }