@@ -7,15 +7,16 @@
7 @using-api no
7 @using-api no
8 @results HTML
8 @results HTML
10− @parse url, title, content
10+ @parse url, title, content, thumbnail
13from datetime import date, timedelta
13from datetime import date, timedelta
14from json import loads
14from json import loads
15from lxml import html
15from lxml import html
16+from searx.engines import logger
16from searx.engines.xpath import extract_text
17from searx.engines.xpath import extract_text
17from searx.url_utils import urlencode
18from searx.url_utils import urlencode
20# engine dependent config
21# engine dependent config
21categories = ['videos']
22categories = ['videos']
@@ -73,11 +74,24 @@ def response(resp):
73 url = result.xpath('.//div[@class="r"]/a/@href')[0]
74 url = result.xpath('.//div[@class="r"]/a/@href')[0]
74 content = extract_text(result.xpath('.//span[@class="st"]'))
75 content = extract_text(result.xpath('.//span[@class="st"]'))
78+ script = str(dom.xpath('//script[contains(., "_setImagesSrc")]')[0].text)
79+ id = result.xpath('.//div[@class="s"]//img/@id')[0]
80+ thumbnails_data = re.findall('s=\'(.*?)(?:\\\\[a-z,1-9,\\\\]+\'|\')\;var ii=\[(?:|[\'vidthumb\d+\',]+)\'' + id,
82+ logger.debug('google video engine: ' + id + ' matched ' + str(len(thumbnails_data)) + ' times (thumbnail)')
84+ if len(thumbnails_data) != 0:
85+ tmp = re.findall('(data:image/jpeg;base64,[a-z,A-Z,0-9,/,\+]+)', thumbnails_data[0])
76 # append result
90 # append result
77 results.append({'url': url,
91 results.append({'url': url,
78 'title': title,
92 'title': title,
79 'content': content,
93 'content': content,
80− 'thumbnail': '',
94+ 'thumbnail': thumbnail,
81 'template': 'videos.html'})
95 'template': 'videos.html'})
83 return results
97 return results