【发布时间】:2015-06-04 00:25:29
【问题描述】:
我需要从 YouTube 频道逐页获取所有视频。 YouTube API 允许一个人最多获得 50 个视频。 现在,我只得到 25 个视频并在页面中打印,使用 Django 分页。如何在页面上打印 YouTube 上的所有视频?
views.py 用于视频视图:
YOUTUBE_VIDEO_URL = "https://gdata.youtube.com/feeds/api/videos?author=*****&orderby=updated&v=2&alt=jsonc"
class VideoListView(ListView):
template_name = "video/list.html"
context_object_name = 'videos'
paginate_by = 12
def get_queryset(self, **kwargs):
request = requests.get(settings.YOUTUBE_VIDEO_URL)
data_about = simplejson.loads(request.text)
video_list = []
for item in data_about['data']['items']:
video_list.append(item)
return video_list
查看:
<div id="list_articles">
{% if videos %}
{% for video in videos %}
<div class="article">
<iframe src="http://www.youtube.com/embed/{{ video.id }}"
width="300" height="225" frameborder="0" allowfullscreen></iframe>
<h2><a class="popup-youtube"
href="http://www.youtube.com/watch?v={{ video.id }}">{{ video.title }}</a></h2>
</div>
{% endfor %}
{% else %}
<div class="article">
<p>Nothing</p>
</div>
{% endif %}
</div>
{% if is_paginated %}
<div id="pages">
<p> Pages:{% for num in page_obj.paginator.page_range %}
{% ifequal num page_obj.number %}
<span class="current"><b>{{ num }}</b></span>
{% else %}
<a href="?page={{ num }}"> {{ num }}</a>
{% endifequal %}
{% endfor %}
</p>
我想手动获取视频数量并将其按页数划分,但我不知道如何实现它
【问题讨论】: