mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	Improve some _VALID_URLs
This commit is contained in:
		| @@ -13,7 +13,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class ABCIE(InfoExtractor): | class ABCIE(InfoExtractor): | ||||||
|     IE_NAME = 'abc.net.au' |     IE_NAME = 'abc.net.au' | ||||||
|     _VALID_URL = r'https?://www\.abc\.net\.au/news/(?:[^/]+/){1,2}(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?abc\.net\.au/news/(?:[^/]+/){1,2}(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.abc.net.au/news/2014-11-05/australia-to-staff-ebola-treatment-centre-in-sierra-leone/5868334', |         'url': 'http://www.abc.net.au/news/2014-11-05/australia-to-staff-ebola-treatment-centre-in-sierra-leone/5868334', | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class AlJazeeraIE(InfoExtractor): | class AlJazeeraIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.aljazeera\.com/programmes/.*?/(?P<id>[^/]+)\.html' |     _VALID_URL = r'https?://(?:www\.)?aljazeera\.com/programmes/.*?/(?P<id>[^/]+)\.html' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.aljazeera.com/programmes/the-slum/2014/08/deliverance-201482883754237240.html', |         'url': 'http://www.aljazeera.com/programmes/the-slum/2014/08/deliverance-201482883754237240.html', | ||||||
|   | |||||||
| @@ -103,7 +103,7 @@ class AzubuIE(InfoExtractor): | |||||||
|  |  | ||||||
|  |  | ||||||
| class AzubuLiveIE(InfoExtractor): | class AzubuLiveIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www.azubu.tv/(?P<id>[^/]+)$' |     _VALID_URL = r'https?://(?:www\.)?azubu\.tv/(?P<id>[^/]+)$' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.azubu.tv/MarsTVMDLen', |         'url': 'http://www.azubu.tv/MarsTVMDLen', | ||||||
|   | |||||||
| @@ -1028,7 +1028,7 @@ class BBCIE(BBCCoUkIE): | |||||||
|  |  | ||||||
|  |  | ||||||
| class BBCCoUkArticleIE(InfoExtractor): | class BBCCoUkArticleIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www.bbc.co.uk/programmes/articles/(?P<id>[a-zA-Z0-9]+)' |     _VALID_URL = r'https?://(?:www\.)?bbc\.co\.uk/programmes/articles/(?P<id>[a-zA-Z0-9]+)' | ||||||
|     IE_NAME = 'bbc.co.uk:article' |     IE_NAME = 'bbc.co.uk:article' | ||||||
|     IE_DESC = 'BBC articles' |     IE_DESC = 'BBC articles' | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class BpbIE(InfoExtractor): | class BpbIE(InfoExtractor): | ||||||
|     IE_DESC = 'Bundeszentrale für politische Bildung' |     IE_DESC = 'Bundeszentrale für politische Bildung' | ||||||
|     _VALID_URL = r'https?://www\.bpb\.de/mediathek/(?P<id>[0-9]+)/' |     _VALID_URL = r'https?://(?:www\.)?bpb\.de/mediathek/(?P<id>[0-9]+)/' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.bpb.de/mediathek/297/joachim-gauck-zu-1989-und-die-erinnerung-an-die-ddr', |         'url': 'http://www.bpb.de/mediathek/297/joachim-gauck-zu-1989-und-die-erinnerung-an-die-ddr', | ||||||
|   | |||||||
| @@ -112,7 +112,7 @@ class CamdemyIE(InfoExtractor): | |||||||
|  |  | ||||||
|  |  | ||||||
| class CamdemyFolderIE(InfoExtractor): | class CamdemyFolderIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www.camdemy.com/folder/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?camdemy\.com/folder/(?P<id>\d+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         # links with trailing slash |         # links with trailing slash | ||||||
|         'url': 'http://www.camdemy.com/folder/450', |         'url': 'http://www.camdemy.com/folder/450', | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from .cbs import CBSBaseIE | |||||||
|  |  | ||||||
|  |  | ||||||
| class CBSSportsIE(CBSBaseIE): | class CBSSportsIE(CBSBaseIE): | ||||||
|     _VALID_URL = r'https?://www\.cbssports\.com/video/player/[^/]+/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?cbssports\.com/video/player/[^/]+/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.cbssports.com/video/player/videos/708337219968/0/ben-simmons-the-next-lebron?-not-so-fast', |         'url': 'http://www.cbssports.com/video/player/videos/708337219968/0/ben-simmons-the-next-lebron?-not-so-fast', | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class CeskaTelevizeIE(InfoExtractor): | class CeskaTelevizeIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.ceskatelevize\.cz/(porady|ivysilani)/(?:[^/]+/)*(?P<id>[^/#?]+)/*(?:[#?].*)?$' |     _VALID_URL = r'https?://(?:www\.)?ceskatelevize\.cz/(porady|ivysilani)/(?:[^/]+/)*(?P<id>[^/#?]+)/*(?:[#?].*)?$' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.ceskatelevize.cz/ivysilani/ivysilani/10441294653-hyde-park-civilizace/214411058091220', |         'url': 'http://www.ceskatelevize.cz/ivysilani/ivysilani/10441294653-hyde-park-civilizace/214411058091220', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -65,7 +65,7 @@ class ChirbitIE(InfoExtractor): | |||||||
|  |  | ||||||
| class ChirbitProfileIE(InfoExtractor): | class ChirbitProfileIE(InfoExtractor): | ||||||
|     IE_NAME = 'chirbit:profile' |     IE_NAME = 'chirbit:profile' | ||||||
|     _VALID_URL = r'https?://(?:www\.)?chirbit.com/(?:rss/)?(?P<id>[^/]+)' |     _VALID_URL = r'https?://(?:www\.)?chirbit\.com/(?:rss/)?(?P<id>[^/]+)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://chirbit.com/ScarletBeauty', |         'url': 'http://chirbit.com/ScarletBeauty', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from ..utils import ExtractorError | |||||||
|  |  | ||||||
| class CMTIE(MTVIE): | class CMTIE(MTVIE): | ||||||
|     IE_NAME = 'cmt.com' |     IE_NAME = 'cmt.com' | ||||||
|     _VALID_URL = r'https?://www\.cmt\.com/(?:videos|shows)/(?:[^/]+/)*(?P<videoid>\d+)' |     _VALID_URL = r'https?://(?:www\.)?cmt\.com/(?:videos|shows)/(?:[^/]+/)*(?P<videoid>\d+)' | ||||||
|     _FEED_URL = 'http://www.cmt.com/sitewide/apps/player/embed/rss/' |     _FEED_URL = 'http://www.cmt.com/sitewide/apps/player/embed/rss/' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class CriterionIE(InfoExtractor): | class CriterionIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.criterion\.com/films/(?P<id>[0-9]+)-.+' |     _VALID_URL = r'https?://(?:www\.)?criterion\.com/films/(?P<id>[0-9]+)-.+' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.criterion.com/films/184-le-samourai', |         'url': 'http://www.criterion.com/films/184-le-samourai', | ||||||
|         'md5': 'bc51beba55685509883a9a7830919ec3', |         'md5': 'bc51beba55685509883a9a7830919ec3', | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from ..compat import compat_str | |||||||
|  |  | ||||||
|  |  | ||||||
| class DctpTvIE(InfoExtractor): | class DctpTvIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www.dctp.tv/(#/)?filme/(?P<id>.+?)/$' |     _VALID_URL = r'https?://(?:www\.)?dctp\.tv/(#/)?filme/(?P<id>.+?)/$' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.dctp.tv/filme/videoinstallation-fuer-eine-kaufhausfassade/', |         'url': 'http://www.dctp.tv/filme/videoinstallation-fuer-eine-kaufhausfassade/', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class DemocracynowIE(InfoExtractor): | class DemocracynowIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://(?:www\.)?democracynow.org/(?P<id>[^\?]*)' |     _VALID_URL = r'https?://(?:www\.)?democracynow\.org/(?P<id>[^\?]*)' | ||||||
|     IE_NAME = 'democracynow' |     IE_NAME = 'democracynow' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.democracynow.org/shows/2015/7/3', |         'url': 'http://www.democracynow.org/shows/2015/7/3', | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class EngadgetIE(InfoExtractor): | class EngadgetIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www.engadget.com/video/(?P<id>[^/?#]+)' |     _VALID_URL = r'https?://(?:www\.)?engadget\.com/video/(?P<id>[^/?#]+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         # video with 5min ID |         # video with 5min ID | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class ExpoTVIE(InfoExtractor): | class ExpoTVIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.expotv\.com/videos/[^?#]*/(?P<id>[0-9]+)($|[?#])' |     _VALID_URL = r'https?://(?:www\.)?expotv\.com/videos/[^?#]*/(?P<id>[0-9]+)($|[?#])' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.expotv.com/videos/reviews/3/40/NYX-Butter-lipstick/667916', |         'url': 'http://www.expotv.com/videos/reviews/3/40/NYX-Butter-lipstick/667916', | ||||||
|         'md5': 'fe1d728c3a813ff78f595bc8b7a707a8', |         'md5': 'fe1d728c3a813ff78f595bc8b7a707a8', | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
| class FreespeechIE(InfoExtractor): | class FreespeechIE(InfoExtractor): | ||||||
|     IE_NAME = 'freespeech.org' |     IE_NAME = 'freespeech.org' | ||||||
|     _VALID_URL = r'https://www\.freespeech\.org/video/(?P<title>.+)' |     _VALID_URL = r'https?://(?:www\.)?freespeech\.org/video/(?P<title>.+)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'add_ie': ['Youtube'], |         'add_ie': ['Youtube'], | ||||||
|         'url': 'https://www.freespeech.org/video/obama-romney-campaign-colorado-ahead-debate-0', |         'url': 'https://www.freespeech.org/video/obama-romney-campaign-colorado-ahead-debate-0', | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class GameStarIE(InfoExtractor): | class GameStarIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.gamestar\.de/videos/.*,(?P<id>[0-9]+)\.html' |     _VALID_URL = r'https?://(?:www\.)?gamestar\.de/videos/.*,(?P<id>[0-9]+)\.html' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.gamestar.de/videos/trailer,3/hobbit-3-die-schlacht-der-fuenf-heere,76110.html', |         'url': 'http://www.gamestar.de/videos/trailer,3/hobbit-3-die-schlacht-der-fuenf-heere,76110.html', | ||||||
|         'md5': '96974ecbb7fd8d0d20fca5a00810cea7', |         'md5': '96974ecbb7fd8d0d20fca5a00810cea7', | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ from ..utils import unified_strdate | |||||||
|  |  | ||||||
| class GooglePlusIE(InfoExtractor): | class GooglePlusIE(InfoExtractor): | ||||||
|     IE_DESC = 'Google Plus' |     IE_DESC = 'Google Plus' | ||||||
|     _VALID_URL = r'https://plus\.google\.com/(?:[^/]+/)*?posts/(?P<id>\w+)' |     _VALID_URL = r'https?://plus\.google\.com/(?:[^/]+/)*?posts/(?P<id>\w+)' | ||||||
|     IE_NAME = 'plus.google' |     IE_NAME = 'plus.google' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'https://plus.google.com/u/0/108897254135232129896/posts/ZButuJc6CtH', |         'url': 'https://plus.google.com/u/0/108897254135232129896/posts/ZButuJc6CtH', | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class GoshgayIE(InfoExtractor): | class GoshgayIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.goshgay\.com/video(?P<id>\d+?)($|/)' |     _VALID_URL = r'https?://(?:www\.)?goshgay\.com/video(?P<id>\d+?)($|/)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.goshgay.com/video299069/diesel_sfw_xxx_video', |         'url': 'http://www.goshgay.com/video299069/diesel_sfw_xxx_video', | ||||||
|         'md5': '4b6db9a0a333142eb9f15913142b0ed1', |         'md5': '4b6db9a0a333142eb9f15913142b0ed1', | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class HarkIE(InfoExtractor): | class HarkIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.hark\.com/clips/(?P<id>.+?)-.+' |     _VALID_URL = r'https?://(?:www\.)?hark\.com/clips/(?P<id>.+?)-.+' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.hark.com/clips/mmbzyhkgny-obama-beyond-the-afghan-theater-we-only-target-al-qaeda-on-may-23-2013', |         'url': 'http://www.hark.com/clips/mmbzyhkgny-obama-beyond-the-afghan-theater-we-only-target-al-qaeda-on-may-23-2013', | ||||||
|         'md5': '6783a58491b47b92c7c1af5a77d4cbee', |         'md5': '6783a58491b47b92c7c1af5a77d4cbee', | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class HotNewHipHopIE(InfoExtractor): | class HotNewHipHopIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.hotnewhiphop\.com/.*\.(?P<id>.*)\.html' |     _VALID_URL = r'https?://(?:www\.)?hotnewhiphop\.com/.*\.(?P<id>.*)\.html' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.hotnewhiphop.com/freddie-gibbs-lay-it-down-song.1435540.html', |         'url': 'http://www.hotnewhiphop.com/freddie-gibbs-lay-it-down-song.1435540.html', | ||||||
|         'md5': '2c2cd2f76ef11a9b3b581e8b232f3d96', |         'md5': '2c2cd2f76ef11a9b3b581e8b232f3d96', | ||||||
|   | |||||||
| @@ -94,7 +94,7 @@ class ImdbIE(InfoExtractor): | |||||||
| class ImdbListIE(InfoExtractor): | class ImdbListIE(InfoExtractor): | ||||||
|     IE_NAME = 'imdb:list' |     IE_NAME = 'imdb:list' | ||||||
|     IE_DESC = 'Internet Movie Database lists' |     IE_DESC = 'Internet Movie Database lists' | ||||||
|     _VALID_URL = r'https?://www\.imdb\.com/list/(?P<id>[\da-zA-Z_-]{11})' |     _VALID_URL = r'https?://(?:www\.)?imdb\.com/list/(?P<id>[\da-zA-Z_-]{11})' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.imdb.com/list/JFs9NWw6XI0', |         'url': 'http://www.imdb.com/list/JFs9NWw6XI0', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class KaraoketvIE(InfoExtractor): | class KaraoketvIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.karaoketv\.co\.il/[^/]+/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?karaoketv\.co\.il/[^/]+/(?P<id>\d+)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.karaoketv.co.il/%D7%A9%D7%99%D7%A8%D7%99_%D7%A7%D7%A8%D7%99%D7%95%D7%A7%D7%99/58356/%D7%90%D7%99%D7%96%D7%95%D7%9F', |         'url': 'http://www.karaoketv.co.il/%D7%A9%D7%99%D7%A8%D7%99_%D7%A7%D7%A8%D7%99%D7%95%D7%A7%D7%99/58356/%D7%90%D7%99%D7%96%D7%95%D7%9F', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from ..utils import smuggle_url | |||||||
|  |  | ||||||
|  |  | ||||||
| class KickStarterIE(InfoExtractor): | class KickStarterIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.kickstarter\.com/projects/(?P<id>[^/]*)/.*' |     _VALID_URL = r'https?://(?:www\.)?kickstarter\.com/projects/(?P<id>[^/]*)/.*' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'https://www.kickstarter.com/projects/1404461844/intersection-the-story-of-josh-grant/description', |         'url': 'https://www.kickstarter.com/projects/1404461844/intersection-the-story-of-josh-grant/description', | ||||||
|         'md5': 'c81addca81327ffa66c642b5d8b08cab', |         'md5': 'c81addca81327ffa66c642b5d8b08cab', | ||||||
|   | |||||||
| @@ -59,7 +59,7 @@ class KuwoBaseIE(InfoExtractor): | |||||||
| class KuwoIE(KuwoBaseIE): | class KuwoIE(KuwoBaseIE): | ||||||
|     IE_NAME = 'kuwo:song' |     IE_NAME = 'kuwo:song' | ||||||
|     IE_DESC = '酷我音乐' |     IE_DESC = '酷我音乐' | ||||||
|     _VALID_URL = r'https?://www\.kuwo\.cn/yinyue/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?kuwo\.cn/yinyue/(?P<id>\d+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.kuwo.cn/yinyue/635632/', |         'url': 'http://www.kuwo.cn/yinyue/635632/', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
| @@ -139,7 +139,7 @@ class KuwoIE(KuwoBaseIE): | |||||||
| class KuwoAlbumIE(InfoExtractor): | class KuwoAlbumIE(InfoExtractor): | ||||||
|     IE_NAME = 'kuwo:album' |     IE_NAME = 'kuwo:album' | ||||||
|     IE_DESC = '酷我音乐 - 专辑' |     IE_DESC = '酷我音乐 - 专辑' | ||||||
|     _VALID_URL = r'https?://www\.kuwo\.cn/album/(?P<id>\d+?)/' |     _VALID_URL = r'https?://(?:www\.)?kuwo\.cn/album/(?P<id>\d+?)/' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.kuwo.cn/album/502294/', |         'url': 'http://www.kuwo.cn/album/502294/', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
| @@ -200,7 +200,7 @@ class KuwoChartIE(InfoExtractor): | |||||||
| class KuwoSingerIE(InfoExtractor): | class KuwoSingerIE(InfoExtractor): | ||||||
|     IE_NAME = 'kuwo:singer' |     IE_NAME = 'kuwo:singer' | ||||||
|     IE_DESC = '酷我音乐 - 歌手' |     IE_DESC = '酷我音乐 - 歌手' | ||||||
|     _VALID_URL = r'https?://www\.kuwo\.cn/mingxing/(?P<id>[^/]+)' |     _VALID_URL = r'https?://(?:www\.)?kuwo\.cn/mingxing/(?P<id>[^/]+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.kuwo.cn/mingxing/bruno+mars/', |         'url': 'http://www.kuwo.cn/mingxing/bruno+mars/', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
| @@ -296,7 +296,7 @@ class KuwoCategoryIE(InfoExtractor): | |||||||
| class KuwoMvIE(KuwoBaseIE): | class KuwoMvIE(KuwoBaseIE): | ||||||
|     IE_NAME = 'kuwo:mv' |     IE_NAME = 'kuwo:mv' | ||||||
|     IE_DESC = '酷我音乐 - MV' |     IE_DESC = '酷我音乐 - MV' | ||||||
|     _VALID_URL = r'https?://www\.kuwo\.cn/mv/(?P<id>\d+?)/' |     _VALID_URL = r'https?://(?:www\.)?kuwo\.cn/mv/(?P<id>\d+?)/' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.kuwo.cn/mv/6480076/', |         'url': 'http://www.kuwo.cn/mv/6480076/', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class LiTVIE(InfoExtractor): | class LiTVIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.litv\.tv/(?:vod|promo)/[^/]+/(?:content\.do)?\?.*?\b(?:content_)?id=(?P<id>[^&]+)' |     _VALID_URL = r'https?://(?:www\.)?litv\.tv/(?:vod|promo)/[^/]+/(?:content\.do)?\?.*?\b(?:content_)?id=(?P<id>[^&]+)' | ||||||
|  |  | ||||||
|     _URL_TEMPLATE = 'https://www.litv.tv/vod/%s/content.do?id=%s' |     _URL_TEMPLATE = 'https://www.litv.tv/vod/%s/content.do?id=%s' | ||||||
|  |  | ||||||
|   | |||||||
| @@ -94,7 +94,7 @@ class LyndaBaseIE(InfoExtractor): | |||||||
| class LyndaIE(LyndaBaseIE): | class LyndaIE(LyndaBaseIE): | ||||||
|     IE_NAME = 'lynda' |     IE_NAME = 'lynda' | ||||||
|     IE_DESC = 'lynda.com videos' |     IE_DESC = 'lynda.com videos' | ||||||
|     _VALID_URL = r'https?://www\.lynda\.com/(?:[^/]+/[^/]+/\d+|player/embed)/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?lynda\.com/(?:[^/]+/[^/]+/\d+|player/embed)/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TIMECODE_REGEX = r'\[(?P<timecode>\d+:\d+:\d+[\.,]\d+)\]' |     _TIMECODE_REGEX = r'\[(?P<timecode>\d+:\d+:\d+[\.,]\d+)\]' | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from ..utils import ExtractorError | |||||||
| class MacGameStoreIE(InfoExtractor): | class MacGameStoreIE(InfoExtractor): | ||||||
|     IE_NAME = 'macgamestore' |     IE_NAME = 'macgamestore' | ||||||
|     IE_DESC = 'MacGameStore trailers' |     IE_DESC = 'MacGameStore trailers' | ||||||
|     _VALID_URL = r'https?://www\.macgamestore\.com/mediaviewer\.php\?trailer=(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?macgamestore\.com/mediaviewer\.php\?trailer=(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.macgamestore.com/mediaviewer.php?trailer=2450', |         'url': 'http://www.macgamestore.com/mediaviewer.php?trailer=2450', | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class MetacriticIE(InfoExtractor): | class MetacriticIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.metacritic\.com/.+?/trailers/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?metacritic\.com/.+?/trailers/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.metacritic.com/game/playstation-4/infamous-second-son/trailers/3698222', |         'url': 'http://www.metacritic.com/game/playstation-4/infamous-second-son/trailers/3698222', | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from ..utils import int_or_none | |||||||
|  |  | ||||||
|  |  | ||||||
| class MGTVIE(InfoExtractor): | class MGTVIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.mgtv\.com/v/(?:[^/]+/)*(?P<id>\d+)\.html' |     _VALID_URL = r'https?://(?:www\.)?mgtv\.com/v/(?:[^/]+/)*(?P<id>\d+)\.html' | ||||||
|     IE_DESC = '芒果TV' |     IE_DESC = '芒果TV' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class MinistryGridIE(InfoExtractor): | class MinistryGridIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.ministrygrid.com/([^/?#]*/)*(?P<id>[^/#?]+)/?(?:$|[?#])' |     _VALID_URL = r'https?://(?:www\.)?ministrygrid\.com/([^/?#]*/)*(?P<id>[^/#?]+)/?(?:$|[?#])' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.ministrygrid.com/training-viewer/-/training/t4g-2014-conference/the-gospel-by-numbers-4/the-gospel-by-numbers', |         'url': 'http://www.ministrygrid.com/training-viewer/-/training/t4g-2014-conference/the-gospel-by-numbers-4/the-gospel-by-numbers', | ||||||
|   | |||||||
| @@ -74,7 +74,7 @@ class MiTeleBaseIE(InfoExtractor): | |||||||
|  |  | ||||||
| class MiTeleIE(MiTeleBaseIE): | class MiTeleIE(MiTeleBaseIE): | ||||||
|     IE_DESC = 'mitele.es' |     IE_DESC = 'mitele.es' | ||||||
|     _VALID_URL = r'https?://www\.mitele\.es/(?:[^/]+/){3}(?P<id>[^/]+)/' |     _VALID_URL = r'https?://(?:www\.)?mitele\.es/(?:[^/]+/){3}(?P<id>[^/]+)/' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.mitele.es/programas-tv/diario-de/la-redaccion/programa-144/', |         'url': 'http://www.mitele.es/programas-tv/diario-de/la-redaccion/programa-144/', | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ from ..compat import ( | |||||||
|  |  | ||||||
| class MotorsportIE(InfoExtractor): | class MotorsportIE(InfoExtractor): | ||||||
|     IE_DESC = 'motorsport.com' |     IE_DESC = 'motorsport.com' | ||||||
|     _VALID_URL = r'https?://www\.motorsport\.com/[^/?#]+/video/(?:[^/?#]+/)(?P<id>[^/]+)/?(?:$|[?#])' |     _VALID_URL = r'https?://(?:www\.)?motorsport\.com/[^/?#]+/video/(?:[^/?#]+/)(?P<id>[^/]+)/?(?:$|[?#])' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.motorsport.com/f1/video/main-gallery/red-bull-racing-2014-rules-explained/', |         'url': 'http://www.motorsport.com/f1/video/main-gallery/red-bull-racing-2014-rules-explained/', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class MoviezineIE(InfoExtractor): | class MoviezineIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.moviezine\.se/video/(?P<id>[^?#]+)' |     _VALID_URL = r'https?://(?:www\.)?moviezine\.se/video/(?P<id>[^?#]+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.moviezine.se/video/205866', |         'url': 'http://www.moviezine.se/video/205866', | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class MySpassIE(InfoExtractor): | class MySpassIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.myspass\.de/.*' |     _VALID_URL = r'https?://(?:www\.)?myspass\.de/.*' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/', |         'url': 'http://www.myspass.de/myspass/shows/tvshows/absolute-mehrheit/Absolute-Mehrheit-vom-17022013-Die-Highlights-Teil-2--/11741/', | ||||||
|         'md5': '0b49f4844a068f8b33f4b7c88405862b', |         'md5': '0b49f4844a068f8b33f4b7c88405862b', | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class NBCIE(InfoExtractor): | class NBCIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.nbc\.com/(?:[^/]+/)+(?P<id>n?\d+)' |     _VALID_URL = r'https?://(?:www\.)?nbc\.com/(?:[^/]+/)+(?P<id>n?\d+)' | ||||||
|  |  | ||||||
|     _TESTS = [ |     _TESTS = [ | ||||||
|         { |         { | ||||||
| @@ -138,7 +138,7 @@ class NBCSportsVPlayerIE(InfoExtractor): | |||||||
|  |  | ||||||
| class NBCSportsIE(InfoExtractor): | class NBCSportsIE(InfoExtractor): | ||||||
|     # Does not include https because its certificate is invalid |     # Does not include https because its certificate is invalid | ||||||
|     _VALID_URL = r'https?://www\.nbcsports\.com//?(?:[^/]+/)+(?P<id>[0-9a-z-]+)' |     _VALID_URL = r'https?://(?:www\.)?nbcsports\.com//?(?:[^/]+/)+(?P<id>[0-9a-z-]+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.nbcsports.com//college-basketball/ncaab/tom-izzo-michigan-st-has-so-much-respect-duke', |         'url': 'http://www.nbcsports.com//college-basketball/ncaab/tom-izzo-michigan-st-has-so-much-respect-duke', | ||||||
| @@ -161,7 +161,7 @@ class NBCSportsIE(InfoExtractor): | |||||||
|  |  | ||||||
|  |  | ||||||
| class CSNNEIE(InfoExtractor): | class CSNNEIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.csnne\.com/video/(?P<id>[0-9a-z-]+)' |     _VALID_URL = r'https?://(?:www\.)?csnne\.com/video/(?P<id>[0-9a-z-]+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.csnne.com/video/snc-evening-update-wright-named-red-sox-no-5-starter', |         'url': 'http://www.csnne.com/video/snc-evening-update-wright-named-red-sox-no-5-starter', | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ class NDRBaseIE(InfoExtractor): | |||||||
| class NDRIE(NDRBaseIE): | class NDRIE(NDRBaseIE): | ||||||
|     IE_NAME = 'ndr' |     IE_NAME = 'ndr' | ||||||
|     IE_DESC = 'NDR.de - Norddeutscher Rundfunk' |     IE_DESC = 'NDR.de - Norddeutscher Rundfunk' | ||||||
|     _VALID_URL = r'https?://www\.ndr\.de/(?:[^/]+/)*(?P<id>[^/?#]+),[\da-z]+\.html' |     _VALID_URL = r'https?://(?:www\.)?ndr\.de/(?:[^/]+/)*(?P<id>[^/?#]+),[\da-z]+\.html' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         # httpVideo, same content id |         # httpVideo, same content id | ||||||
|         'url': 'http://www.ndr.de/fernsehen/Party-Poette-und-Parade,hafengeburtstag988.html', |         'url': 'http://www.ndr.de/fernsehen/Party-Poette-und-Parade,hafengeburtstag988.html', | ||||||
| @@ -105,7 +105,7 @@ class NDRIE(NDRBaseIE): | |||||||
| class NJoyIE(NDRBaseIE): | class NJoyIE(NDRBaseIE): | ||||||
|     IE_NAME = 'njoy' |     IE_NAME = 'njoy' | ||||||
|     IE_DESC = 'N-JOY' |     IE_DESC = 'N-JOY' | ||||||
|     _VALID_URL = r'https?://www\.n-joy\.de/(?:[^/]+/)*(?:(?P<display_id>[^/?#]+),)?(?P<id>[\da-z]+)\.html' |     _VALID_URL = r'https?://(?:www\.)?n-joy\.de/(?:[^/]+/)*(?:(?P<display_id>[^/?#]+),)?(?P<id>[\da-z]+)\.html' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         # httpVideo, same content id |         # httpVideo, same content id | ||||||
|         'url': 'http://www.n-joy.de/entertainment/comedy/comedy_contest/Benaissa-beim-NDR-Comedy-Contest,comedycontest2480.html', |         'url': 'http://www.n-joy.de/entertainment/comedy/comedy_contest/Benaissa-beim-NDR-Comedy-Contest,comedycontest2480.html', | ||||||
| @@ -238,7 +238,7 @@ class NDREmbedBaseIE(InfoExtractor): | |||||||
|  |  | ||||||
| class NDREmbedIE(NDREmbedBaseIE): | class NDREmbedIE(NDREmbedBaseIE): | ||||||
|     IE_NAME = 'ndr:embed' |     IE_NAME = 'ndr:embed' | ||||||
|     _VALID_URL = r'https?://www\.ndr\.de/(?:[^/]+/)*(?P<id>[\da-z]+)-(?:player|externalPlayer)\.html' |     _VALID_URL = r'https?://(?:www\.)?ndr\.de/(?:[^/]+/)*(?P<id>[\da-z]+)-(?:player|externalPlayer)\.html' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.ndr.de/fernsehen/sendungen/ndr_aktuell/ndraktuell28488-player.html', |         'url': 'http://www.ndr.de/fernsehen/sendungen/ndr_aktuell/ndraktuell28488-player.html', | ||||||
|         'md5': '8b9306142fe65bbdefb5ce24edb6b0a9', |         'md5': '8b9306142fe65bbdefb5ce24edb6b0a9', | ||||||
| @@ -332,7 +332,7 @@ class NDREmbedIE(NDREmbedBaseIE): | |||||||
|  |  | ||||||
| class NJoyEmbedIE(NDREmbedBaseIE): | class NJoyEmbedIE(NDREmbedBaseIE): | ||||||
|     IE_NAME = 'njoy:embed' |     IE_NAME = 'njoy:embed' | ||||||
|     _VALID_URL = r'https?://www\.n-joy\.de/(?:[^/]+/)*(?P<id>[\da-z]+)-(?:player|externalPlayer)_[^/]+\.html' |     _VALID_URL = r'https?://(?:www\.)?n-joy\.de/(?:[^/]+/)*(?P<id>[\da-z]+)-(?:player|externalPlayer)_[^/]+\.html' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         # httpVideo |         # httpVideo | ||||||
|         'url': 'http://www.n-joy.de/events/reeperbahnfestival/doku948-player_image-bc168e87-5263-4d6d-bd27-bb643005a6de_theme-n-joy.html', |         'url': 'http://www.n-joy.de/events/reeperbahnfestival/doku948-player_image-bc168e87-5263-4d6d-bd27-bb643005a6de_theme-n-joy.html', | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from ..utils import parse_iso8601 | |||||||
|  |  | ||||||
| class NextMediaIE(InfoExtractor): | class NextMediaIE(InfoExtractor): | ||||||
|     IE_DESC = '蘋果日報' |     IE_DESC = '蘋果日報' | ||||||
|     _VALID_URL = r'https?://hk.apple.nextmedia.com/[^/]+/[^/]+/(?P<date>\d+)/(?P<id>\d+)' |     _VALID_URL = r'https?://hk\.apple\.nextmedia\.com/[^/]+/[^/]+/(?P<date>\d+)/(?P<id>\d+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://hk.apple.nextmedia.com/realtime/news/20141108/53109199', |         'url': 'http://hk.apple.nextmedia.com/realtime/news/20141108/53109199', | ||||||
|         'md5': 'dff9fad7009311c421176d1ac90bfe4f', |         'md5': 'dff9fad7009311c421176d1ac90bfe4f', | ||||||
| @@ -68,7 +68,7 @@ class NextMediaIE(InfoExtractor): | |||||||
|  |  | ||||||
| class NextMediaActionNewsIE(NextMediaIE): | class NextMediaActionNewsIE(NextMediaIE): | ||||||
|     IE_DESC = '蘋果日報 - 動新聞' |     IE_DESC = '蘋果日報 - 動新聞' | ||||||
|     _VALID_URL = r'https?://hk.dv.nextmedia.com/actionnews/[^/]+/(?P<date>\d+)/(?P<id>\d+)/\d+' |     _VALID_URL = r'https?://hk\.dv\.nextmedia\.com/actionnews/[^/]+/(?P<date>\d+)/(?P<id>\d+)/\d+' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://hk.dv.nextmedia.com/actionnews/hit/20150121/19009428/20061460', |         'url': 'http://hk.dv.nextmedia.com/actionnews/hit/20150121/19009428/20061460', | ||||||
|         'md5': '05fce8ffeed7a5e00665d4b7cf0f9201', |         'md5': '05fce8ffeed7a5e00665d4b7cf0f9201', | ||||||
| @@ -93,7 +93,7 @@ class NextMediaActionNewsIE(NextMediaIE): | |||||||
|  |  | ||||||
| class AppleDailyIE(NextMediaIE): | class AppleDailyIE(NextMediaIE): | ||||||
|     IE_DESC = '臺灣蘋果日報' |     IE_DESC = '臺灣蘋果日報' | ||||||
|     _VALID_URL = r'https?://(www|ent).appledaily.com.tw/(?:animation|appledaily|enews|realtimenews)/[^/]+/[^/]+/(?P<date>\d+)/(?P<id>\d+)(/.*)?' |     _VALID_URL = r'https?://(www|ent)\.appledaily\.com\.tw/(?:animation|appledaily|enews|realtimenews)/[^/]+/[^/]+/(?P<date>\d+)/(?P<id>\d+)(/.*)?' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://ent.appledaily.com.tw/enews/article/entertainment/20150128/36354694', |         'url': 'http://ent.appledaily.com.tw/enews/article/entertainment/20150128/36354694', | ||||||
|         'md5': 'a843ab23d150977cc55ef94f1e2c1e4d', |         'md5': 'a843ab23d150977cc55ef94f1e2c1e4d', | ||||||
|   | |||||||
| @@ -252,7 +252,7 @@ class NiconicoIE(InfoExtractor): | |||||||
|  |  | ||||||
|  |  | ||||||
| class NiconicoPlaylistIE(InfoExtractor): | class NiconicoPlaylistIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.nicovideo\.jp/mylist/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?nicovideo\.jp/mylist/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.nicovideo.jp/mylist/27411728', |         'url': 'http://www.nicovideo.jp/mylist/27411728', | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class OktoberfestTVIE(InfoExtractor): | class OktoberfestTVIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.oktoberfest-tv\.de/[^/]+/[^/]+/video/(?P<id>[^/?#]+)' |     _VALID_URL = r'https?://(?:www\.)?oktoberfest-tv\.de/[^/]+/[^/]+/video/(?P<id>[^/?#]+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.oktoberfest-tv.de/de/kameras/video/hb-zelt', |         'url': 'http://www.oktoberfest-tv.de/de/kameras/video/hb-zelt', | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class OpenloadIE(InfoExtractor): | class OpenloadIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https://openload.(?:co|io)/(?:f|embed)/(?P<id>[a-zA-Z0-9-_]+)' |     _VALID_URL = r'https?://openload\.(?:co|io)/(?:f|embed)/(?P<id>[a-zA-Z0-9-_]+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'https://openload.co/f/kUEfGclsU9o', |         'url': 'https://openload.co/f/kUEfGclsU9o', | ||||||
|   | |||||||
| @@ -94,7 +94,7 @@ class PeriscopeIE(PeriscopeBaseIE): | |||||||
|  |  | ||||||
|  |  | ||||||
| class PeriscopeUserIE(PeriscopeBaseIE): | class PeriscopeUserIE(PeriscopeBaseIE): | ||||||
|     _VALID_URL = r'https?://www\.periscope\.tv/(?P<id>[^/]+)/?$' |     _VALID_URL = r'https?://(?:www\.)?periscope\.tv/(?P<id>[^/]+)/?$' | ||||||
|     IE_DESC = 'Periscope user videos' |     IE_DESC = 'Periscope user videos' | ||||||
|     IE_NAME = 'periscope:user' |     IE_NAME = 'periscope:user' | ||||||
|  |  | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class PlayvidIE(InfoExtractor): | class PlayvidIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.playvid\.com/watch(\?v=|/)(?P<id>.+?)(?:#|$)' |     _VALID_URL = r'https?://(?:www\.)?playvid\.com/watch(\?v=|/)(?P<id>.+?)(?:#|$)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.playvid.com/watch/RnmBNgtrrJu', |         'url': 'http://www.playvid.com/watch/RnmBNgtrrJu', | ||||||
|         'md5': 'ffa2f6b2119af359f544388d8c01eb6c', |         'md5': 'ffa2f6b2119af359f544388d8c01eb6c', | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ from ..utils import ( | |||||||
| class QQMusicIE(InfoExtractor): | class QQMusicIE(InfoExtractor): | ||||||
|     IE_NAME = 'qqmusic' |     IE_NAME = 'qqmusic' | ||||||
|     IE_DESC = 'QQ音乐' |     IE_DESC = 'QQ音乐' | ||||||
|     _VALID_URL = r'https?://y.qq.com/#type=song&mid=(?P<id>[0-9A-Za-z]+)' |     _VALID_URL = r'https?://y\.qq\.com/#type=song&mid=(?P<id>[0-9A-Za-z]+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://y.qq.com/#type=song&mid=004295Et37taLD', |         'url': 'http://y.qq.com/#type=song&mid=004295Et37taLD', | ||||||
|         'md5': '9ce1c1c8445f561506d2e3cfb0255705', |         'md5': '9ce1c1c8445f561506d2e3cfb0255705', | ||||||
| @@ -172,7 +172,7 @@ class QQPlaylistBaseIE(InfoExtractor): | |||||||
| class QQMusicSingerIE(QQPlaylistBaseIE): | class QQMusicSingerIE(QQPlaylistBaseIE): | ||||||
|     IE_NAME = 'qqmusic:singer' |     IE_NAME = 'qqmusic:singer' | ||||||
|     IE_DESC = 'QQ音乐 - 歌手' |     IE_DESC = 'QQ音乐 - 歌手' | ||||||
|     _VALID_URL = r'https?://y.qq.com/#type=singer&mid=(?P<id>[0-9A-Za-z]+)' |     _VALID_URL = r'https?://y\.qq\.com/#type=singer&mid=(?P<id>[0-9A-Za-z]+)' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://y.qq.com/#type=singer&mid=001BLpXF2DyJe2', |         'url': 'http://y.qq.com/#type=singer&mid=001BLpXF2DyJe2', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
| @@ -217,7 +217,7 @@ class QQMusicSingerIE(QQPlaylistBaseIE): | |||||||
| class QQMusicAlbumIE(QQPlaylistBaseIE): | class QQMusicAlbumIE(QQPlaylistBaseIE): | ||||||
|     IE_NAME = 'qqmusic:album' |     IE_NAME = 'qqmusic:album' | ||||||
|     IE_DESC = 'QQ音乐 - 专辑' |     IE_DESC = 'QQ音乐 - 专辑' | ||||||
|     _VALID_URL = r'https?://y.qq.com/#type=album&mid=(?P<id>[0-9A-Za-z]+)' |     _VALID_URL = r'https?://y\.qq\.com/#type=album&mid=(?P<id>[0-9A-Za-z]+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://y.qq.com/#type=album&mid=000gXCTb2AhRR1', |         'url': 'http://y.qq.com/#type=album&mid=000gXCTb2AhRR1', | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ from .internetvideoarchive import InternetVideoArchiveIE | |||||||
|  |  | ||||||
|  |  | ||||||
| class RottenTomatoesIE(InfoExtractor): | class RottenTomatoesIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.rottentomatoes\.com/m/[^/]+/trailers/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?rottentomatoes\.com/m/[^/]+/trailers/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.rottentomatoes.com/m/toy_story_3/trailers/11028566/', |         'url': 'http://www.rottentomatoes.com/m/toy_story_3/trailers/11028566/', | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from ..utils import unified_strdate, determine_ext | |||||||
|  |  | ||||||
|  |  | ||||||
| class RoxwelIE(InfoExtractor): | class RoxwelIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.roxwel\.com/player/(?P<filename>.+?)(\.|\?|$)' |     _VALID_URL = r'https?://(?:www\.)?roxwel\.com/player/(?P<filename>.+?)(\.|\?|$)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.roxwel.com/player/passionpittakeawalklive.html', |         'url': 'http://www.roxwel.com/player/passionpittakeawalklive.html', | ||||||
|   | |||||||
| @@ -64,7 +64,7 @@ def _decrypt_url(png): | |||||||
| class RTVEALaCartaIE(InfoExtractor): | class RTVEALaCartaIE(InfoExtractor): | ||||||
|     IE_NAME = 'rtve.es:alacarta' |     IE_NAME = 'rtve.es:alacarta' | ||||||
|     IE_DESC = 'RTVE a la carta' |     IE_DESC = 'RTVE a la carta' | ||||||
|     _VALID_URL = r'https?://www\.rtve\.es/(m/)?(alacarta/videos|filmoteca)/[^/]+/[^/]+/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?rtve\.es/(m/)?(alacarta/videos|filmoteca)/[^/]+/[^/]+/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.rtve.es/alacarta/videos/balonmano/o-swiss-cup-masculina-final-espana-suecia/2491869/', |         'url': 'http://www.rtve.es/alacarta/videos/balonmano/o-swiss-cup-masculina-final-espana-suecia/2491869/', | ||||||
| @@ -184,7 +184,7 @@ class RTVEInfantilIE(InfoExtractor): | |||||||
| class RTVELiveIE(InfoExtractor): | class RTVELiveIE(InfoExtractor): | ||||||
|     IE_NAME = 'rtve.es:live' |     IE_NAME = 'rtve.es:live' | ||||||
|     IE_DESC = 'RTVE.es live streams' |     IE_DESC = 'RTVE.es live streams' | ||||||
|     _VALID_URL = r'https?://www\.rtve\.es/directo/(?P<id>[a-zA-Z0-9-]+)' |     _VALID_URL = r'https?://(?:www\.)?rtve\.es/directo/(?P<id>[a-zA-Z0-9-]+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.rtve.es/directo/la-1/', |         'url': 'http://www.rtve.es/directo/la-1/', | ||||||
| @@ -226,7 +226,7 @@ class RTVELiveIE(InfoExtractor): | |||||||
|  |  | ||||||
| class RTVETelevisionIE(InfoExtractor): | class RTVETelevisionIE(InfoExtractor): | ||||||
|     IE_NAME = 'rtve.es:television' |     IE_NAME = 'rtve.es:television' | ||||||
|     _VALID_URL = r'https?://www\.rtve\.es/television/[^/]+/[^/]+/(?P<id>\d+).shtml' |     _VALID_URL = r'https?://(?:www\.)?rtve\.es/television/[^/]+/[^/]+/(?P<id>\d+).shtml' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.rtve.es/television/20160628/revolucion-del-movil/1364141.shtml', |         'url': 'http://www.rtve.es/television/20160628/revolucion-del-movil/1364141.shtml', | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class ScreenJunkiesIE(InfoExtractor): | class ScreenJunkiesIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www.screenjunkies.com/video/(?P<display_id>[^/]+?)(?:-(?P<id>\d+))?(?:[/?#&]|$)' |     _VALID_URL = r'https?://(?:www\.)?screenjunkies\.com/video/(?P<display_id>[^/]+?)(?:-(?P<id>\d+))?(?:[/?#&]|$)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.screenjunkies.com/video/best-quentin-tarantino-movie-2841915', |         'url': 'http://www.screenjunkies.com/video/best-quentin-tarantino-movie-2841915', | ||||||
|         'md5': '5c2b686bec3d43de42bde9ec047536b0', |         'md5': '5c2b686bec3d43de42bde9ec047536b0', | ||||||
|   | |||||||
| @@ -48,7 +48,7 @@ class SenateISVPIE(InfoExtractor): | |||||||
|         ['arch', '', 'http://ussenate-f.akamaihd.net/'] |         ['arch', '', 'http://ussenate-f.akamaihd.net/'] | ||||||
|     ] |     ] | ||||||
|     _IE_NAME = 'senate.gov' |     _IE_NAME = 'senate.gov' | ||||||
|     _VALID_URL = r'https?://www\.senate\.gov/isvp/?\?(?P<qs>.+)' |     _VALID_URL = r'https?://(?:www\.)?senate\.gov/isvp/?\?(?P<qs>.+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.senate.gov/isvp/?comm=judiciary&type=live&stt=&filename=judiciary031715&auto_play=false&wmode=transparent&poster=http%3A%2F%2Fwww.judiciary.senate.gov%2Fthemes%2Fjudiciary%2Fimages%2Fvideo-poster-flash-fit.png', |         'url': 'http://www.senate.gov/isvp/?comm=judiciary&type=live&stt=&filename=judiciary031715&auto_play=false&wmode=transparent&poster=http%3A%2F%2Fwww.judiciary.senate.gov%2Fthemes%2Fjudiciary%2Fimages%2Fvideo-poster-flash-fit.png', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class SlideshareIE(InfoExtractor): | class SlideshareIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.slideshare\.net/[^/]+?/(?P<title>.+?)($|\?)' |     _VALID_URL = r'https?://(?:www\.)?slideshare\.net/[^/]+?/(?P<title>.+?)($|\?)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.slideshare.net/Dataversity/keynote-presentation-managing-scale-and-complexity', |         'url': 'http://www.slideshare.net/Dataversity/keynote-presentation-managing-scale-and-complexity', | ||||||
|   | |||||||
| @@ -103,7 +103,7 @@ class SpiegelIE(InfoExtractor): | |||||||
|  |  | ||||||
|  |  | ||||||
| class SpiegelArticleIE(InfoExtractor): | class SpiegelArticleIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.spiegel\.de/(?!video/)[^?#]*?-(?P<id>[0-9]+)\.html' |     _VALID_URL = r'https?://(?:www\.)?spiegel\.de/(?!video/)[^?#]*?-(?P<id>[0-9]+)\.html' | ||||||
|     IE_NAME = 'Spiegel:Article' |     IE_NAME = 'Spiegel:Article' | ||||||
|     IE_DESC = 'Articles on spiegel.de' |     IE_DESC = 'Articles on spiegel.de' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class SyfyIE(AdobePassIE): | class SyfyIE(AdobePassIE): | ||||||
|     _VALID_URL = r'https?://www\.syfy\.com/(?:[^/]+/)?videos/(?P<id>[^/?#]+)' |     _VALID_URL = r'https?://(?:www\.)?syfy\.com/(?:[^/]+/)?videos/(?P<id>[^/?#]+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.syfy.com/theinternetruinedmylife/videos/the-internet-ruined-my-life-season-1-trailer', |         'url': 'http://www.syfy.com/theinternetruinedmylife/videos/the-internet-ruined-my-life-season-1-trailer', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from .ooyala import OoyalaIE | |||||||
|  |  | ||||||
|  |  | ||||||
| class TeachingChannelIE(InfoExtractor): | class TeachingChannelIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.teachingchannel\.org/videos/(?P<title>.+)' |     _VALID_URL = r'https?://(?:www\.)?teachingchannel\.org/videos/(?P<title>.+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'https://www.teachingchannel.org/videos/teacher-teaming-evolution', |         'url': 'https://www.teachingchannel.org/videos/teacher-teaming-evolution', | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from .mitele import MiTeleBaseIE | |||||||
|  |  | ||||||
| class TelecincoIE(MiTeleBaseIE): | class TelecincoIE(MiTeleBaseIE): | ||||||
|     IE_DESC = 'telecinco.es, cuatro.com and mediaset.es' |     IE_DESC = 'telecinco.es, cuatro.com and mediaset.es' | ||||||
|     _VALID_URL = r'https?://www\.(?:telecinco\.es|cuatro\.com|mediaset\.es)/(?:[^/]+/)+(?P<id>.+?)\.html' |     _VALID_URL = r'https?://(?:www\.)?(?:telecinco\.es|cuatro\.com|mediaset\.es)/(?:[^/]+/)+(?P<id>.+?)\.html' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.telecinco.es/robinfood/temporada-01/t01xp14/Bacalao-cocochas-pil-pil_0_1876350223.html', |         'url': 'http://www.telecinco.es/robinfood/temporada-01/t01xp14/Bacalao-cocochas-pil-pil_0_1876350223.html', | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
|  |  | ||||||
| class TelewebionIE(InfoExtractor): | class TelewebionIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.telewebion\.com/#!/episode/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?telewebion\.com/#!/episode/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.telewebion.com/#!/episode/1263668/', |         'url': 'http://www.telewebion.com/#!/episode/1263668/', | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class TheInterceptIE(InfoExtractor): | class TheInterceptIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https://theintercept.com/fieldofvision/(?P<id>[^/?#]+)' |     _VALID_URL = r'https?://theintercept\.com/fieldofvision/(?P<id>[^/?#]+)' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'https://theintercept.com/fieldofvision/thisisacoup-episode-four-surrender-or-die/', |         'url': 'https://theintercept.com/fieldofvision/thisisacoup-episode-four-surrender-or-die/', | ||||||
|         'md5': '145f28b41d44aab2f87c0a4ac8ec95bd', |         'md5': '145f28b41d44aab2f87c0a4ac8ec95bd', | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ from ..utils import qualities | |||||||
|  |  | ||||||
|  |  | ||||||
| class TheSceneIE(InfoExtractor): | class TheSceneIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https://thescene\.com/watch/[^/]+/(?P<id>[^/#?]+)' |     _VALID_URL = r'https?://thescene\.com/watch/[^/]+/(?P<id>[^/#?]+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'https://thescene.com/watch/vogue/narciso-rodriguez-spring-2013-ready-to-wear', |         'url': 'https://thescene.com/watch/vogue/narciso-rodriguez-spring-2013-ready-to-wear', | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ from ..compat import ( | |||||||
|  |  | ||||||
| class TlcDeIE(InfoExtractor): | class TlcDeIE(InfoExtractor): | ||||||
|     IE_NAME = 'tlc.de' |     IE_NAME = 'tlc.de' | ||||||
|     _VALID_URL = r'https?://www\.tlc\.de/(?:[^/]+/)*videos/(?P<title>[^/?#]+)?(?:.*#(?P<id>\d+))?' |     _VALID_URL = r'https?://(?:www\.)?tlc\.de/(?:[^/]+/)*videos/(?P<title>[^/?#]+)?(?:.*#(?P<id>\d+))?' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.tlc.de/sendungen/breaking-amish/videos/#3235167922001', |         'url': 'http://www.tlc.de/sendungen/breaking-amish/videos/#3235167922001', | ||||||
|   | |||||||
| @@ -307,7 +307,7 @@ class UdemyIE(InfoExtractor): | |||||||
|  |  | ||||||
| class UdemyCourseIE(UdemyIE): | class UdemyCourseIE(UdemyIE): | ||||||
|     IE_NAME = 'udemy:course' |     IE_NAME = 'udemy:course' | ||||||
|     _VALID_URL = r'https?://www\.udemy\.com/(?P<id>[^/?#&]+)' |     _VALID_URL = r'https?://(?:www\.)?udemy\.com/(?P<id>[^/?#&]+)' | ||||||
|     _TESTS = [] |     _TESTS = [] | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
|  |  | ||||||
| class UstreamIE(InfoExtractor): | class UstreamIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.ustream\.tv/(?P<type>recorded|embed|embed/recorded)/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?ustream\.tv/(?P<type>recorded|embed|embed/recorded)/(?P<id>\d+)' | ||||||
|     IE_NAME = 'ustream' |     IE_NAME = 'ustream' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.ustream.tv/recorded/20274954', |         'url': 'http://www.ustream.tv/recorded/20274954', | ||||||
| @@ -117,7 +117,7 @@ class UstreamIE(InfoExtractor): | |||||||
|  |  | ||||||
|  |  | ||||||
| class UstreamChannelIE(InfoExtractor): | class UstreamChannelIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.ustream\.tv/channel/(?P<slug>.+)' |     _VALID_URL = r'https?://(?:www\.)?ustream\.tv/channel/(?P<slug>.+)' | ||||||
|     IE_NAME = 'ustream:channel' |     IE_NAME = 'ustream:channel' | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.ustream.tv/channel/channeljapan', |         'url': 'http://www.ustream.tv/channel/channeljapan', | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ class VevoIE(VevoBaseIE): | |||||||
|     (currently used by MTVIE and MySpaceIE) |     (currently used by MTVIE and MySpaceIE) | ||||||
|     ''' |     ''' | ||||||
|     _VALID_URL = r'''(?x) |     _VALID_URL = r'''(?x) | ||||||
|         (?:https?://www\.vevo\.com/watch/(?!playlist|genre)(?:[^/]+/(?:[^/]+/)?)?| |         (?:https?://(?:www\.)?vevo\.com/watch/(?!playlist|genre)(?:[^/]+/(?:[^/]+/)?)?| | ||||||
|            https?://cache\.vevo\.com/m/html/embed\.html\?video=| |            https?://cache\.vevo\.com/m/html/embed\.html\?video=| | ||||||
|            https?://videoplayer\.vevo\.com/embed/embedded\?videoId=| |            https?://videoplayer\.vevo\.com/embed/embedded\?videoId=| | ||||||
|            vevo:) |            vevo:) | ||||||
| @@ -374,7 +374,7 @@ class VevoIE(VevoBaseIE): | |||||||
|  |  | ||||||
|  |  | ||||||
| class VevoPlaylistIE(VevoBaseIE): | class VevoPlaylistIE(VevoBaseIE): | ||||||
|     _VALID_URL = r'https?://www\.vevo\.com/watch/(?P<kind>playlist|genre)/(?P<id>[^/?#&]+)' |     _VALID_URL = r'https?://(?:www\.)?vevo\.com/watch/(?P<kind>playlist|genre)/(?P<id>[^/?#&]+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.vevo.com/watch/playlist/dadbf4e7-b99f-4184-9670-6f0e547b6a29', |         'url': 'http://www.vevo.com/watch/playlist/dadbf4e7-b99f-4184-9670-6f0e547b6a29', | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from .internetvideoarchive import InternetVideoArchiveIE | |||||||
|  |  | ||||||
|  |  | ||||||
| class VideoDetectiveIE(InfoExtractor): | class VideoDetectiveIE(InfoExtractor): | ||||||
|     _VALID_URL = r'https?://www\.videodetective\.com/[^/]+/[^/]+/(?P<id>\d+)' |     _VALID_URL = r'https?://(?:www\.)?videodetective\.com/[^/]+/[^/]+/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TEST = { |     _TEST = { | ||||||
|         'url': 'http://www.videodetective.com/movies/kick-ass-2/194487', |         'url': 'http://www.videodetective.com/movies/kick-ass-2/194487', | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ from .common import InfoExtractor | |||||||
|  |  | ||||||
| class WeiqiTVIE(InfoExtractor): | class WeiqiTVIE(InfoExtractor): | ||||||
|     IE_DESC = 'WQTV' |     IE_DESC = 'WQTV' | ||||||
|     _VALID_URL = r'https?://www\.weiqitv\.com/index/video_play\?videoId=(?P<id>[A-Za-z0-9]+)' |     _VALID_URL = r'https?://(?:www\.)?weiqitv\.com/index/video_play\?videoId=(?P<id>[A-Za-z0-9]+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'http://www.weiqitv.com/index/video_play?videoId=53c744f09874f0e76a8b46f3', |         'url': 'http://www.weiqitv.com/index/video_play?videoId=53c744f09874f0e76a8b46f3', | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class YamIE(InfoExtractor): | class YamIE(InfoExtractor): | ||||||
|     IE_DESC = '蕃薯藤yam天空部落' |     IE_DESC = '蕃薯藤yam天空部落' | ||||||
|     _VALID_URL = r'https?://mymedia.yam.com/m/(?P<id>\d+)' |     _VALID_URL = r'https?://mymedia\.yam\.com/m/(?P<id>\d+)' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         # An audio hosted on Yam |         # An audio hosted on Yam | ||||||
|   | |||||||
| @@ -2302,7 +2302,7 @@ class YoutubeSearchURLIE(YoutubePlaylistBaseInfoExtractor): | |||||||
|  |  | ||||||
| class YoutubeShowIE(YoutubePlaylistsBaseInfoExtractor): | class YoutubeShowIE(YoutubePlaylistsBaseInfoExtractor): | ||||||
|     IE_DESC = 'YouTube.com (multi-season) shows' |     IE_DESC = 'YouTube.com (multi-season) shows' | ||||||
|     _VALID_URL = r'https?://www\.youtube\.com/show/(?P<id>[^?#]*)' |     _VALID_URL = r'https?://(?:www\.)?youtube\.com/show/(?P<id>[^?#]*)' | ||||||
|     IE_NAME = 'youtube:show' |     IE_NAME = 'youtube:show' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'https://www.youtube.com/show/airdisasters', |         'url': 'https://www.youtube.com/show/airdisasters', | ||||||
| @@ -2371,7 +2371,7 @@ class YoutubeFeedsInfoExtractor(YoutubeBaseInfoExtractor): | |||||||
| class YoutubeWatchLaterIE(YoutubePlaylistIE): | class YoutubeWatchLaterIE(YoutubePlaylistIE): | ||||||
|     IE_NAME = 'youtube:watchlater' |     IE_NAME = 'youtube:watchlater' | ||||||
|     IE_DESC = 'Youtube watch later list, ":ytwatchlater" for short (requires authentication)' |     IE_DESC = 'Youtube watch later list, ":ytwatchlater" for short (requires authentication)' | ||||||
|     _VALID_URL = r'https?://www\.youtube\.com/(?:feed/watch_later|(?:playlist|watch)\?(?:.+&)?list=WL)|:ytwatchlater' |     _VALID_URL = r'https?://(?:www\.)?youtube\.com/(?:feed/watch_later|(?:playlist|watch)\?(?:.+&)?list=WL)|:ytwatchlater' | ||||||
|  |  | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         'url': 'https://www.youtube.com/playlist?list=WL', |         'url': 'https://www.youtube.com/playlist?list=WL', | ||||||
| @@ -2392,7 +2392,7 @@ class YoutubeWatchLaterIE(YoutubePlaylistIE): | |||||||
| class YoutubeFavouritesIE(YoutubeBaseInfoExtractor): | class YoutubeFavouritesIE(YoutubeBaseInfoExtractor): | ||||||
|     IE_NAME = 'youtube:favorites' |     IE_NAME = 'youtube:favorites' | ||||||
|     IE_DESC = 'YouTube.com favourite videos, ":ytfav" for short (requires authentication)' |     IE_DESC = 'YouTube.com favourite videos, ":ytfav" for short (requires authentication)' | ||||||
|     _VALID_URL = r'https?://www\.youtube\.com/my_favorites|:ytfav(?:ou?rites)?' |     _VALID_URL = r'https?://(?:www\.)?youtube\.com/my_favorites|:ytfav(?:ou?rites)?' | ||||||
|     _LOGIN_REQUIRED = True |     _LOGIN_REQUIRED = True | ||||||
|  |  | ||||||
|     def _real_extract(self, url): |     def _real_extract(self, url): | ||||||
| @@ -2403,21 +2403,21 @@ class YoutubeFavouritesIE(YoutubeBaseInfoExtractor): | |||||||
|  |  | ||||||
| class YoutubeRecommendedIE(YoutubeFeedsInfoExtractor): | class YoutubeRecommendedIE(YoutubeFeedsInfoExtractor): | ||||||
|     IE_DESC = 'YouTube.com recommended videos, ":ytrec" for short (requires authentication)' |     IE_DESC = 'YouTube.com recommended videos, ":ytrec" for short (requires authentication)' | ||||||
|     _VALID_URL = r'https?://www\.youtube\.com/feed/recommended|:ytrec(?:ommended)?' |     _VALID_URL = r'https?://(?:www\.)?youtube\.com/feed/recommended|:ytrec(?:ommended)?' | ||||||
|     _FEED_NAME = 'recommended' |     _FEED_NAME = 'recommended' | ||||||
|     _PLAYLIST_TITLE = 'Youtube Recommended videos' |     _PLAYLIST_TITLE = 'Youtube Recommended videos' | ||||||
|  |  | ||||||
|  |  | ||||||
| class YoutubeSubscriptionsIE(YoutubeFeedsInfoExtractor): | class YoutubeSubscriptionsIE(YoutubeFeedsInfoExtractor): | ||||||
|     IE_DESC = 'YouTube.com subscriptions feed, "ytsubs" keyword (requires authentication)' |     IE_DESC = 'YouTube.com subscriptions feed, "ytsubs" keyword (requires authentication)' | ||||||
|     _VALID_URL = r'https?://www\.youtube\.com/feed/subscriptions|:ytsubs(?:criptions)?' |     _VALID_URL = r'https?://(?:www\.)?youtube\.com/feed/subscriptions|:ytsubs(?:criptions)?' | ||||||
|     _FEED_NAME = 'subscriptions' |     _FEED_NAME = 'subscriptions' | ||||||
|     _PLAYLIST_TITLE = 'Youtube Subscriptions' |     _PLAYLIST_TITLE = 'Youtube Subscriptions' | ||||||
|  |  | ||||||
|  |  | ||||||
| class YoutubeHistoryIE(YoutubeFeedsInfoExtractor): | class YoutubeHistoryIE(YoutubeFeedsInfoExtractor): | ||||||
|     IE_DESC = 'Youtube watch history, ":ythistory" for short (requires authentication)' |     IE_DESC = 'Youtube watch history, ":ythistory" for short (requires authentication)' | ||||||
|     _VALID_URL = r'https?://www\.youtube\.com/feed/history|:ythistory' |     _VALID_URL = r'https?://(?:www\.)?youtube\.com/feed/history|:ythistory' | ||||||
|     _FEED_NAME = 'history' |     _FEED_NAME = 'history' | ||||||
|     _PLAYLIST_TITLE = 'Youtube History' |     _PLAYLIST_TITLE = 'Youtube History' | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 stepshal
					stepshal