I have a Django web app.This code works perfectly fine on localhost but stops working when I run it on cloud (DigitalOcean) App Platform.
from youtube_transcript_api import YouTubeTranscriptApi, TranscriptsDisabled, NoTranscriptFound, VideoUnavailabledef transcribe(video_url): video_id = video_url.split("v=")[-1] logger.debug("Extracted video ID: %s", video_id) try: transcript_list = YouTubeTranscriptApi.list_transcripts(video_id) transcript = None for transcript_info in transcript_list: try: transcript = transcript_info.fetch() break except Exception as e: logger.warning("Error fetching transcript: %s", e, exc_info=True) continue if transcript is None: logger.error("No transcripts available for this video.") return "No transcripts available for this video." except TranscriptsDisabled as e: logger.error("Transcripts are disabled for this video. %s", e, exc_info=True) return "Transcripts are disabled for this video." except NoTranscriptFound: logger.error("No transcript found for this video.") return "No transcript found for this video." except VideoUnavailable: logger.error("Video is unavailable.") return "Video is unavailable." except Exception as e: logger.error("Error in fetching transcript: %s", e, exc_info=True) return "Error in fetching transcript." # Concatenate all text from the transcript into a single string transcription_text = ''.join([item['text'] for item in transcript]) logger.debug("Transcription text (first 50 characters): %s", transcription_text[:50]) return transcription_textThe part that throws an exception is the line transcript_list = YouTubeTranscriptApi.list_transcripts(video_id).
And it throws a TranscriptsDisabled exception, saying that
Transcripts are disabled for this video.
But I do know that the video has transcripts and the code works perfectly fine on localhost as mentioned.
After spending 2 days and trying literally anything I can think of, I still have no solution to this mysterious problem. Anyone who has experienced the same thing and managed to solve it in some way?