From 3d1bb6b4dd472e0232af029f05e0a1c8e3c1e1c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Marqui=CC=81nez=20Ferra=CC=81ndiz?= Date: Wed, 16 Apr 2014 15:45:05 +0200 Subject: [PATCH] Add an extractor for tlc.de (fixes #2748) --- youtube_dl/extractor/__init__.py | 1 + youtube_dl/extractor/tlc.py | 42 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 youtube_dl/extractor/tlc.py diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 3a91e1a46..ae5296d90 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -251,6 +251,7 @@ from .tf1 import TF1IE from .theplatform import ThePlatformIE from .thisav import ThisAVIE from .tinypic import TinyPicIE +from .tlc import TlcDeIE from .toutv import TouTvIE from .toypics import ToypicsUserIE, ToypicsIE from .traileraddict import TrailerAddictIE diff --git a/youtube_dl/extractor/tlc.py b/youtube_dl/extractor/tlc.py new file mode 100644 index 000000000..0a092ea3c --- /dev/null +++ b/youtube_dl/extractor/tlc.py @@ -0,0 +1,42 @@ +# encoding: utf-8 +from __future__ import unicode_literals +import re + +from .common import InfoExtractor +from .brightcove import BrightcoveIE + + +class TlcDeIE(InfoExtractor): + IE_NAME = 'tlc.de' + _VALID_URL = r'http://www\.tlc\.de/sendungen/[^/]+/videos/(?P[^/?]+)' + + _TEST = { + 'url': 'http://www.tlc.de/sendungen/breaking-amish/videos/#3235167922001', + 'info_dict': { + 'id': '3235167922001', + 'ext': 'mp4', + 'title': 'Breaking Amish: Die Welt da draußen', + 'uploader': 'Discovery Networks - Germany', + 'description': 'Vier Amische und eine Mennonitin wagen in New York' + ' den Sprung in ein komplett anderes Leben. Begleitet sie auf' + ' ihrem spannenden Weg.', + }, + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + title = mobj.group('title') + webpage = self._download_webpage(url, title) + iframe_url = self._search_regex( + '<iframe src="(http://www\.tlc\.de/wp-content/.+?)"', webpage, + 'iframe url') + # Otherwise we don't get the correct 'BrightcoveExperience' element, + # example: http://www.tlc.de/sendungen/cake-boss/videos/cake-boss-cannoli-drama/ + iframe_url = iframe_url.replace('.htm?', '.php?') + iframe = self._download_webpage(iframe_url, title) + + return { + '_type': 'url', + 'url': BrightcoveIE._extract_brightcove_url(iframe), + 'ie': BrightcoveIE.ie_key(), + }