From e293203eba0fb7721e161cab2aa2e59e9f7192e3 Mon Sep 17 00:00:00 2001 From: Lauren Liberda Date: Fri, 9 Apr 2021 13:56:17 +0200 Subject: [PATCH] [cda] fix premium videos for premium users (?) --- haruhi_dl/extractor/cda.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/haruhi_dl/extractor/cda.py b/haruhi_dl/extractor/cda.py index 0d1956c57..472d372b9 100644 --- a/haruhi_dl/extractor/cda.py +++ b/haruhi_dl/extractor/cda.py @@ -126,9 +126,6 @@ class CDAIE(CDABaseExtractor): metadata = self._download_json( self._BASE_URL + '/video/' + video_id, video_id, headers=headers)['video'] - if metadata.get('premium') is True and metadata.get('premium_free') is not True: - raise ExtractorError('This video is only available for premium users.', expected=True) - uploader = try_get(metadata, lambda x: x['author']['login']) # anonymous uploader if uploader == 'anonim': @@ -136,6 +133,8 @@ class CDAIE(CDABaseExtractor): formats = [] for quality in metadata['qualities']: + if not quality['file']: + continue formats.append({ 'url': quality['file'], 'format': quality['title'], @@ -144,6 +143,13 @@ class CDAIE(CDABaseExtractor): 'filesize': quality.get('length'), }) + if not formats: + if metadata.get('premium') is True and metadata.get('premium_free') is not True: + raise ExtractorError('This video is only available for premium users.', expected=True) + raise ExtractorError('No video qualities found', video_id=video_id) + + self._sort_formats(formats) + return { 'id': video_id, 'title': metadata['title'],