diff --git a/get_youtube_videos/get_youtube_videos.py b/get_youtube_videos/get_youtube_videos.py index 29eb143..fe91f4f 100644 --- a/get_youtube_videos/get_youtube_videos.py +++ b/get_youtube_videos/get_youtube_videos.py @@ -374,7 +374,8 @@ class GetYoutubeVideos: 'allow_multiple_audio_streams': True, 'noprogress': True, 'merge_output_format': 'mkv', - 'format': 'bestvideo+bestaudio[ext=m4a]/best', + # 'format': 'bestvideo+bestaudio[ext=m4a]/best', + 'format': '248+ba', # 'extractor_args': {'youtube': {'player-client': ['mweb']}} } if self.selected_proxy != '': @@ -394,13 +395,41 @@ class GetYoutubeVideos: } ) except yt_dlp.utils.DownloadError as error: - self._log.error( - "Error getting video with proxy '%s'. %s", - self.selected_proxy, - error - ) - self.summary['videos_with_error'] += 1 - break + if 'Requested format is not available' in f"{error}": + self._log.warning( + f"Requested format is not available, trying best format." + ) + ydl_opts['format'] = 'bestvideo+bestaudio[ext=m4a]/best' + with yt_dlp.YoutubeDL(ydl_opts) as ydl: + try: + uri=f"https://www.youtube.com/watch?v={video_id}" + return_code = ydl.download(uri) + self._process_download( + { + "return_code": return_code, + 'info_dict': { + 'id': video_id, + }, + 'filename': video_info.get('title', '?'), + 'video_info': video_info, + } + ) + except yt_dlp.utils.DownloadError as sub_error: + self._log.error( + "Error getting video with proxy '%s'. %s", + self.selected_proxy, + sub_error + ) + self.summary['videos_with_error'] += 1 + break + else: + self._log.error( + "Error getting video with proxy '%s'. %s", + self.selected_proxy, + error + ) + self.summary['videos_with_error'] += 1 + break self.summary['downloaded_videos_titles'].append(video_info.get('title', '?')) self.summary['downloaded_videos'] += 1 else: