Integrate YouTube transcript extraction into your applications with our simple REST API. Extract transcripts from videos, channels, and playlists with just a few lines of code.
10 free credits • No credit card required • API access included in all plans
Quick Start Example
bash# Get a single video transcript
curl -X POST "https://api.youtubetranscripts.fbetteo.com/api/v1/transcripts/single" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
"include_timestamps": false
}'
# Download entire channel (async)
curl -X POST "https://api.youtubetranscripts.fbetteo.com/api/v1/transcripts/channel" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "@mkbhd",
"max_videos": 10,
"options": {
"include_timestamps": false,
"include_video_title": true
}
}'Built for developers who need reliable, fast, and scalable transcript extraction
Parallel processing and background jobs deliver transcripts from entire channels in under a minute.
Enterprise-grade security with API key authentication and rate limiting. 99.9% uptime SLA.
RESTful API with comprehensive documentation. Get started in minutes with examples in Python, JavaScript, and more.
Pay only for what you use with our credit-based system. Scale from 100 to 100,000 transcripts seamlessly.
Detailed API reference, code examples, and error handling guides. Everything you need to integrate successfully.
Create, revoke, and monitor API keys from your dashboard. Track usage and manage multiple keys for different projects.
From AI training to content analysis, our API powers diverse applications
Train language models, build chatbots, or create AI assistants with large-scale YouTube transcript datasets.
Analyze content trends, perform sentiment analysis, or extract insights from video content at scale.
Build SaaS products, browser extensions, or workflow automation tools with transcript extraction capabilities.
Integrate transcript features into your mobile or desktop applications with our cross-platform API.
Get started in minutes with our intuitive API design
Include your API key in the X-API-Key header. Get your API key from the dashboard.
Authentication Header
textX-API-Key: YOUR_API_KEYhttps://api.youtubetranscripts.fbetteo.com/api/v1/transcripts/single
Get transcript for a single video (synchronous)
/transcripts/channel
Download channel transcripts (async, returns job_id)
/jobs/:job_id
Check job status and progress
/jobs/:job_id/download
Download completed job results
import requests
import time
API_KEY = "your_api_key"
BASE_URL = "https://api.youtubetranscripts.fbetteo.com/api/v1"
headers = {"X-API-Key": API_KEY}
# Get single video transcript (synchronous)
response = requests.post(
f"{BASE_URL}/transcripts/single",
headers=headers,
json={
"video_url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
"include_timestamps": False
}
)
if response.status_code == 200:
transcript = response.text
print(transcript)
# Download channel (asynchronous)
response = requests.post(
f"{BASE_URL}/transcripts/channel",
headers=headers,
json={
"channel": "@mkbhd",
"max_videos": 10,
"options": {
"include_timestamps": False,
"include_video_title": True
}
}
)
if response.status_code == 200:
data = response.json()
job_id = data["job_id"]
# Check job status
while True:
status = requests.get(
f"{BASE_URL}/jobs/{job_id}",
headers=headers
).json()
if status["status"] == "completed":
# Download results
download_url = f"{BASE_URL}/jobs/{job_id}/download"
print(f"Download: {download_url}")
break
time.sleep(5) # Poll every 5 secondsconst API_KEY = "your_api_key";
const BASE_URL = "https://api.youtubetranscripts.fbetteo.com/api/v1";
const headers = { "X-API-Key": API_KEY };
// Get single video transcript (synchronous)
const response = await fetch(
`${BASE_URL}/transcripts/single`,
{
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
video_url: "https://youtube.com/watch?v=dQw4w9WgXcQ",
include_timestamps: false
})
}
);
if (response.ok) {
const transcript = await response.text();
console.log(transcript);
}
// Download channel (asynchronous)
const channelResponse = await fetch(
`${BASE_URL}/transcripts/channel`,
{
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
channel: "@mkbhd",
max_videos: 10,
options: {
include_timestamps: false,
include_video_title: true
}
})
}
);
if (channelResponse.ok) {
const data = await channelResponse.json();
const jobId = data.job_id;
// Poll for completion
const checkStatus = async () => {
const status = await fetch(
`${BASE_URL}/jobs/${jobId}`,
{ headers }
).then(r => r.json());
if (status.status === "completed") {
console.log(`Download: ${BASE_URL}/jobs/${jobId}/download`);
} else {
setTimeout(checkStatus, 5000);
}
};
checkStatus();
}API access is included in all plans. Pay only for the transcripts you extract.
1 Credit
= 1 Video Transcript
10 Free
Credits to Get Started
All Plans
Include Full API Access
Sign up now and get 10 free credits to test the API. No credit card required.
Questions? Email [email protected]
Follow me on @franbetteo
Not affiliated with YouTube or Google.
© 2025 downloadyoutubetranscripts.com