From 8c1ac1b2733c6534dfae70542cd1ef5b3d1a71e8 Mon Sep 17 00:00:00 2001 From: PotcFdk Date: Tue, 26 May 2015 14:54:29 +0200 Subject: [PATCH 1/2] [Dailymotion] Added support for "home" URLs. --- youtube_dl/extractor/__init__.py | 1 + youtube_dl/extractor/dailymotion.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 80c9cb107..f1dc8f443 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -103,6 +103,7 @@ from .dailymotion import ( DailymotionIE, DailymotionPlaylistIE, DailymotionUserIE, + DailymotionUserHomeIE ) from .daum import DaumIE from .dbtv import DBTVIE diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index db10b8d00..abbacdd2d 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -250,3 +250,23 @@ class DailymotionUserIE(DailymotionPlaylistIE): 'title': full_user, 'entries': self._extract_entries(user), } + +class DailymotionUserHomeIE(DailymotionUserIE): + IE_NAME = 'dailymotion:userhome' + _VALID_URL = r'https?://(?:www\.)?dailymotion\.[a-z]{2,3}/(?P[^/]+)/?$' + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + user = mobj.group('user') + url = self._PAGE_TEMPLATE % (user, '') + webpage = self._download_webpage(url, user) + full_user = unescapeHTML(self._html_search_regex( + r'' % re.escape(user), + webpage, 'user')) + + return { + '_type': 'playlist', + 'id': user, + 'title': full_user, + 'entries': self._extract_entries(user), + } From 6241b66adc47c9eb16a8c36bcfd8fa88a06065a1 Mon Sep 17 00:00:00 2001 From: PotcFdk Date: Tue, 26 May 2015 15:01:07 +0200 Subject: [PATCH 2/2] [Dailymotion] Added correct extractor test. --- youtube_dl/extractor/dailymotion.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index abbacdd2d..6446d18ac 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -254,6 +254,14 @@ class DailymotionUserIE(DailymotionPlaylistIE): class DailymotionUserHomeIE(DailymotionUserIE): IE_NAME = 'dailymotion:userhome' _VALID_URL = r'https?://(?:www\.)?dailymotion\.[a-z]{2,3}/(?P[^/]+)/?$' + _TESTS = [{ + 'url': 'https://www.dailymotion.com/nqtv', + 'info_dict': { + 'id': 'nqtv', + 'title': 'Rémi Gaillard', + }, + 'playlist_mincount': 100, + }] def _real_extract(self, url): mobj = re.match(self._VALID_URL, url)