1. from gdata.youtube.service import YouTubeService
  2. from collections import namedtuple
  3. import requests
  4. import re
  5. PyconVid = namedtuple('PyconVid', ['title', 'viewcount', 'url'])
  6. VID_API = "http://pyvideo.org/api/v2/video/{}?format=json"
  7. yt_service = YouTubeService()
  8. r = requests.get("http://pyvideo.org/category/50/pycon-us-2014")
  9. pyv_ids = set(re.findall("/video/(\d+)/", r.content))
  10. vid_list = []
  11. for pid in pyv_ids:
  12. data = requests.get(VID_API.format(pid)).json()
  13. title = data['title']
  14. url = data['source_url']
  15. v_id = url.split('?v=')[-1]
  16. entry = yt_service.GetYouTubeVideoEntry(video_id=v_id)
  17. viewcount = int(entry.statistics.view_count)
  18. vid_list.append(PyconVid(title, viewcount, url))
  19. sorted_vids = sorted(vid_list, key=lambda x: x.viewcount, reverse=True)
  20. fmt = "Title: {}\nViewcount: {}\nURL: {}\n\n"
  21. for v in sorted_vids[:10]:
  22. print (fmt.format(v.title, v.viewcount, v.url))