youtube.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from json import loads
  2. from urllib import urlencode
  3. categories = ['videos']
  4. search_url = 'https://gdata.youtube.com/feeds/api/videos?alt=json&{query}'
  5. def request(query, params):
  6. params['url'] = search_url.format(query=urlencode({'q': query}))
  7. return params
  8. def response(resp):
  9. results = []
  10. search_results = loads(resp.text)
  11. if not 'feed' in search_results:
  12. return results
  13. feed = search_results['feed']
  14. for result in feed['entry']:
  15. url = [x['href'] for x in result['link'] if x['type'] == 'text/html']
  16. if not len(url):
  17. return
  18. # remove tracking
  19. url = url[0].replace('feature=youtube_gdata', '')
  20. if url.endswith('&'):
  21. url = url[:-1]
  22. title = result['title']['$t']
  23. content = ''
  24. if len(result['media$group']['media$thumbnail']):
  25. content += '<a href="{0}" title="{0}" ><img src="{1}" /></a>'.format(url, result['media$group']['media$thumbnail'][0]['url'])
  26. if len(content):
  27. content += '<br />' + result['content']['$t']
  28. else:
  29. content = result['content']['$t']
  30. results.append({'url': url, 'title': title, 'content': content})
  31. return results