- webpage = self._download_webpage('http://fernsehkritik.tv/folge-%s/play' % episode, episode)
- title = clean_html(self._html_search_regex('<h3>([^<]+?)</h3>', webpage, 'title'))
- matchs = re.search(r'(?s)<video[^>]*poster="([^"]+)"[^>]*>(.*?)</video>', webpage)
- if matchs:
- poster, sources = matchs.groups()
- urls = re.findall(r'(?s)<source[^>]*src="([^"]+)"[^>]*>', sources)
- if sources:
- formats = [{'url': url, 'format_id': determine_ext(url)} for url in urls]
- return {
- 'id': episode,
- 'title': title,
- 'formats': formats,
- 'thumbnail': poster,
- }
+ webpage = self._download_webpage(
+ 'http://fernsehkritik.tv/folge-%s/play' % episode, episode)
+ title = clean_html(self._html_search_regex(
+ '<h3>([^<]+)</h3>', webpage, 'title'))
+ thumbnail = self._search_regex(r'POSTER\s*=\s*"([^"]+)', webpage, 'thumbnail', fatal=False)
+ sources = self._parse_json(self._search_regex(r'(?s)MEDIA\s*=\s*(\[.+?\]);', webpage, 'media'), episode, js_to_json)
+
+ formats = []
+ for source in sources:
+ furl = source.get('src')
+ if furl:
+ formats.append({
+ 'url': furl,
+ 'format_id': determine_ext(furl),
+ })
+ self._sort_formats(formats)
+
+ return {
+ 'id': episode,
+ 'title': title,
+ 'formats': formats,
+ 'thumbnail': thumbnail,
+ }