X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Ffktv.py;h=5f6e65daed2d5dc2c18c09a97450ae2a9c88e2df;hb=9f0ee2a3883ec6f6fdccba90085cb925aaa2f617;hp=289cbb8c87a374d82f41f2d9840f57f6c4de63dd;hpb=577380396171ba096240bfb3101f8151e32b587a;p=youtube-dl
diff --git a/youtube_dl/extractor/fktv.py b/youtube_dl/extractor/fktv.py
index 289cbb8c8..5f6e65dae 100644
--- a/youtube_dl/extractor/fktv.py
+++ b/youtube_dl/extractor/fktv.py
@@ -1,12 +1,10 @@
from __future__ import unicode_literals
-import re
-
from .common import InfoExtractor
from ..utils import (
clean_html,
determine_ext,
- ExtractorError,
+ js_to_json,
)
@@ -28,21 +26,26 @@ class FKTVIE(InfoExtractor):
def _real_extract(self, url):
episode = self._match_id(url)
- webpage = self._download_webpage('http://fernsehkritik.tv/folge-%s/play' % episode, episode)
- title = clean_html(self._html_search_regex('
([^<]+)
', webpage, 'title'))
- matches = re.search(r'(?s)', webpage)
- if matches is None:
- raise ExtractorError('Unable to extract the video')
-
- poster, sources = matches.groups()
- if poster is None:
- self.report_warning('unable to extract thumbnail')
+ webpage = self._download_webpage(
+ 'http://fernsehkritik.tv/folge-%s/play' % episode, episode)
+ title = clean_html(self._html_search_regex(
+ '([^<]+)
', 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)
- urls = re.findall(r'