logo

searx

My custom branche(s) on searx, a meta-search engine
commit: b3c418b36c034b1e3da0a6b607d6f631238f8d34
parent: 726a4e4dcabc0d96ac6f13aef16b7ae98fb8af8f
Author: asciimoo <asciimoo@gmail.com>
Date:   Sat, 19 Oct 2013 20:46:10 +0200

[enh] youtube engine added

Diffstat:

Asearx/engines/youtube.py35+++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+), 0 deletions(-)

diff --git a/searx/engines/youtube.py b/searx/engines/youtube.py @@ -0,0 +1,35 @@ +from json import loads +from urllib import quote + +categories = ['videos'] + +search_url = 'https://gdata.youtube.com/feeds/api/videos?alt=json&q=' + +def request(query, params): + global search_url + query = quote(query.replace(' ', '+'), safe='+') + params['url'] = search_url + query + + return params + + +def response(resp): + results = [] + search_results = loads(resp.text) + if not 'feed' in search_results: + return results + feed = search_results['feed'] + for result in feed['entry']: + url = [x['href'] for x in result['link'] if x['type'] == 'text/html'] + if not len(url): + return + # remove tracking + url = url[0].replace('feature=youtube_gdata', '') + if url.endswith('&'): + url = url[:-1] + title = result['title']['$t'] + content = result['content']['$t'] + results.append({'url': url, 'title': title, 'content': content}) + + return results +