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