YouTube Transcript/Subtitle API (including automatically generated subtitles)
This is an python API which allows you to get the transcripts/subtitles for a given YouTube video. It also works for automatically generated subtitles and it does not require a headless browser, like other selenium based solutions do!
Install
It is recommended to install this module by using pip:
pip install youtube_transcript_api
If you want to use it from source, you'll have to install the dependencies manually:
pip install -r requirements.txt
How to use it
You could either integrate this module into an existing application, or just use it via an CLI
In code
To get a transcript for a given video you can do:
from youtube_transcript_api import YouTubeTranscriptApi
YouTubeTranscriptApi.get_transcript(video_id)
This will return a list of dictionaries looking somewhat like this:
[
{
'text': 'Hey there',
'start': 7.58,
'duration': 6.13
},
{
'text': 'how are you',
'start': 14.08,
'duration': 7.58
},
# ...
]
You can also add the languages param if you want to make sure the transcripts are retrieved in your desired language (it usually defaults to english).
YouTubeTranscriptApi.get_transcripts(video_ids, languages=['de', 'en'])
It's a list of language codes in a descending priority. In this example it will first try to fetch the german transcript ('de') and then fetch the english transcipt ('en') if it fails to do so. As I can't provide a complete list of all working language codes with full certainty, you may have to play around with the language codes a bit, to find the one which is working for you!
To get transcripts for a list fo video ids you can call:
YouTubeTranscriptApi.get_transcripts(video_ids, languages=['de', 'en'])
languages also is optional here.
CLI
Execute the CLI script using the video ids as parameters and the results will be printed out to the command line:
youtube_transcript_api <first_video_id> <second_video_id> ...
If you would prefer to write it into a file or pipe it into another application, you can also output the results as json using the following line:
youtube_transcript_api --json <first_video_id> <second_video_id> ... > transcripts.json
Warning
This code uses an undocumented part of the YouTube API, which is called by the YouTube web-client. So there is no guarantee that it won't stop working tomorrow, if they change how things work. I will however do my best to make things working again as soon as possible if that happens. So if it stops working, let me know!
Metadata
Release files for youtube-transcript-api 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| youtube_transcript_api-0.1.2.tar.gz | 4.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| youtube_transcript_api-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.3 kB
Release files / youtube_transcript_api-0.1.2.tar.gz
| Download URL | youtube_transcript_api-0.1.2.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a0eb04f8492decab3f16d1b507537cfc1add5db2c537174baae78c54a5673ff
|
|
BLAKE2b-256 checksum How to use checksums |
d71f80a75f10f09b05c95864d4aac1b378871be2b78c84b7f876ec3c33a87296
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
|
Release files / youtube_transcript_api-0.1.2-py3-none-any.whl
| Download URL | youtube_transcript_api-0.1.2-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0916bed0947a2e7880b55e15ca54d6f5e6d5154bfcbfa64bcec48b0f3a86cd2b
|
|
BLAKE2b-256 checksum How to use checksums |
ae4c25cd6051207f7ccf0bd5b1808d143f3ddc96d0fce768540e1dbdd0b39f12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
|