2
0

bambuser.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import re
  2. import json
  3. from .common import InfoExtractor
  4. class BambuserIE(InfoExtractor):
  5. _VALID_URL = r'https?://bambuser\.com/v/(?P<id>\d+)'
  6. _API_KEY = '005f64509e19a868399060af746a00aa'
  7. _TEST = {
  8. u'url': u'http://bambuser.com/v/4050584',
  9. u'md5': u'fba8f7693e48fd4e8641b3fd5539a641',
  10. u'info_dict': {
  11. u'id': u'4050584',
  12. u'ext': u'flv',
  13. u'title': u'Education engineering days - lightning talks',
  14. u'duration': 3741,
  15. u'uploader': u'pixelversity',
  16. u'uploader_id': u'344706',
  17. },
  18. }
  19. def _real_extract(self, url):
  20. mobj = re.match(self._VALID_URL, url)
  21. video_id = mobj.group('id')
  22. info_url = ('http://player-c.api.bambuser.com/getVideo.json?'
  23. '&api_key=%s&vid=%s' % (self._API_KEY, video_id))
  24. info_json = self._download_webpage(info_url, video_id)
  25. info = json.loads(info_json)['result']
  26. return {
  27. 'id': video_id,
  28. 'title': info['title'],
  29. 'url': info['url'],
  30. 'thumbnail': info['preview'],
  31. 'duration': int(info['length']),
  32. 'view_count': int(info['views_total']),
  33. 'uploader': info['username'],
  34. 'uploader_id': info['uid'],
  35. }