Compare commits

...

3 Commits

Author SHA1 Message Date
middlingphys
c5daee1d60 add / fix tests 2024-12-25 10:29:34 +09:00
middlingphys
667c7e2cfb
extract season with id
Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com>
2024-12-25 10:22:38 +09:00
middlingphys
3e549d2897
modify _VALID_URL
Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com>
2024-12-25 10:19:52 +09:00

View File

@ -421,14 +421,15 @@ class AbemaTVIE(AbemaTVBaseIE):
class AbemaTVTitleIE(AbemaTVBaseIE):
_VALID_URL = r'https?://abema\.tv/video/title/(?P<id>[^?/]+)(?:\?(?:.*?&)?s=(?P<season>[^&]+))?'
_VALID_URL = r'https?://abema\.tv/video/title/(?P<id>[^?/]+)(?:\?(?:[^#]+&)?s=(?P<season>[^&#]+))?'
_PAGE_SIZE = 25
_TESTS = [{
'url': 'https://abema.tv/video/title/90-1597',
'url': 'https://abema.tv/video/title/90-1887',
'info_dict': {
'id': '90-1597',
'id': '90-1887',
'title': 'シャッフルアイランド',
'description': 'md5:61b2425308f41a5282a926edda66f178',
},
'playlist_mincount': 2,
}, {
@ -436,15 +437,25 @@ class AbemaTVTitleIE(AbemaTVBaseIE):
'info_dict': {
'id': '193-132',
'title': '真心が届く~僕とスターのオフィス・ラブ!?~',
'description': 'md5:9b59493d1f3a792bafbc7319258e7af8',
},
'playlist_mincount': 16,
}, {
'url': 'https://abema.tv/video/title/25-102',
'url': 'https://abema.tv/video/title/25-1nzan-whrxe',
'info_dict': {
'id': '25-102',
'title': 'ソードアート・オンライン アリシゼーション',
'id': '25-1nzan-whrxe',
'title': 'ソードアート・オンライン',
'description': 'md5:c094904052322e6978495532bdbf06e6',
},
'playlist_mincount': 24,
'playlist_mincount': 25,
}, {
'url': 'https://abema.tv/video/title/26-2mzbynr-cph?s=26-2mzbynr-cph_s40',
'info_dict': {
'title': '〈物語〉シリーズ',
'id': '26-2mzbynr-cph',
'description': 'md5:e67873de1c88f360af1f0a4b84847a52',
},
'playlist_mincount': 31,
}]
def _fetch_page(self, playlist_id, series_version, season_id, page):
@ -470,8 +481,7 @@ class AbemaTVTitleIE(AbemaTVBaseIE):
self._PAGE_SIZE)
def _real_extract(self, url):
playlist_id = self._match_id(url)
season_id = self._match_valid_url(url).group('season')
playlist_id, season_id = self._match_valid_url(url).group('id', 'season')
series_info = self._call_api(f'v1/video/series/{playlist_id}', playlist_id)
return self.playlist_result(