From 0bc502fa6f64805f97343567c8c4ba2b6fe2bc1f Mon Sep 17 00:00:00 2001 From: stephen schuresko Date: Tue, 7 Apr 2026 11:53:23 -0400 Subject: [PATCH] Refine download_captions function with enhanced fallback languages and better error handling --- youtube_transcript_downloader.py | 49 ++++++++++++++++---------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/youtube_transcript_downloader.py b/youtube_transcript_downloader.py index 31c9ed8..020ea95 100644 --- a/youtube_transcript_downloader.py +++ b/youtube_transcript_downloader.py @@ -254,31 +254,32 @@ def download_captions(video_id): 'language': transcript.language, 'success': True } - - # If no English transcript is available, try any language - print("No English transcript found. Trying to get transcript in original language...") - transcript = YouTubeTranscriptApi().fetch(video_id, languages=[]) - - if transcript: - return { - 'transcript': transcript, - 'language': transcript.language, - 'success': True - } - - return { - 'transcript': None, - 'language': None, - 'success': False - } - except Exception as e: - print(f"Error downloading captions: {e}") - return { - 'transcript': None, - 'language': None, - 'success': False - } + try: + # If no English transcript is available, try any language + print("No English transcript found. Trying to get transcript in original language...") + transcript = YouTubeTranscriptApi().fetch(video_id, languages=['de','fa']) + + if transcript: + return { + 'transcript': transcript, + 'language': transcript.language, + 'success': True + } + + return { + 'transcript': None, + 'language': None, + 'success': False + } + + except Exception as e: + print(f"Error downloading captions: {e}") + return { + 'transcript': None, + 'language': None, + 'success': False + } if __name__ == "__main__":