youtube.py 1.2 KB

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