diff options
author | bashonly <88596187+bashonly@users.noreply.github.com> | 2024-05-04 11:15:44 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-04 16:15:44 +0000 |
commit | cb2fb4a643949322adba561ca73bcba3221ec0c5 (patch) | |
tree | b5d2df79869ca9ffffd1fa5e7d6fd9d68ebbe494 | |
parent | 231c2eacc41b06b65c63edf94c0d04768a5da607 (diff) |
[ie/crunchyroll] Always make metadata available (#9772)
Closes #9750
Authored by: bashonly
-rw-r--r-- | yt_dlp/extractor/crunchyroll.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/yt_dlp/extractor/crunchyroll.py b/yt_dlp/extractor/crunchyroll.py index 385a3c2d3..a157cddac 100644 --- a/yt_dlp/extractor/crunchyroll.py +++ b/yt_dlp/extractor/crunchyroll.py @@ -394,10 +394,11 @@ class CrunchyrollBetaIE(CrunchyrollCmsBaseIE): if not self._IS_PREMIUM and traverse_obj(response, (f'{object_type}_metadata', 'is_premium_only')): message = f'This {object_type} is for premium members only' if CrunchyrollBaseIE._REFRESH_TOKEN: - raise ExtractorError(message, expected=True) - self.raise_login_required(message, method='password') - - result['formats'], result['subtitles'] = self._extract_stream(internal_id) + self.raise_no_formats(message, expected=True, video_id=internal_id) + else: + self.raise_login_required(message, method='password', metadata_available=True) + else: + result['formats'], result['subtitles'] = self._extract_stream(internal_id) result['chapters'] = self._extract_chapters(internal_id) @@ -583,14 +584,16 @@ class CrunchyrollMusicIE(CrunchyrollBaseIE): if not response: raise ExtractorError(f'No video with id {internal_id} could be found (possibly region locked?)', expected=True) + result = self._transform_music_response(response) + if not self._IS_PREMIUM and response.get('isPremiumOnly'): message = f'This {response.get("type") or "media"} is for premium members only' if CrunchyrollBaseIE._REFRESH_TOKEN: - raise ExtractorError(message, expected=True) - self.raise_login_required(message, method='password') - - result = self._transform_music_response(response) - result['formats'], _ = self._extract_stream(f'music/{internal_id}', internal_id) + self.raise_no_formats(message, expected=True, video_id=internal_id) + else: + self.raise_login_required(message, method='password', metadata_available=True) + else: + result['formats'], _ = self._extract_stream(f'music/{internal_id}', internal_id) return result |