1
1
mirror of https://github.com/ytdl-org/youtube-dl synced 2024-12-25 19:25:50 +01:00

Merge branch 'remitamine-fktv'

This commit is contained in:
Yen Chi Hsuan 2015-09-25 19:28:26 +08:00
commit 2d00be0477
2 changed files with 30 additions and 60 deletions

View File

@ -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

View File

@ -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)
if matches is None:
raise ExtractorError('Unable to extract the video')
videos = [] poster, sources = matches.groups()
for i, _ in enumerate(files, 1): if poster is None:
video_id = '%04d%d' % (episode, i) self.report_warning('unable to extract thumbnail')
video_url = 'http://fernsehkritik.tv/js/directme.php?file=%s%s.flv' % (episode, '' if i == 1 else '-%d' % i)
videos.append({ urls = re.findall(r'<source[^>]+src="([^"]+)"', sources)
'ext': 'flv', formats = [{
'id': video_id, 'url': url,
'url': video_url, 'format_id': determine_ext(url),
'title': clean_html(get_element_by_id('eptitle', start_webpage)), } for url in urls]
'description': clean_html(get_element_by_id('contentlist', start_webpage)),
'thumbnail': video_thumbnail
})
return { return {
'_type': 'multi_video', 'id': episode,
'entries': videos, 'title': title,
'id': 'folge-%s' % episode, 'formats': formats,
} 'thumbnail': poster,
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 {
'id': video_id,
'url': video_url,
'title': video_title,
} }