183def parse_videos(data):
184 results = []
185
186 dom = html.fromstring(data)
187
188 for item in eval_xpath_list(dom, "//li[contains(@class, 'video_item')]"):
189 url = eval_xpath_getindex(item, ".//a[contains(@class, 'info_title')]/@href", 0)
190
191 thumbnail = None
192 try:
193 thumbnail = eval_xpath_getindex(item, ".//img[contains(@class, 'thumb')]/@src", 0)
194 except (ValueError, TypeError, SearxEngineXPathException):
195 pass
196
197 length = None
198 try:
199 length = parse_duration_string(extract_text(eval_xpath(item, ".//span[contains(@class, 'time')]")))
200 except (ValueError, TypeError):
201 pass
202
203 results.append(
204 {
205 "template": "videos.html",
206 "title": extract_text(eval_xpath(item, ".//a[contains(@class, 'info_title')]")),
207 "url": url,
208 "thumbnail": thumbnail,
209 "length": length,
210 "iframe_src": get_embeded_stream_url(url),
211 }
212 )
213
214 return results