Merge branch 'remitamine-fktv'

totalwebcasting
Yen Chi Hsuan 9 years ago
commit 2d00be0477

@ -169,10 +169,7 @@ from .firstpost import FirstpostIE
from .firsttv import FirstTVIE from .firsttv import FirstTVIE
from .fivemin import FiveMinIE from .fivemin import FiveMinIE
from .fivetv import FiveTVIE from .fivetv import FiveTVIE
from .fktv import ( from .fktv import FKTVIE
FKTVIE,
FKTVPosteckeIE,
)
from .flickr import FlickrIE from .flickr import FlickrIE
from .folketinget import FolketingetIE from .folketinget import FolketingetIE
from .footyroom import FootyRoomIE from .footyroom import FootyRoomIE

@ -1,13 +1,12 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import re import re
import random
import json
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import ( from ..utils import (
get_element_by_id,
clean_html, clean_html,
determine_ext,
ExtractorError,
) )
@ -17,66 +16,40 @@ class FKTVIE(InfoExtractor):
_TEST = { _TEST = {
'url': 'http://fernsehkritik.tv/folge-1', 'url': 'http://fernsehkritik.tv/folge-1',
'md5': '21f0b0c99bce7d5b524eb1b17b1c6d79',
'info_dict': { 'info_dict': {
'id': '00011', 'id': '1',
'ext': 'flv', 'ext': 'mp4',
'title': 'Folge 1 vom 10. April 2007', 'title': 'Folge 1 vom 10. April 2007',
'description': 'md5:fb4818139c7cfe6907d4b83412a6864f', 'thumbnail': 're:^https?://.*\.jpg$',
}, },
} }
def _real_extract(self, url): def _real_extract(self, url):
episode = int(self._match_id(url)) episode = self._match_id(url)
video_thumbnail = 'http://fernsehkritik.tv/images/magazin/folge%s.jpg' % episode webpage = self._download_webpage(
start_webpage = self._download_webpage('http://fernsehkritik.tv/folge-%s/Start' % episode, 'http://fernsehkritik.tv/folge-%s/play' % episode, episode)
episode) title = clean_html(self._html_search_regex(
playlist = self._search_regex(r'playlist = (\[.*?\]);', start_webpage, '<h3>([^<]+)</h3>', webpage, 'title'))
'playlist', flags=re.DOTALL) matches = re.search(
files = json.loads(re.sub('{[^{}]*?}', '{}', playlist)) r'(?s)<video(?:(?!poster)[^>])+(?:poster="([^"]+)")?[^>]*>(.*)</video>',
webpage)
videos = [] if matches is None:
for i, _ in enumerate(files, 1): raise ExtractorError('Unable to extract the video')
video_id = '%04d%d' % (episode, i)
video_url = 'http://fernsehkritik.tv/js/directme.php?file=%s%s.flv' % (episode, '' if i == 1 else '-%d' % i) poster, sources = matches.groups()
videos.append({ if poster is None:
'ext': 'flv', self.report_warning('unable to extract thumbnail')
'id': video_id,
'url': video_url, urls = re.findall(r'<source[^>]+src="([^"]+)"', sources)
'title': clean_html(get_element_by_id('eptitle', start_webpage)), formats = [{
'description': clean_html(get_element_by_id('contentlist', start_webpage)), 'url': url,
'thumbnail': video_thumbnail 'format_id': determine_ext(url),
}) } for url in urls]
return {
'_type': 'multi_video',
'entries': videos,
'id': 'folge-%s' % episode,
}
class FKTVPosteckeIE(InfoExtractor):
IE_NAME = 'fernsehkritik.tv:postecke'
_VALID_URL = r'http://(?:www\.)?fernsehkritik\.tv/inline-video/postecke\.php\?(.*&)?ep=(?P<ep>[0-9]+)(&|$)'
_TEST = {
'url': 'http://fernsehkritik.tv/inline-video/postecke.php?iframe=true&width=625&height=440&ep=120',
'md5': '262f0adbac80317412f7e57b4808e5c4',
'info_dict': {
'id': '0120',
'ext': 'flv',
'title': 'Postecke 120',
}
}
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
episode = int(mobj.group('ep'))
server = random.randint(2, 4)
video_id = '%04d' % episode
video_url = 'http://dl%d.fernsehkritik.tv/postecke/postecke%d.flv' % (server, episode)
video_title = 'Postecke %d' % episode
return { return {
'id': video_id, 'id': episode,
'url': video_url, 'title': title,
'title': video_title, 'formats': formats,
'thumbnail': poster,
} }

Loading…
Cancel
Save