|
|
@ -349,6 +349,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): |
|
|
|
(?:www\.)?hooktube\.com/| |
|
|
|
(?:www\.)?yourepeat\.com/| |
|
|
|
tube\.majestyc\.net/| |
|
|
|
(?:www\.)?invidio\.us/| |
|
|
|
youtube\.googleapis\.com/) # the various hostnames, with wildcard subdomains |
|
|
|
(?:.*?\#/)? # handle anchor (#/) redirect urls |
|
|
|
(?: # the various things that can precede the ID: |
|
|
@ -1068,6 +1069,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): |
|
|
|
'url': 'https://www.youtube.com/watch?v=MuAGGZNfUkU&list=RDMM', |
|
|
|
'only_matching': True, |
|
|
|
}, |
|
|
|
{ |
|
|
|
'url': 'https://invidio.us/watch?v=BaW_jenozKc', |
|
|
|
'only_matching': True, |
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs): |
|
|
@ -2419,7 +2424,7 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): |
|
|
|
|
|
|
|
class YoutubeChannelIE(YoutubePlaylistBaseInfoExtractor): |
|
|
|
IE_DESC = 'YouTube.com channels' |
|
|
|
_VALID_URL = r'https?://(?:youtu\.be|(?:\w+\.)?youtube(?:-nocookie)?\.com)/channel/(?P<id>[0-9A-Za-z_-]+)' |
|
|
|
_VALID_URL = r'https?://(?:youtu\.be|(?:\w+\.)?youtube(?:-nocookie)?\.com|(?:www\.)?invidio\.us)/channel/(?P<id>[0-9A-Za-z_-]+)' |
|
|
|
_TEMPLATE_URL = 'https://www.youtube.com/channel/%s/videos' |
|
|
|
_VIDEO_RE = r'(?:title="(?P<title>[^"]+)"[^>]+)?href="/watch\?v=(?P<id>[0-9A-Za-z_-]+)&?' |
|
|
|
IE_NAME = 'youtube:channel' |
|
|
@ -2440,6 +2445,9 @@ class YoutubeChannelIE(YoutubePlaylistBaseInfoExtractor): |
|
|
|
'id': 'UUs0ifCMCm1icqRbqhUINa0w', |
|
|
|
'title': 'Uploads from Deus Ex', |
|
|
|
}, |
|
|
|
}, { |
|
|
|
'url': 'https://invidio.us/channel/UC23qupoDRn9YOAVzeoxjOQA', |
|
|
|
'only_matching': True, |
|
|
|
}] |
|
|
|
|
|
|
|
@classmethod |
|
|
|