youtube.py 947 B

1234567891011121314151617181920212223242526272829303132333435
  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 = result['content']['$t']
  26. results.append({'url': url, 'title': title, 'content': content})
  27. return results