on master help sign in
[enh] youtube engine added
commitb3c418b36c034b1e3da0a6b607d6f631238f8d34 authorasciimoo <asciimoo@gmail.com> dateSat 19 Oct 2013, 20:46 (13 years ago) parent726a4e4
1 file changed+35
searx/engines/youtube.py+35
searx/engines/youtube.pynew file+35
@@ -0,0 +1,35 @@
1+from json import loads
2+from urllib import quote
3+
4+categories = ['videos']
5+
6+search_url = 'https://gdata.youtube.com/feeds/api/videos?alt=json&q='
7+
8+def request(query, params):
9+ global search_url
10+ query = quote(query.replace(' ', '+'), safe='+')
11+ params['url'] = search_url + query
12+
13+ return params
14+
15+
16+def response(resp):
17+ results = []
18+ search_results = loads(resp.text)
19+ if not 'feed' in search_results:
20+ return results
21+ feed = search_results['feed']
22+ for result in feed['entry']:
23+ url = [x['href'] for x in result['link'] if x['type'] == 'text/html']
24+ if not len(url):
25+ return
26+ # remove tracking
27+ url = url[0].replace('feature=youtube_gdata', '')
28+ if url.endswith('&'):
29+ url = url[:-1]
30+ title = result['title']['$t']
31+ content = result['content']['$t']
32+ results.append({'url': url, 'title': title, 'content': content})
33+
34+ return results
35+