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), + }