diff --git a/youtube-dl b/youtube-dl index aa3a31a79..97ccc00f7 100755 Binary files a/youtube-dl and b/youtube-dl differ diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index a2f38f939..17f9f14cb 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -293,7 +293,12 @@ from .played import PlayedIE from .play44 import ( Play44IE, ByZooIE, - Video44IE + Video44IE, + VideoWingIE, + PlayPandaIE, + VideoZooIE, + PlayBBIE, + EasyVideoIE ) from .playfm import PlayFMIE from .playvid import PlayvidIE diff --git a/youtube_dl/extractor/play44.py b/youtube_dl/extractor/play44.py index 8f3c0f418..ac41d8f56 100644 --- a/youtube_dl/extractor/play44.py +++ b/youtube_dl/extractor/play44.py @@ -80,3 +80,88 @@ class Video44IE(Play44IE): 'description': 'chaoshead-12' } } + +class VideoWingIE(Play44IE): + IE_NAME = "videowing" + IE_DESC = "VideoWing" + + _VALID_URL = r'http://[w.]*videowing\.[^/]*/.*video=/*(?P[^&].).*' + + _TEST = { + 'url': 'http://videowing.me/embed?w=718&h=438&video=ongoing/boku_wa_tomodachi_ga_sukunai_-_05.mp4', + 'md5': '4ed320e353ed26c742c4f12a9c210b60', + 'info_dict': { + 'id': 'boku_wa_tomodachi_ga_sukunai_-_05', + 'ext': 'mp4', + 'title': 'boku_wa_tomodachi_ga_sukunai_-_05', + 'description': 'boku_wa_tomodachi_ga_sukunai_-_05' + } + } + +class PlayPandaIE(Play44IE): + IE_NAME = "playpanda" + IE_DESC = "PlayPanda" + + _VALID_URL = r'http://[w.]*playpanda\.[^/]*/.*vid=/*(?P[^&].).*' + + _TEST = { + 'url': 'http://playpanda.net/embed.php?w=718&h=438&vid=at/nw/boku_wa_tomodachi_ga_sukunai_-_05.mp4', + 'md5': '4ed320e353ed26c742c4f12a9c210b60', + 'info_dict': { + 'id': 'boku_wa_tomodachi_ga_sukunai_-_05', + 'ext': 'mp4', + 'title': 'boku_wa_tomodachi_ga_sukunai_-_05', + 'description': 'boku_wa_tomodachi_ga_sukunai_-_05' + } + } + +class VideoZooIE(Play44IE): + IE_NAME = "videozoo" + IE_DESC = "videozoo" + + _VALID_URL = r'http://[w.]*videozoo\.[^/]*/.*vid=/*(?P[^&].).*' + + _TEST = { + 'url': 'http://videozoo.me/embed.php?w=718&h=438&vid=at/nw/boku_wa_tomodachi_ga_sukunai_-_05.mp4', + 'md5': '4ed320e353ed26c742c4f12a9c210b60', + 'info_dict': { + 'id': 'boku_wa_tomodachi_ga_sukunai_-_05', + 'ext': 'mp4', + 'title': 'boku_wa_tomodachi_ga_sukunai_-_05', + 'description': 'boku_wa_tomodachi_ga_sukunai_-_05' + } + } + +class PlayBBIE(Play44IE): + IE_NAME = "playbb" + IE_DESC = "PlayBB" + + _VALID_URL = r'http://[w.]*playbb\.[^/]*/.*vid=/*(?P[^&].).*' + + _TEST = { + 'url': 'http://playbb.me/embed.php?w=718&h=438&vid=at/nw/boku_wa_tomodachi_ga_sukunai_-_05.mp4', + 'md5': '4ed320e353ed26c742c4f12a9c210b60', + 'info_dict': { + 'id': 'boku_wa_tomodachi_ga_sukunai_-_05', + 'ext': 'mp4', + 'title': 'boku_wa_tomodachi_ga_sukunai_-_05', + 'description': 'boku_wa_tomodachi_ga_sukunai_-_05' + } + } + +class EasyVideoIE(Play44IE): + IE_NAME = "easyvideo" + IE_DESC = "EasyVideo" + + _VALID_URL = r'http://[w.]*easyvideo\.[^/]*/.*file=/*(?P[^&].).*' + + _TEST = { + 'url': 'http://easyvideo.me/gogo/?w=718&h=438&file=bokuwatomodachigasukunai-04.flv&sv=1', + 'md5': '26178b57629b7650106d72b191137176', + 'info_dict': { + 'id': 'bokuwatomodachigasukunai-04', + 'ext': 'mp4', + 'title': 'bokuwatomodachigasukunai-04', + 'description': 'bokuwatomodachigasukunai-04' + } + } diff --git a/youtube_dl/extractor/soulanime.py b/youtube_dl/extractor/soulanime.py index cd83c2349..8e8d2f5a2 100644 --- a/youtube_dl/extractor/soulanime.py +++ b/youtube_dl/extractor/soulanime.py @@ -77,7 +77,7 @@ class SoulAnimeSeriesIE(InfoExtractor): def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) series_id = mobj.group('id') - domain = mobj.group('domain') + domain = mobj.group('domain') pattern = re.compile(self._EPISODE_REGEX)