Youtube's official API currently does not support fetching of a video's transcript. This project is a simple flask server that provides API endpoints for retrieving pure-text transcripts for YouTube videos. It also provides the ability to translate transcripts into different languages. This project is built on top of jdepoix's library
Note: All language codes used should follow the ISO 639-1 standard (case-sensitive)
GET /v1/transcripts{{id}}
Retrieve transcripts for a specified YouTube video. (try: https://youtube-transcriber-api.vercel.app/v1/transcripts?id=k_GM1JA608Y&lang=en)
Query Parameters
Parameter | Required | Note |
---|---|---|
id |
Yes | The ID of the YouTube video |
lang |
No | The language code for the desired transcript. If no language is specified, all available transcripts will be returned |
type |
No | The desired output format. Accepts json , text , srt , and webvtt . Default to text if not specified |
lb |
No | Boolean (0 or 1) indicating whether the transcript should contain line breaks. Only applies for type text . Default to 0 if not specified |
sfx |
No | Boolean (0 or 1) indicating whether the transcript should contain sound effects information eg. [Cheering], [Applause], [Music]. Default to 0 if not specified |
Response
The request returns a JSON object containing the following fields:
Field | Description |
---|---|
video_id |
The ID of the YouTube video |
transcripts |
A list of transcripts. Each transcript has the following fields:language : The language of the transcriptlanguageCode : The ISO 639-1 codeisGenerated : Boolean indicating whether the transcript is machine-generated isTranslatable : Boolean indicating whether the transcript can be translatedtext : The transcript in the specified format |
GET /v1/translations{{id}}{{lang}}
Retrieve a translated transcript for a specified YouTube video. (try: https://youtube-transcriber-api.vercel.app/v1/transcripts?id=k_GM1JA608Y&lang=es)
Query Parameters
Parameter | Required | Note |
---|---|---|
id |
Yes | The ID of the YouTube video |
lang |
Yes | The language code for the target language |
Response
The request returns a JSON object containing the following fields:
Field | Description |
---|---|
video_id |
The ID of the YouTube video |
sourceLanguage |
The language code of the source transcript |
targetLanguage |
The language code of the target translation |
transcripts |
The transcript text |
GET /v1/metadata{{id}}
Retrieve transcript metadata for a specified YouTube video. (try: https://youtube-transcriber-api.vercel.app/v1/metadata?id=k_GM1JA608Y)
Query Parameters
Parameter | Required | Note |
---|---|---|
id |
Yes | The ID of the YouTube video |
Response
The request returns a JSON object containing the following fields:
Field | Description |
---|---|
video_id |
The ID of the YouTube video. |
transcripts |
A list of transcript metadata. Each item has the following fields:language : The language of the transcriptionlanguageCode : The ISO 639-1 codeisGenerated : Boolean indicating whether the transcript is machine-generated isTranslatable : Boolean indicating whether the transcript can be translated |
- Add rate limitating
- Migrate from flask (WSGI) to FastAPI (ASGI)