tutorial·ScriptBase Team

How to Extract YouTube Transcripts with Python

Learn how to use the ScriptBase API to extract word-level transcripts from YouTube videos using Python.

Prerequisites

Installation

Install the requests library if you haven't already:

pip install requests

Basic Usage

Here's how to get a transcript from any YouTube video:

import requests

API_KEY = "your_api_key_here"
VIDEO_URL = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

response = requests.post(
    "https://api.scriptbase.app/v1/transcripts",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={"url": VIDEO_URL},
)

data = response.json()
print(data["transcript"])

Getting Word-Level Timestamps

ScriptBase returns word-level timestamps by default. Each word includes its start and end time:

for word in data["words"]:
    print(f"[{word['start']:.2f}s - {word['end']:.2f}s] {word['text']}")

Choosing Output Formats

You can request transcripts in different formats:

# Get SRT subtitles
response = requests.post(
    "https://api.scriptbase.app/v1/transcripts",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "url": VIDEO_URL,
        "format": "srt",
    },
)

Supported formats: json, text, srt, vtt, markdown.

Batch Processing

Need transcripts for multiple videos? Use the batch endpoint:

response = requests.post(
    "https://api.scriptbase.app/v1/transcripts/batch",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "urls": [
            "https://www.youtube.com/watch?v=video1",
            "https://www.youtube.com/watch?v=video2",
            "https://www.youtube.com/watch?v=video3",
        ]
    },
)

Next Steps