mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	Merge remote-tracking branch 'dstftw/correct-valid-urls'
This commit is contained in:
		| @@ -13,7 +13,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class AddAnimeIE(InfoExtractor): | class AddAnimeIE(InfoExtractor): | ||||||
|  |  | ||||||
|     _VALID_URL = r'^http://(?:\w+\.)?add-anime\.net/watch_video.php\?(?:.*?)v=(?P<video_id>[\w_]+)(?:.*)' |     _VALID_URL = r'^http://(?:\w+\.)?add-anime\.net/watch_video\.php\?(?:.*?)v=(?P<video_id>[\w_]+)(?:.*)' | ||||||
|     IE_NAME = u'AddAnime' |     IE_NAME = u'AddAnime' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.add-anime.net/watch_video.php?v=24MR3YO5SAS9', |         u'url': u'http://www.add-anime.net/watch_video.php?v=24MR3YO5SAS9', | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class AppleTrailersIE(InfoExtractor): | class AppleTrailersIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://(?:www\.)?trailers.apple.com/trailers/(?P<company>[^/]+)/(?P<movie>[^/]+)' |     _VALID_URL = r'https?://(?:www\.)?trailers\.apple\.com/trailers/(?P<company>[^/]+)/(?P<movie>[^/]+)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u"url": u"http://trailers.apple.com/trailers/wb/manofsteel/", |         u"url": u"http://trailers.apple.com/trailers/wb/manofsteel/", | ||||||
|         u"playlist": [ |         u"playlist": [ | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
| class ArchiveOrgIE(InfoExtractor): | class ArchiveOrgIE(InfoExtractor): | ||||||
|     IE_NAME = 'archive.org' |     IE_NAME = 'archive.org' | ||||||
|     IE_DESC = 'archive.org videos' |     IE_DESC = 'archive.org videos' | ||||||
|     _VALID_URL = r'(?:https?://)?(?:www\.)?archive.org/details/(?P<id>[^?/]+)(?:[?].*)?$' |     _VALID_URL = r'(?:https?://)?(?:www\.)?archive\.org/details/(?P<id>[^?/]+)(?:[?].*)?$' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u"url": u"http://archive.org/details/XD300-23_68HighlightsAResearchCntAugHumanIntellect", |         u"url": u"http://archive.org/details/XD300-23_68HighlightsAResearchCntAugHumanIntellect", | ||||||
|         u'file': u'XD300-23_68HighlightsAResearchCntAugHumanIntellect.ogv', |         u'file': u'XD300-23_68HighlightsAResearchCntAugHumanIntellect.ogv', | ||||||
|   | |||||||
| @@ -17,8 +17,8 @@ from ..utils import ( | |||||||
| # add tests. | # add tests. | ||||||
|  |  | ||||||
| class ArteTvIE(InfoExtractor): | class ArteTvIE(InfoExtractor): | ||||||
|     _VIDEOS_URL = r'(?:http://)?videos.arte.tv/(?P<lang>fr|de)/.*-(?P<id>.*?).html' |     _VIDEOS_URL = r'(?:http://)?videos\.arte\.tv/(?P<lang>fr|de)/.*-(?P<id>.*?)\.html' | ||||||
|     _LIVEWEB_URL = r'(?:http://)?liveweb.arte.tv/(?P<lang>fr|de)/(?P<subpage>.+?)/(?P<name>.+)' |     _LIVEWEB_URL = r'(?:http://)?liveweb\.arte\.tv/(?P<lang>fr|de)/(?P<subpage>.+?)/(?P<name>.+)' | ||||||
|     _LIVE_URL = r'index-[0-9]+\.html$' |     _LIVE_URL = r'index-[0-9]+\.html$' | ||||||
|  |  | ||||||
|     IE_NAME = u'arte.tv' |     IE_NAME = u'arte.tv' | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ class AUEngineIE(InfoExtractor): | |||||||
|             u"title": u"[Commie]The Legend of the Legendary Heroes - 03 - Replication Eye (Alpha Stigma)[F9410F5A]" |             u"title": u"[Commie]The Legend of the Legendary Heroes - 03 - Replication Eye (Alpha Stigma)[F9410F5A]" | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     _VALID_URL = r'(?:http://)?(?:www\.)?auengine\.com/embed.php\?.*?file=([^&]+).*?' |     _VALID_URL = r'(?:http://)?(?:www\.)?auengine\.com/embed\.php\?.*?file=([^&]+).*?' | ||||||
|  |  | ||||||
|     def _real_extract(self, url): |     def _real_extract(self, url): | ||||||
|         mobj = re.match(self._VALID_URL, url) |         mobj = re.match(self._VALID_URL, url) | ||||||
|   | |||||||
| @@ -54,7 +54,7 @@ class BambuserIE(InfoExtractor): | |||||||
|  |  | ||||||
| class BambuserChannelIE(InfoExtractor): | class BambuserChannelIE(InfoExtractor): | ||||||
|     IE_NAME = u'bambuser:channel' |     IE_NAME = u'bambuser:channel' | ||||||
|     _VALID_URL = r'http://bambuser.com/channel/(?P<user>.*?)(?:/|#|\?|$)' |     _VALID_URL = r'https?://bambuser\.com/channel/(?P<user>.*?)(?:/|#|\?|$)' | ||||||
|     # The maximum number we can get with each request |     # The maximum number we can get with each request | ||||||
|     _STEP = 50 |     _STEP = 50 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class BloombergIE(InfoExtractor): | class BloombergIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.bloomberg\.com/video/(?P<name>.+?).html' |     _VALID_URL = r'https?://www\.bloomberg\.com/video/(?P<name>.+?)\.html' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.bloomberg.com/video/shah-s-presentation-on-foreign-exchange-strategies-qurhIVlJSB6hzkVi229d8g.html', |         u'url': u'http://www.bloomberg.com/video/shah-s-presentation-on-foreign-exchange-strategies-qurhIVlJSB6hzkVi229d8g.html', | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class ComedyCentralIE(MTVServicesInfoExtractor): | class ComedyCentralIE(MTVServicesInfoExtractor): | ||||||
|     _VALID_URL = r'http://www.comedycentral.com/(video-clips|episodes|cc-studios)/(?P<title>.*)' |     _VALID_URL = r'https?://(?:www.)?comedycentral.com/(video-clips|episodes|cc-studios)/(?P<title>.*)' | ||||||
|     _FEED_URL = u'http://comedycentral.com/feeds/mrss/' |     _FEED_URL = u'http://comedycentral.com/feeds/mrss/' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from ..utils import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| class CSpanIE(InfoExtractor): | class CSpanIE(InfoExtractor): | ||||||
|     _VALID_URL = r'http://www.c-spanvideo.org/program/(.*)' |     _VALID_URL = r'http://www\.c-spanvideo\.org/program/(.*)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.c-spanvideo.org/program/HolderonV', |         u'url': u'http://www.c-spanvideo.org/program/HolderonV', | ||||||
|         u'file': u'315139.flv', |         u'file': u'315139.flv', | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class DreiSatIE(InfoExtractor): | class DreiSatIE(InfoExtractor): | ||||||
|     IE_NAME = '3sat' |     IE_NAME = '3sat' | ||||||
|     _VALID_URL = r'(?:http://)?(?:www\.)?3sat.de/mediathek/index.php\?(?:(?:mode|display)=[^&]+&)*obj=(?P<id>[0-9]+)$' |     _VALID_URL = r'(?:http://)?(?:www\.)?3sat\.de/mediathek/index\.php\?(?:(?:mode|display)=[^&]+&)*obj=(?P<id>[0-9]+)$' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u"url": u"http://www.3sat.de/mediathek/index.php?obj=36983", |         u"url": u"http://www.3sat.de/mediathek/index.php?obj=36983", | ||||||
|         u'file': u'36983.webm', |         u'file': u'36983.webm', | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class EightTracksIE(InfoExtractor): | class EightTracksIE(InfoExtractor): | ||||||
|     IE_NAME = '8tracks' |     IE_NAME = '8tracks' | ||||||
|     _VALID_URL = r'https?://8tracks.com/(?P<user>[^/]+)/(?P<id>[^/#]+)(?:#.*)?$' |     _VALID_URL = r'https?://8tracks\.com/(?P<user>[^/]+)/(?P<id>[^/#]+)(?:#.*)?$' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u"name": u"EightTracks", |         u"name": u"EightTracks", | ||||||
|         u"url": u"http://8tracks.com/ytdl/youtube-dl-test-tracks-a", |         u"url": u"http://8tracks.com/ytdl/youtube-dl-test-tracks-a", | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ class ExfmIE(InfoExtractor): | |||||||
|     IE_NAME = u'exfm' |     IE_NAME = u'exfm' | ||||||
|     IE_DESC = u'ex.fm' |     IE_DESC = u'ex.fm' | ||||||
|     _VALID_URL = r'(?:http://)?(?:www\.)?ex\.fm/song/([^/]+)' |     _VALID_URL = r'(?:http://)?(?:www\.)?ex\.fm/song/([^/]+)' | ||||||
|     _SOUNDCLOUD_URL = r'(?:http://)?(?:www\.)?api\.soundcloud.com/tracks/([^/]+)/stream' |     _SOUNDCLOUD_URL = r'(?:http://)?(?:www\.)?api\.soundcloud\.com/tracks/([^/]+)/stream' | ||||||
|     _TESTS = [ |     _TESTS = [ | ||||||
|         { |         { | ||||||
|             u'url': u'http://ex.fm/song/eh359', |             u'url': u'http://ex.fm/song/eh359', | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class FazIE(InfoExtractor): | class FazIE(InfoExtractor): | ||||||
|     IE_NAME = u'faz.net' |     IE_NAME = u'faz.net' | ||||||
|     _VALID_URL = r'https?://www\.faz\.net/multimedia/videos/.*?-(?P<id>\d+).html' |     _VALID_URL = r'https?://www\.faz\.net/multimedia/videos/.*?-(?P<id>\d+)\.html' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.faz.net/multimedia/videos/stockholm-chemie-nobelpreis-fuer-drei-amerikanische-forscher-12610585.html', |         u'url': u'http://www.faz.net/multimedia/videos/stockholm-chemie-nobelpreis-fuer-drei-amerikanische-forscher-12610585.html', | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class FKTVIE(InfoExtractor): | class FKTVIE(InfoExtractor): | ||||||
|     IE_NAME = u'fernsehkritik.tv' |     IE_NAME = u'fernsehkritik.tv' | ||||||
|     _VALID_URL = r'(?:http://)?(?:www\.)?fernsehkritik.tv/folge-(?P<ep>[0-9]+)(?:/.*)?' |     _VALID_URL = r'(?:http://)?(?:www\.)?fernsehkritik\.tv/folge-(?P<ep>[0-9]+)(?:/.*)?' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://fernsehkritik.tv/folge-1', |         u'url': u'http://fernsehkritik.tv/folge-1', | ||||||
| @@ -52,7 +52,7 @@ class FKTVIE(InfoExtractor): | |||||||
|  |  | ||||||
| class FKTVPosteckeIE(InfoExtractor): | class FKTVPosteckeIE(InfoExtractor): | ||||||
|     IE_NAME = u'fernsehkritik.tv:postecke' |     IE_NAME = u'fernsehkritik.tv:postecke' | ||||||
|     _VALID_URL = r'(?:http://)?(?:www\.)?fernsehkritik.tv/inline-video/postecke.php\?(.*&)?ep=(?P<ep>[0-9]+)(&|$)' |     _VALID_URL = r'(?:http://)?(?:www\.)?fernsehkritik\.tv/inline-video/postecke\.php\?(.*&)?ep=(?P<ep>[0-9]+)(&|$)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://fernsehkritik.tv/inline-video/postecke.php?iframe=true&width=625&height=440&ep=120', |         u'url': u'http://fernsehkritik.tv/inline-video/postecke.php?iframe=true&width=625&height=440&ep=120', | ||||||
|         u'file': u'0120.flv', |         u'file': u'0120.flv', | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ class PluzzIE(FranceTVBaseInfoExtractor): | |||||||
|  |  | ||||||
| class FranceTvInfoIE(FranceTVBaseInfoExtractor): | class FranceTvInfoIE(FranceTVBaseInfoExtractor): | ||||||
|     IE_NAME = u'francetvinfo.fr' |     IE_NAME = u'francetvinfo.fr' | ||||||
|     _VALID_URL = r'https?://www\.francetvinfo\.fr/replay.*/(?P<title>.+).html' |     _VALID_URL = r'https?://www\.francetvinfo\.fr/replay.*/(?P<title>.+)\.html' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.francetvinfo.fr/replay-jt/france-3/soir-3/jt-grand-soir-3-lundi-26-aout-2013_393427.html', |         u'url': u'http://www.francetvinfo.fr/replay-jt/france-3/soir-3/jt-grand-soir-3-lundi-26-aout-2013_393427.html', | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class GamekingsIE(InfoExtractor): | class GamekingsIE(InfoExtractor): | ||||||
|     _VALID_URL = r'http?://www\.gamekings\.tv/videos/(?P<name>[0-9a-z\-]+)' |     _VALID_URL = r'http://www\.gamekings\.tv/videos/(?P<name>[0-9a-z\-]+)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u"url": u"http://www.gamekings.tv/videos/phoenix-wright-ace-attorney-dual-destinies-review/", |         u"url": u"http://www.gamekings.tv/videos/phoenix-wright-ace-attorney-dual-destinies-review/", | ||||||
|         u'file': u'20130811.mp4', |         u'file': u'20130811.mp4', | ||||||
|   | |||||||
| @@ -4,8 +4,7 @@ from .mtv import MTVServicesInfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class GametrailersIE(MTVServicesInfoExtractor): | class GametrailersIE(MTVServicesInfoExtractor): | ||||||
|     _VALID_URL = r'http://www.gametrailers.com/(?P<type>videos|reviews|full-episodes)/(?P<id>.*?)/(?P<title>.*)' |     _VALID_URL = r'http://www\.gametrailers\.com/(?P<type>videos|reviews|full-episodes)/(?P<id>.*?)/(?P<title>.*)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.gametrailers.com/videos/zbvr8i/mirror-s-edge-2-e3-2013--debut-trailer', |         u'url': u'http://www.gametrailers.com/videos/zbvr8i/mirror-s-edge-2-e3-2013--debut-trailer', | ||||||
|         u'file': u'70e9a5d7-cf25-4a10-9104-6f3e7342ae0d.mp4', |         u'file': u'70e9a5d7-cf25-4a10-9104-6f3e7342ae0d.mp4', | ||||||
|   | |||||||
| @@ -103,7 +103,7 @@ class IGNIE(InfoExtractor): | |||||||
| class OneUPIE(IGNIE): | class OneUPIE(IGNIE): | ||||||
|     """Extractor for 1up.com, it uses the ign videos system.""" |     """Extractor for 1up.com, it uses the ign videos system.""" | ||||||
|  |  | ||||||
|     _VALID_URL = r'https?://gamevideos.1up.com/(?P<type>video)/id/(?P<name_or_id>.+)' |     _VALID_URL = r'https?://gamevideos\.1up\.com/(?P<type>video)/id/(?P<name_or_id>.+)' | ||||||
|     IE_NAME = '1up.com' |     IE_NAME = '1up.com' | ||||||
|  |  | ||||||
|     _DESCRIPTION_RE = r'<div id="vid_summary">(.+?)</div>' |     _DESCRIPTION_RE = r'<div id="vid_summary">(.+?)</div>' | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ import re | |||||||
| from .common import InfoExtractor | from .common import InfoExtractor | ||||||
|  |  | ||||||
| class InstagramIE(InfoExtractor): | class InstagramIE(InfoExtractor): | ||||||
|     _VALID_URL = r'(?:http://)?instagram.com/p/(.*?)/' |     _VALID_URL = r'(?:http://)?instagram\.com/p/(.*?)/' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://instagram.com/p/aye83DjauH/?foo=bar#abc', |         u'url': u'http://instagram.com/p/aye83DjauH/?foo=bar#abc', | ||||||
|         u'file': u'aye83DjauH.mp4', |         u'file': u'aye83DjauH.mp4', | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ from ..utils import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| class JukeboxIE(InfoExtractor): | class JukeboxIE(InfoExtractor): | ||||||
|     _VALID_URL = r'^http://www\.jukebox?\..+?\/.+[,](?P<video_id>[a-z0-9\-]+).html' |     _VALID_URL = r'^http://www\.jukebox?\..+?\/.+[,](?P<video_id>[a-z0-9\-]+)\.html' | ||||||
|     _IFRAME = r'<iframe .*src="(?P<iframe>[^"]*)".*>' |     _IFRAME = r'<iframe .*src="(?P<iframe>[^"]*)".*>' | ||||||
|     _VIDEO_URL = r'"config":{"file":"(?P<video_url>http:[^"]+[.](?P<video_ext>[^.?]+)[?]mdtk=[0-9]+)"' |     _VIDEO_URL = r'"config":{"file":"(?P<video_url>http:[^"]+[.](?P<video_ext>[^.?]+)[?]mdtk=[0-9]+)"' | ||||||
|     _TITLE = r'<h1 class="inline">(?P<title>[^<]+)</h1>.*<span id="infos_article_artist">(?P<artist>[^<]+)</span>' |     _TITLE = r'<h1 class="inline">(?P<title>[^<]+)</h1>.*<span id="infos_article_artist">(?P<artist>[^<]+)</span>' | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class LiveLeakIE(InfoExtractor): | class LiveLeakIE(InfoExtractor): | ||||||
|  |  | ||||||
|     _VALID_URL = r'^(?:http?://)?(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<video_id>[\w_]+)(?:.*)' |     _VALID_URL = r'^(?:http://)?(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<video_id>[\w_]+)(?:.*)' | ||||||
|     IE_NAME = u'liveleak' |     IE_NAME = u'liveleak' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.liveleak.com/view?i=757_1364311680', |         u'url': u'http://www.liveleak.com/view?i=757_1364311680', | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class LivestreamIE(InfoExtractor): | class LivestreamIE(InfoExtractor): | ||||||
|     IE_NAME = u'livestream' |     IE_NAME = u'livestream' | ||||||
|     _VALID_URL = r'http://new.livestream.com/.*?/(?P<event_name>.*?)(/videos/(?P<id>\d+))?/?$' |     _VALID_URL = r'http://new\.livestream\.com/.*?/(?P<event_name>.*?)(/videos/(?P<id>\d+))?/?$' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://new.livestream.com/CoheedandCambria/WebsterHall/videos/4719370', |         u'url': u'http://new.livestream.com/CoheedandCambria/WebsterHall/videos/4719370', | ||||||
|         u'file': u'4719370.mp4', |         u'file': u'4719370.mp4', | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class MuzuTVIE(InfoExtractor): | class MuzuTVIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www.muzu.tv/(.+?)/(.+?)/(?P<id>\d+)' |     _VALID_URL = r'https?://www\.muzu\.tv/(.+?)/(.+?)/(?P<id>\d+)' | ||||||
|     IE_NAME = u'muzu.tv' |     IE_NAME = u'muzu.tv' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class MySpassIE(InfoExtractor): | class MySpassIE(InfoExtractor): | ||||||
|     _VALID_URL = r'http://www.myspass.de/.*' |     _VALID_URL = r'http://www\.myspass\.de/.*' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/', |         u'url': u'http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/', | ||||||
|         u'file': u'11741.mp4', |         u'file': u'11741.mp4', | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ from ..utils import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| class ORFIE(InfoExtractor): | class ORFIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://tvthek.orf.at/(programs/.+?/episodes|topics/.+?)/(?P<id>\d+)' |     _VALID_URL = r'https?://tvthek\.orf\.at/(programs/.+?/episodes|topics/.+?)/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     def _real_extract(self, url): |     def _real_extract(self, url): | ||||||
|         mobj = re.match(self._VALID_URL, url) |         mobj = re.match(self._VALID_URL, url) | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class PBSIE(InfoExtractor): | class PBSIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://video.pbs.org/video/(?P<id>\d+)/?' |     _VALID_URL = r'https?://video\.pbs\.org/video/(?P<id>\d+)/?' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://video.pbs.org/video/2365006249/', |         u'url': u'http://video.pbs.org/video/2365006249/', | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class RutubeIE(InfoExtractor): | class RutubeIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://rutube.ru/video/(?P<long_id>\w+)' |     _VALID_URL = r'https?://rutube\.ru/video/(?P<long_id>\w+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://rutube.ru/video/3eac3b4561676c17df9132a9a1e62e3e/', |         u'url': u'http://rutube.ru/video/3eac3b4561676c17df9132a9a1e62e3e/', | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class SlashdotIE(InfoExtractor): | class SlashdotIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://tv.slashdot.org/video/\?embed=(?P<id>.*?)(&|$)' |     _VALID_URL = r'https?://tv\.slashdot\.org/video/\?embed=(?P<id>.*?)(&|$)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'add_ie': ['Ooyala'], |         u'add_ie': ['Ooyala'], | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ class SoundcloudIE(InfoExtractor): | |||||||
|     _VALID_URL = r'''^(?:https?://)? |     _VALID_URL = r'''^(?:https?://)? | ||||||
|                     (?:(?:(?:www\.)?soundcloud\.com/([\w\d-]+)/([\w\d-]+)/?(?:[?].*)?$) |                     (?:(?:(?:www\.)?soundcloud\.com/([\w\d-]+)/([\w\d-]+)/?(?:[?].*)?$) | ||||||
|                        |(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+)) |                        |(?:api\.soundcloud\.com/tracks/(?P<track_id>\d+)) | ||||||
|                        |(?P<widget>w.soundcloud.com/player/?.*?url=.*) |                        |(?P<widget>w\.soundcloud\.com/player/?.*?url=.*) | ||||||
|                     ) |                     ) | ||||||
|                     ''' |                     ''' | ||||||
|     IE_NAME = u'soundcloud' |     IE_NAME = u'soundcloud' | ||||||
| @@ -217,7 +217,7 @@ class SoundcloudSetIE(SoundcloudIE): | |||||||
|  |  | ||||||
|  |  | ||||||
| class SoundcloudUserIE(SoundcloudIE): | class SoundcloudUserIE(SoundcloudIE): | ||||||
|     _VALID_URL = r'https?://(www\.)?soundcloud.com/(?P<user>[^/]+)(/?(tracks/)?)?(\?.*)?$' |     _VALID_URL = r'https?://(www\.)?soundcloud\.com/(?P<user>[^/]+)(/?(tracks/)?)?(\?.*)?$' | ||||||
|     IE_NAME = u'soundcloud:user' |     IE_NAME = u'soundcloud:user' | ||||||
|  |  | ||||||
|     # it's in tests/test_playlists.py |     # it's in tests/test_playlists.py | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from ..utils import RegexNotFoundError, ExtractorError | |||||||
|  |  | ||||||
|  |  | ||||||
| class SpaceIE(InfoExtractor): | class SpaceIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.space\.com/\d+-(?P<title>[^/\.\?]*?)-video.html' |     _VALID_URL = r'https?://www\.space\.com/\d+-(?P<title>[^/\.\?]*?)-video\.html' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'add_ie': ['Brightcove'], |         u'add_ie': ['Brightcove'], | ||||||
|         u'url': u'http://www.space.com/23373-huge-martian-landforms-detail-revealed-by-european-probe-video.html', |         u'url': u'http://www.space.com/23373-huge-martian-landforms-detail-revealed-by-european-probe-video.html', | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ from ..utils import ( | |||||||
| class StanfordOpenClassroomIE(InfoExtractor): | class StanfordOpenClassroomIE(InfoExtractor): | ||||||
|     IE_NAME = u'stanfordoc' |     IE_NAME = u'stanfordoc' | ||||||
|     IE_DESC = u'Stanford Open ClassRoom' |     IE_DESC = u'Stanford Open ClassRoom' | ||||||
|     _VALID_URL = r'^(?:https?://)?openclassroom.stanford.edu(?P<path>/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\.php([?]course=(?P<course>[^&]+)(&video=(?P<video>[^&]+))?(&.*)?)?))$' |     _VALID_URL = r'^(?:https?://)?openclassroom\.stanford\.edu(?P<path>/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\.php([?]course=(?P<course>[^&]+)(&video=(?P<video>[^&]+))?(&.*)?)?))$' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100', |         u'url': u'http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100', | ||||||
|         u'file': u'PracticalUnix_intro-environment.mp4', |         u'file': u'PracticalUnix_intro-environment.mp4', | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
| class TF1IE(InfoExtractor): | class TF1IE(InfoExtractor): | ||||||
|     """TF1 uses the wat.tv player.""" |     """TF1 uses the wat.tv player.""" | ||||||
|     _VALID_URL = r'http://videos.tf1.fr/.*-(.*?).html' |     _VALID_URL = r'http://videos\.tf1\.fr/.*-(.*?)\.html' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://videos.tf1.fr/auto-moto/citroen-grand-c4-picasso-2013-presentation-officielle-8062060.html', |         u'url': u'http://videos.tf1.fr/auto-moto/citroen-grand-c4-picasso-2013-presentation-officielle-8062060.html', | ||||||
|         u'file': u'10635995.mp4', |         u'file': u'10635995.mp4', | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ import re | |||||||
| from .common import InfoExtractor | from .common import InfoExtractor | ||||||
|  |  | ||||||
| class UnistraIE(InfoExtractor): | class UnistraIE(InfoExtractor): | ||||||
|     _VALID_URL = r'http://utv.unistra.fr/(?:index|video).php\?id_video\=(\d+)' |     _VALID_URL = r'http://utv\.unistra\.fr/(?:index|video)\.php\?id_video\=(\d+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://utv.unistra.fr/video.php?id_video=154', |         u'url': u'http://utv.unistra.fr/video.php?id_video=154', | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ from ..utils import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| class VeeHDIE(InfoExtractor): | class VeeHDIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://veehd.com/video/(?P<id>\d+)' |     _VALID_URL = r'https?://veehd\.com/video/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://veehd.com/video/4686958', |         u'url': u'http://veehd.com/video/4686958', | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ class VevoIE(InfoExtractor): | |||||||
|     Accepts urls from vevo.com or in the format 'vevo:{id}' |     Accepts urls from vevo.com or in the format 'vevo:{id}' | ||||||
|     (currently used by MTVIE) |     (currently used by MTVIE) | ||||||
|     """ |     """ | ||||||
|     _VALID_URL = r'((http://www.vevo.com/watch/.*?/.*?/)|(vevo:))(?P<id>.*?)(\?|$)' |     _VALID_URL = r'((http://www\.vevo\.com/watch/.*?/.*?/)|(vevo:))(?P<id>.*?)(\?|$)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         u'url': u'http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280', |         u'url': u'http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280', | ||||||
|         u'file': u'GB1101300280.mp4', |         u'file': u'GB1101300280.mp4', | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from ..utils import ExtractorError | |||||||
|  |  | ||||||
|  |  | ||||||
| class ViceIE(InfoExtractor): | class ViceIE(InfoExtractor): | ||||||
|     _VALID_URL = r'http://www.vice.com/.*?/(?P<name>.+)' |     _VALID_URL = r'http://www\.vice\.com/.*?/(?P<name>.+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.vice.com/Fringes/cowboy-capitalists-part-1', |         u'url': u'http://www.vice.com/Fringes/cowboy-capitalists-part-1', | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class ViddlerIE(InfoExtractor): | class ViddlerIE(InfoExtractor): | ||||||
|     _VALID_URL = r'(?P<domain>https?://(?:www\.)?viddler.com)/(?:v|embed|player)/(?P<id>[a-z0-9]+)' |     _VALID_URL = r'(?P<domain>https?://(?:www\.)?viddler\.com)/(?:v|embed|player)/(?P<id>[a-z0-9]+)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u"url": u"http://www.viddler.com/v/43903784", |         u"url": u"http://www.viddler.com/v/43903784", | ||||||
|         u'file': u'43903784.mp4', |         u'file': u'43903784.mp4', | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from ..utils import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| class VideofyMeIE(InfoExtractor): | class VideofyMeIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://(www.videofy.me/.+?|p.videofy.me/v)/(?P<id>\d+)(&|#|$)' |     _VALID_URL = r'https?://(www\.videofy\.me/.+?|p\.videofy\.me/v)/(?P<id>\d+)(&|#|$)' | ||||||
|     IE_NAME = u'videofy.me' |     IE_NAME = u'videofy.me' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class WatIE(InfoExtractor): | class WatIE(InfoExtractor): | ||||||
|     _VALID_URL=r'http://www.wat.tv/.*-(?P<shortID>.*?)_.*?.html' |     _VALID_URL=r'http://www\.wat\.tv/.*-(?P<shortID>.*?)_.*?\.html' | ||||||
|     IE_NAME = 'wat.tv' |     IE_NAME = 'wat.tv' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.wat.tv/video/world-war-philadelphia-vost-6bv55_2fjr7_.html', |         u'url': u'http://www.wat.tv/video/world-war-philadelphia-vost-6bv55_2fjr7_.html', | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class YouJizzIE(InfoExtractor): | class YouJizzIE(InfoExtractor): | ||||||
|     _VALID_URL = r'^(?:https?://)?(?:\w+\.)?youjizz\.com/videos/(?P<videoid>[^.]+).html$' |     _VALID_URL = r'^(?:https?://)?(?:\w+\.)?youjizz\.com/videos/(?P<videoid>[^.]+)\.html$' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         u'url': u'http://www.youjizz.com/videos/zeichentrick-1-2189178.html', |         u'url': u'http://www.youjizz.com/videos/zeichentrick-1-2189178.html', | ||||||
|         u'file': u'2189178.flv', |         u'file': u'2189178.flv', | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister