This is a python API which allows you to get the transcript/subtitles for a given YouTube video. It also works for automatically generated subtitles and it does not require an API key nor a headless browser, like other selenium based solutions do!
from youtube_transcript_api import YouTubeTranscriptApi
srt = YouTubeTranscriptApi.get_transcript("UJHObtnp5A")
print(srt)
`
I tried to download this video
C:\Users\PycharmProjects\pythonProject\venv\Scripts\python.exe C:\Users\PycharmProjects\pythonProject\youtube.py
Traceback (most recent call last):
File "C:\Users\PycharmProjects\pythonProject\youtube.py", line 6, in
srt = YouTubeTranscriptApi.get_transcript("UJHObtnp5A")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\PycharmProjects\pythonProject\venv\Lib\site-packages\youtube_transcript_api_api.py", line 132, in get_transcript
return cls.list_transcripts(video_id, proxies, cookies).find_transcript(languages).fetch()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\PycharmProjects\pythonProject\venv\Lib\site-packages\youtube_transcript_api_api.py", line 71, in list_transcripts
return TranscriptListFetcher(http_client).fetch(video_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\PycharmProjects\pythonProject\venv\Lib\site-packages\youtube_transcript_api_transcripts.py", line 47, in fetch
self._extract_captions_json(self._fetch_video_html(video_id), video_id)
File "C:\Users\PycharmProjects\pythonProject\venv\Lib\site-packages\youtube_transcript_api_transcripts.py", line 59, in _extract_captions_json
raise TranscriptsDisabled(video_id)
youtube_transcript_api._errors.TranscriptsDisabled:
Could not retrieve a transcript for the video https://www.youtube.com/watch?v=UJHObtnp5A! This is most likely caused by:
`
from youtube_transcript_api import YouTubeTranscriptApi srt = YouTubeTranscriptApi.get_transcript("UJHObtnp5A") print(srt)
`
I tried to download this video
C:\Users\PycharmProjects\pythonProject\venv\Scripts\python.exe C:\Users\PycharmProjects\pythonProject\youtube.py Traceback (most recent call last): File "C:\Users\PycharmProjects\pythonProject\youtube.py", line 6, in
srt = YouTubeTranscriptApi.get_transcript("UJHObtnp5A")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\PycharmProjects\pythonProject\venv\Lib\site-packages\youtube_transcript_api_api.py", line 132, in get_transcript
return cls.list_transcripts(video_id, proxies, cookies).find_transcript(languages).fetch()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\PycharmProjects\pythonProject\venv\Lib\site-packages\youtube_transcript_api_api.py", line 71, in list_transcripts
return TranscriptListFetcher(http_client).fetch(video_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\PycharmProjects\pythonProject\venv\Lib\site-packages\youtube_transcript_api_transcripts.py", line 47, in fetch
self._extract_captions_json(self._fetch_video_html(video_id), video_id)
File "C:\Users\PycharmProjects\pythonProject\venv\Lib\site-packages\youtube_transcript_api_transcripts.py", line 59, in _extract_captions_json
raise TranscriptsDisabled(video_id)
youtube_transcript_api._errors.TranscriptsDisabled:
Could not retrieve a transcript for the video https://www.youtube.com/watch?v=UJHObtnp5A! This is most likely caused by:
Subtitles are disabled for this video