mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-15 21:53:21 +00:00
Compare commits
No commits in common. "5da42f2b9b29e69cff8a2ea22d3cf9c586e470d6" and "96623ab5c6cea59c22395a47f00a13d334de6106" have entirely different histories.
5da42f2b9b
...
96623ab5c6
@ -114,14 +114,7 @@ class CrunchyrollBaseIE(InfoExtractor):
|
|||||||
|
|
||||||
class CrunchyrollIE(CrunchyrollBaseIE, VRVBaseIE):
|
class CrunchyrollIE(CrunchyrollBaseIE, VRVBaseIE):
|
||||||
IE_NAME = 'crunchyroll'
|
IE_NAME = 'crunchyroll'
|
||||||
_VALID_URL = r'''(?x)
|
_VALID_URL = r'https?://(?:(?P<prefix>www|m)\.)?(?P<url>crunchyroll\.(?:com|fr)/(?:media(?:-|/\?id=)|(?!series/|watch/)(?:[^/]+/){1,2}[^/?&]*?)(?P<id>[0-9]+))(?:[/?&]|$)'
|
||||||
https?://(?:(?P<prefix>www|m)\.)?(?P<url>
|
|
||||||
crunchyroll\.(?:com|fr)/(?:
|
|
||||||
media(?:-|/\?id=)|
|
|
||||||
(?!series/|watch/)(?:[^/]+/){1,2}[^/?&#]*?
|
|
||||||
)(?P<id>[0-9]+)
|
|
||||||
)(?:[/?&#]|$)'''
|
|
||||||
|
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'http://www.crunchyroll.com/wanna-be-the-strongest-in-the-world/episode-1-an-idol-wrestler-is-born-645513',
|
'url': 'http://www.crunchyroll.com/wanna-be-the-strongest-in-the-world/episode-1-an-idol-wrestler-is-born-645513',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
@ -765,11 +758,7 @@ class CrunchyrollBetaBaseIE(CrunchyrollBaseIE):
|
|||||||
|
|
||||||
class CrunchyrollBetaIE(CrunchyrollBetaBaseIE):
|
class CrunchyrollBetaIE(CrunchyrollBetaBaseIE):
|
||||||
IE_NAME = 'crunchyroll:beta'
|
IE_NAME = 'crunchyroll:beta'
|
||||||
_VALID_URL = r'''(?x)
|
_VALID_URL = r'https?://beta\.crunchyroll\.com/(?P<lang>(?:\w{2}(?:-\w{2})?/)?)watch/(?P<id>\w+)/(?P<display_id>[\w\-]*)/?(?:\?|$)'
|
||||||
https?://beta\.crunchyroll\.com/
|
|
||||||
(?P<lang>(?:\w{2}(?:-\w{2})?/)?)
|
|
||||||
watch/(?P<id>\w+)
|
|
||||||
(?:/(?P<display_id>[\w-]+))?/?(?:[?#]|$)'''
|
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'https://beta.crunchyroll.com/watch/GY2P1Q98Y/to-the-future',
|
'url': 'https://beta.crunchyroll.com/watch/GY2P1Q98Y/to-the-future',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
@ -791,7 +780,7 @@ class CrunchyrollBetaIE(CrunchyrollBetaBaseIE):
|
|||||||
},
|
},
|
||||||
'params': {'skip_download': 'm3u8'},
|
'params': {'skip_download': 'm3u8'},
|
||||||
}, {
|
}, {
|
||||||
'url': 'https://beta.crunchyroll.com/watch/GY2P1Q98Y',
|
'url': 'https://beta.crunchyroll.com/watch/GY2P1Q98Y/',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
}, {
|
}, {
|
||||||
'url': 'https://beta.crunchyroll.com/pt-br/watch/G8WUN8VKP/the-ruler-of-conspiracy',
|
'url': 'https://beta.crunchyroll.com/pt-br/watch/G8WUN8VKP/the-ruler-of-conspiracy',
|
||||||
@ -878,11 +867,7 @@ class CrunchyrollBetaIE(CrunchyrollBetaBaseIE):
|
|||||||
|
|
||||||
class CrunchyrollBetaShowIE(CrunchyrollBetaBaseIE):
|
class CrunchyrollBetaShowIE(CrunchyrollBetaBaseIE):
|
||||||
IE_NAME = 'crunchyroll:playlist:beta'
|
IE_NAME = 'crunchyroll:playlist:beta'
|
||||||
_VALID_URL = r'''(?x)
|
_VALID_URL = r'https?://beta\.crunchyroll\.com/(?P<lang>(?:\w{2}(?:-\w{2})?/)?)series/(?P<id>\w+)/(?P<display_id>[\w\-]*)/?(?:\?|$)'
|
||||||
https?://beta\.crunchyroll\.com/
|
|
||||||
(?P<lang>(?:\w{2}(?:-\w{2})?/)?)
|
|
||||||
series/(?P<id>\w+)
|
|
||||||
(?:/(?P<display_id>[\w-]+))?/?(?:[?#]|$)'''
|
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'https://beta.crunchyroll.com/series/GY19NQ2QR/Girl-Friend-BETA',
|
'url': 'https://beta.crunchyroll.com/series/GY19NQ2QR/Girl-Friend-BETA',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
@ -891,7 +876,7 @@ class CrunchyrollBetaShowIE(CrunchyrollBetaBaseIE):
|
|||||||
},
|
},
|
||||||
'playlist_mincount': 10,
|
'playlist_mincount': 10,
|
||||||
}, {
|
}, {
|
||||||
'url': 'https://beta.crunchyroll.com/it/series/GY19NQ2QR',
|
'url': 'https://beta.crunchyroll.com/it/series/GY19NQ2QR/Girl-Friend-BETA',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
@ -237,10 +237,6 @@ class ZattooPlatformBaseIE(InfoExtractor):
|
|||||||
ondemand_termtoken=ondemand_termtoken, ondemand_type=ondemand_type)
|
ondemand_termtoken=ondemand_termtoken, ondemand_type=ondemand_type)
|
||||||
return info_dict
|
return info_dict
|
||||||
|
|
||||||
def _real_extract(self, url):
|
|
||||||
vid1, vid2 = self._match_valid_url(url).group('vid1', 'vid2')
|
|
||||||
return getattr(self, f'_extract_{self._TYPE}')(vid1 or vid2)
|
|
||||||
|
|
||||||
|
|
||||||
def _make_valid_url(host):
|
def _make_valid_url(host):
|
||||||
return rf'https?://(?:www\.)?{re.escape(host)}/watch/[^/]+?/(?P<id>[0-9]+)[^/]+(?:/(?P<recid>[0-9]+))?'
|
return rf'https?://(?:www\.)?{re.escape(host)}/watch/[^/]+?/(?P<id>[0-9]+)[^/]+(?:/(?P<recid>[0-9]+))?'
|
||||||
@ -258,6 +254,10 @@ class ZattooBaseIE(ZattooPlatformBaseIE):
|
|||||||
{match_base}
|
{match_base}
|
||||||
)'''
|
)'''
|
||||||
|
|
||||||
|
def _real_extract(self, url):
|
||||||
|
vid1, vid2 = self._match_valid_url(url).group('vid1', 'vid2')
|
||||||
|
return getattr(self, f'_extract_{self._TYPE}')(vid1 or vid2)
|
||||||
|
|
||||||
|
|
||||||
class ZattooIE(ZattooBaseIE):
|
class ZattooIE(ZattooBaseIE):
|
||||||
_VALID_URL = ZattooBaseIE._create_valid_url(r'\d+', 'program', '(?:program|watch)/[^/]+')
|
_VALID_URL = ZattooBaseIE._create_valid_url(r'\d+', 'program', '(?:program|watch)/[^/]+')
|
||||||
|
Loading…
Reference in New Issue
Block a user