0
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2024-11-28 03:13:01 +00: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 .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,
} }