Merge branch 'master' of github.com:rg3/youtube-dl
This commit is contained in:
		| @@ -52,6 +52,7 @@ __authors__  = ( | ||||
|     'Juan C. Olivares', | ||||
|     'Mattias Harrysson', | ||||
|     'phaer', | ||||
|     'Sainyam Kapoor', | ||||
| ) | ||||
|  | ||||
| __license__ = 'Public Domain' | ||||
|   | ||||
| @@ -62,6 +62,7 @@ from .dotsub import DotsubIE | ||||
| from .dreisat import DreiSatIE | ||||
| from .defense import DefenseGouvFrIE | ||||
| from .discovery import DiscoveryIE | ||||
| from .divxstage import DivxStageIE | ||||
| from .dropbox import DropboxIE | ||||
| from .ebaumsworld import EbaumsWorldIE | ||||
| from .ehow import EHowIE | ||||
| @@ -156,6 +157,7 @@ from .mofosex import MofosexIE | ||||
| from .mooshare import MooshareIE | ||||
| from .morningstar import MorningstarIE | ||||
| from .motorsport import MotorsportIE | ||||
| from .movshare import MovShareIE | ||||
| from .mtv import ( | ||||
|     MTVIE, | ||||
|     MTVIggyIE, | ||||
| @@ -276,6 +278,7 @@ from .videodetective import VideoDetectiveIE | ||||
| from .videolecturesnet import VideoLecturesNetIE | ||||
| from .videofyme import VideofyMeIE | ||||
| from .videopremium import VideoPremiumIE | ||||
| from .videoweed import VideoWeedIE | ||||
| from .vimeo import ( | ||||
|     VimeoIE, | ||||
|     VimeoChannelIE, | ||||
|   | ||||
							
								
								
									
										27
									
								
								youtube_dl/extractor/divxstage.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								youtube_dl/extractor/divxstage.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| from .novamov import NovaMovIE | ||||
|  | ||||
|  | ||||
| class DivxStageIE(NovaMovIE): | ||||
|     IE_NAME = 'divxstage' | ||||
|     IE_DESC = 'DivxStage' | ||||
|  | ||||
|     _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'divxstage\.(?:eu|net|ch|co|at|ag)'} | ||||
|  | ||||
|     _HOST = 'www.divxstage.eu' | ||||
|  | ||||
|     _FILE_DELETED_REGEX = r'>This file no longer exists on our servers.<' | ||||
|     _TITLE_REGEX = r'<div class="video_det">\s*<strong>([^<]+)</strong>' | ||||
|     _DESCRIPTION_REGEX = r'<div class="video_det">\s*<strong>[^<]+</strong>\s*<p>([^<]+)</p>' | ||||
|  | ||||
|     _TEST = { | ||||
|         'url': 'http://www.divxstage.eu/video/57f238e2e5e01', | ||||
|         'md5': '63969f6eb26533a1968c4d325be63e72', | ||||
|         'info_dict': { | ||||
|             'id': '57f238e2e5e01', | ||||
|             'ext': 'flv', | ||||
|             'title': 'youtubedl test video', | ||||
|             'description': 'This is a test video for youtubedl.', | ||||
|         } | ||||
|     } | ||||
| @@ -511,17 +511,18 @@ class GenericIE(InfoExtractor): | ||||
|         if mobj is not None: | ||||
|             return self.url_result(mobj.group(1), 'Mpora') | ||||
|  | ||||
|         # Look for embedded NovaMov player | ||||
|         # Look for embedded NovaMov-based player | ||||
|         mobj = re.search( | ||||
|             r'<iframe[^>]+?src=(["\'])(?P<url>http://(?:(?:embed|www)\.)?novamov\.com/embed\.php.+?)\1', webpage) | ||||
|             r'''(?x)<iframe[^>]+?src=(["\']) | ||||
|                     (?P<url>http://(?:(?:embed|www)\.)? | ||||
|                         (?:novamov\.com| | ||||
|                            nowvideo\.(?:ch|sx|eu|at|ag|co)| | ||||
|                            videoweed\.(?:es|com)| | ||||
|                            movshare\.(?:net|sx|ag)| | ||||
|                            divxstage\.(?:eu|net|ch|co|at|ag)) | ||||
|                         /embed\.php.+?)\1''', webpage) | ||||
|         if mobj is not None: | ||||
|             return self.url_result(mobj.group('url'), 'NovaMov') | ||||
|  | ||||
|         # Look for embedded NowVideo player | ||||
|         mobj = re.search( | ||||
|             r'<iframe[^>]+?src=(["\'])(?P<url>http://(?:(?:embed|www)\.)?nowvideo\.(?:ch|sx|eu)/embed\.php.+?)\1', webpage) | ||||
|         if mobj is not None: | ||||
|             return self.url_result(mobj.group('url'), 'NowVideo') | ||||
|             return self.url_result(mobj.group('url')) | ||||
|  | ||||
|         # Look for embedded Facebook player | ||||
|         mobj = re.search( | ||||
|   | ||||
							
								
								
									
										27
									
								
								youtube_dl/extractor/movshare.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								youtube_dl/extractor/movshare.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| from .novamov import NovaMovIE | ||||
|  | ||||
|  | ||||
| class MovShareIE(NovaMovIE): | ||||
|     IE_NAME = 'movshare' | ||||
|     IE_DESC = 'MovShare' | ||||
|  | ||||
|     _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'movshare\.(?:net|sx|ag)'} | ||||
|  | ||||
|     _HOST = 'www.movshare.net' | ||||
|  | ||||
|     _FILE_DELETED_REGEX = r'>This file no longer exists on our servers.<' | ||||
|     _TITLE_REGEX = r'<strong>Title:</strong> ([^<]+)</p>' | ||||
|     _DESCRIPTION_REGEX = r'<strong>Description:</strong> ([^<]+)</p>' | ||||
|  | ||||
|     _TEST = { | ||||
|         'url': 'http://www.movshare.net/video/559e28be54d96', | ||||
|         'md5': 'abd31a2132947262c50429e1d16c1bfd', | ||||
|         'info_dict': { | ||||
|             'id': '559e28be54d96', | ||||
|             'ext': 'flv', | ||||
|             'title': 'dissapeared image', | ||||
|             'description': 'optical illusion  dissapeared image  magic illusion', | ||||
|         } | ||||
|     } | ||||
| @@ -13,7 +13,8 @@ class NovaMovIE(InfoExtractor): | ||||
|     IE_NAME = 'novamov' | ||||
|     IE_DESC = 'NovaMov' | ||||
|  | ||||
|     _VALID_URL = r'http://(?:(?:www\.)?%(host)s/video/|(?:(?:embed|www)\.)%(host)s/embed\.php\?(?:.*?&)?v=)(?P<videoid>[a-z\d]{13})' % {'host': 'novamov\.com'} | ||||
|     _VALID_URL_TEMPLATE = r'http://(?:(?:www\.)?%(host)s/(?:file|video)/|(?:(?:embed|www)\.)%(host)s/embed\.php\?(?:.*?&)?v=)(?P<id>[a-z\d]{13})' | ||||
|     _VALID_URL = _VALID_URL_TEMPLATE % {'host': 'novamov\.com'} | ||||
|  | ||||
|     _HOST = 'www.novamov.com' | ||||
|  | ||||
| @@ -36,18 +37,17 @@ class NovaMovIE(InfoExtractor): | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         mobj = re.match(self._VALID_URL, url) | ||||
|         video_id = mobj.group('videoid') | ||||
|         video_id = mobj.group('id') | ||||
|  | ||||
|         page = self._download_webpage( | ||||
|             'http://%s/video/%s' % (self._HOST, video_id), video_id, 'Downloading video page') | ||||
|  | ||||
|         if re.search(self._FILE_DELETED_REGEX, page) is not None: | ||||
|             raise ExtractorError(u'Video %s does not exist' % video_id, expected=True) | ||||
|             raise ExtractorError('Video %s does not exist' % video_id, expected=True) | ||||
|  | ||||
|         filekey = self._search_regex(self._FILEKEY_REGEX, page, 'filekey') | ||||
|  | ||||
|         title = self._html_search_regex(self._TITLE_REGEX, page, 'title', fatal=False) | ||||
|  | ||||
|         description = self._html_search_regex(self._DESCRIPTION_REGEX, page, 'description', default='', fatal=False) | ||||
|  | ||||
|         api_response = self._download_webpage( | ||||
|   | ||||
| @@ -7,7 +7,7 @@ class NowVideoIE(NovaMovIE): | ||||
|     IE_NAME = 'nowvideo' | ||||
|     IE_DESC = 'NowVideo' | ||||
|  | ||||
|     _VALID_URL = r'http://(?:(?:www\.)?%(host)s/video/|(?:(?:embed|www)\.)%(host)s/embed\.php\?(?:.*?&)?v=)(?P<videoid>[a-z\d]{13})' % {'host': 'nowvideo\.(?:ch|sx|eu)'} | ||||
|     _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'nowvideo\.(?:ch|sx|eu|at|ag|co)'} | ||||
|  | ||||
|     _HOST = 'www.nowvideo.ch' | ||||
|  | ||||
|   | ||||
							
								
								
									
										26
									
								
								youtube_dl/extractor/videoweed.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								youtube_dl/extractor/videoweed.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| from __future__ import unicode_literals | ||||
|  | ||||
| from .novamov import NovaMovIE | ||||
|  | ||||
|  | ||||
| class VideoWeedIE(NovaMovIE): | ||||
|     IE_NAME = 'videoweed' | ||||
|     IE_DESC = 'VideoWeed' | ||||
|  | ||||
|     _VALID_URL = NovaMovIE._VALID_URL_TEMPLATE % {'host': 'videoweed\.(?:es|com)'} | ||||
|  | ||||
|     _HOST = 'www.videoweed.es' | ||||
|  | ||||
|     _FILE_DELETED_REGEX = r'>This file no longer exists on our servers.<' | ||||
|     _TITLE_REGEX = r'<h1 class="text_shadow">([^<]+)</h1>' | ||||
|  | ||||
|     _TEST = { | ||||
|         'url': 'http://www.videoweed.es/file/b42178afbea14', | ||||
|         'md5': 'abd31a2132947262c50429e1d16c1bfd', | ||||
|         'info_dict': { | ||||
|             'id': 'b42178afbea14', | ||||
|             'ext': 'flv', | ||||
|             'title': 'optical illusion  dissapeared image magic illusion', | ||||
|             'description': '' | ||||
|         }, | ||||
|     } | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister