Browse Source

[enh] youtube engine added

asciimoo 11 years ago
parent
commit
b3c418b36c
1 changed files with 35 additions and 0 deletions
  1. 35
    0
      searx/engines/youtube.py

+ 35
- 0
searx/engines/youtube.py View File

@@ -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
+