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
- Python 3.8+
- A ScriptBase API key (sign up free)
Installation
Install the requests library if you haven't already:
pip install requestsBasic 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
- Explore the API Reference for all available endpoints
- Learn about batch processing for large-scale extraction
- Check out transcript formats for detailed format documentation