Getting Started with Transcript Bunny

Welcome to Transcript Bunny! Get fast, accurate transcripts from any YouTube video in seconds.

What is Transcript Bunny?

Transcript Bunny is a powerful tool that extracts transcripts from YouTube videos instantly. Whether you're a content creator, researcher, student, or developer, we make it easy to get accurate transcripts with timestamps, AI summaries, and more.

Key Features

  • Instant Transcripts: Get transcripts in seconds with accurate timestamps
  • AI Summaries: Generate structured summaries with key points and takeaways
  • Chat with Videos: Ask questions about the video content using AI
  • Multiple Formats: Download as TXT, JSON, or SRT subtitle files
  • API Access: Integrate transcripts into your applications
  • Click-to-Jump: Click any timestamp to jump to that moment in the video

Quick Start

  1. 1. Sign Up: Create a free account and get 15 credits to start
  2. 2. Paste URL: Copy any YouTube video URL and paste it into the dashboard
  3. 3. Get Transcript: Your transcript appears instantly with timestamps
  4. 4. Use AI Features: Generate summaries or chat with the video content
  5. 5. Download: Export in your preferred format (TXT, JSON, SRT)

Creating Transcripts

How to Create a Transcript

  1. Navigate to Dashboard: Go to your dashboard from the main navigation
  2. Paste YouTube URL: In the "Create New Transcript" section, paste any YouTube video URL. Supported formats:
    • https://www.youtube.com/watch?v=VIDEO_ID
    • https://youtu.be/VIDEO_ID
    • https://m.youtube.com/watch?v=VIDEO_ID
  3. Click Create: Hit the "Create Transcript" button and your transcript will be processed
  4. View Progress: Processing usually takes 5-15 seconds depending on video length

Credit Usage

Each transcript costs 1 credit. Failed transcripts don't consume credits.

Why Might a Transcript Fail?

  • Video doesn't have captions/subtitles enabled
  • Video is private or age-restricted
  • Channel has disabled transcript access
  • Temporary service issues

Managing Your Transcripts

Viewing Transcripts

Navigate to the Transcripts page to see all your transcripts. You can:

  • Search by video title or channel name
  • Filter by status (completed, processing, queued, failed)
  • Filter by channel
  • Switch between grid and list view
  • Click any transcript to view the full content

Click-to-Jump Feature

When viewing a transcript, you can click any timestamp to jump directly to that moment in the video. This makes it easy to:

  • Navigate to specific sections quickly
  • Verify transcript accuracy
  • Create video clips or highlights
  • Take notes with precise timestamps

Status Indicators

Completed Transcript is ready to view
Processing Currently being transcribed
Queued Waiting in queue to be processed
Failed Transcript couldn't be generated (no credit charged)

AI-Powered Features

AI Summary

Generate a structured summary of any video transcript with key points, main topics, and takeaways.

How to Use:

  1. Open any completed transcript
  2. Click the "AI Summary" tab
  3. The AI will analyze the content and generate a summary (10-15 seconds)
  4. Review the structured summary with key points and takeaways

What You Get:

  • Main topics and themes
  • Key points and insights
  • Important takeaways
  • Actionable conclusions

Pro Tip

AI summaries are perfect for long videos, lectures, or tutorials where you need a quick overview.

Chat with Video AI

Ask questions about the video content and get intelligent answers based on the transcript.

How to Use:

  1. Open any completed transcript
  2. Click the "Chat with Video AI" tab
  3. Type your question in the chat input
  4. Get instant answers based on the video content

Example Questions:

  • "What are the main points discussed?"
  • "Explain the concept of X mentioned in the video"
  • "What solutions were proposed for Y?"
  • "Summarize the section about Z"

Downloading Transcripts

Export your transcripts in multiple formats for different use cases.

Available Formats

TXT Format

Plain text format with timestamps. Perfect for:

  • Note-taking apps
  • Text editors
  • Documentation
  • Blog posts

JSON Format

Structured data format with metadata. Perfect for:

  • Developers and APIs
  • Data analysis
  • Custom applications
  • Integration workflows

SRT Format

Standard subtitle format. Perfect for:

  • Video editing software
  • Subtitle files
  • Media players
  • Accessibility

Plans & Billing

Available Plans

Free

$0/month
  • 15 credits/month
  • Basic features
  • AI summaries
POPULAR

Starter

$9/month
  • 100 credits/month
  • All features
  • API access

Pro

$29/month
  • 500 credits/month
  • Priority support
  • Full API access

Business

$99/month
  • 2000 credits/month
  • Priority support
  • Advanced API

Annual Billing

Save 33% with annual billing - pay for 8 months, get 12 months!

How to Upgrade

  1. 1. Navigate to Billing page
  2. 2. Choose your plan (monthly or annual)
  3. 3. Click "Upgrade to [Plan Name]"
  4. 4. Complete checkout with Polar
  5. 5. Start using your new credits immediately

Managing Your Subscription

From the Billing page, you can:

  • View current plan and usage
  • See billing period and renewal date
  • Upgrade or downgrade plans
  • Update payment method
  • Cancel subscription (access billing portal)

API Authentication

Learn how to authenticate your API requests with Transcript Bunny.

API Keys

Transcript Bunny uses API keys to authenticate requests. All API requests must include your API key in the Authorization header.

Paid Plan Required

API keys are only available on paid plans (Starter, Pro, or Business).

Creating an API Key

  1. 1. Upgrade to a paid plan from the Billing page
  2. 2. Navigate to API Keys page
  3. 3. Enter a name for your API key
  4. 4. Click "Create API Key"
  5. 5. Copy your key immediately (it won't be shown again)

API Key Format: Your API keys will look like this:

tb_live_...

API Key Management

You can revoke your API keys at any time from the API Keys page. API keys use your account credits.

Using Your API Key

Include your API key in the Authorization header of every request:

Authorization: Bearer YOUR_API_KEY

Security Best Practices

  • • Never share your API keys publicly
  • • Store keys securely as environment variables
  • • Rotate keys regularly
  • • Delete unused keys immediately

Get Transcript Endpoint

Retrieve transcripts for any YouTube video programmatically.

Endpoint

POST https://transcriptbunny.com/api/v1/transcribe

Request Body

{
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}

Parameters

Parameter Type Required Description
videoUrl string Yes YouTube video URL

Code Examples

const response = await fetch('https://transcriptbunny.com/api/v1/transcribe', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
videoUrl: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://transcriptbunny.com/api/v1/transcribe',
headers={
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
json={
'videoUrl': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
}
)
data = response.json()
print(data)
<?php
$ch = curl_init('https://transcriptbunny.com/api/v1/transcribe');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer YOUR_API_KEY'
],
CURLOPT_POSTFIELDS => json_encode([
'videoUrl' => 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
])
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
print_r($data);
?>
require 'net/http'
require 'json'
uri = URI('https://transcriptbunny.com/api/v1/transcribe')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_KEY'
request.body = { videoUrl: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' }.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts data
curl -X POST https://transcriptbunny.com/api/v1/transcribe \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'

Response Format

Understanding the API response structure.

Success Response

When a transcript is successfully retrieved, you'll receive a 200 OK (cached) or 201 Created (newly fetched) response:

{
"transcript": {
"text": "Hello, welcome to this video. This is a sample transcript.",
"segments": [
{
"text": "Hello, welcome to this video.",
"start": 0.0,
"end": 3.5,
"timestamp": "00:00"
},
{
"text": "This is a sample transcript.",
"start": 3.5,
"end": 6.2,
"timestamp": "00:03"
}
]
},
"meta": {
"source": "live",
"fetchedAt": "2025-01-15T10:30:00Z"
},
"cached": false,
"creditsCharged": 1,
"creditsRemaining": 99
}

Response Fields

Field Type Description
transcript object Transcript data with segments
transcript.text string Complete transcript as plain text
transcript.segments array Array of transcript segments with timestamps
meta object Metadata about the transcript
meta.source string Source of transcript: "live" (newly fetched) or "cached" (from cache)
meta.fetchedAt string ISO 8601 timestamp when transcript was fetched
cached boolean Whether this transcript was served from cache
creditsCharged number Number of credits charged for this request (0 if cached from previous request)
creditsRemaining number Your remaining credits after this request (only included when credits are charged)

Segment Object Structure

Field Type Description
text string Transcript text for this segment
start number Start time in seconds
end number End time in seconds
timestamp string Formatted timestamp (MM:SS)

Special Cases

Previously Requested Video

If you've already transcribed a video, you'll receive a 200 OK response with no credit charge:

{
"transcript": { ... },
"meta": { ... },
"cached": true,
"creditsCharged": 0,
"message": "You previously requested this video (no charge)"
}

Error Handling

Learn about error codes and how to handle them.

Error Response Format

When an error occurs, the API returns an appropriate HTTP status code and error details:

{
"error": "Insufficient credits",
"remaining": 0,
"upgrade": "https://transcriptbunny.com/pricing"
}

Common Error Codes

401 Unauthorized

Invalid or missing API key.

{
"error": "Missing or invalid Authorization header",
"docs": "https://transcriptbunny.com/docs"
}

Or: { "error": "Invalid API key" }

400 Bad Request

Invalid YouTube URL or missing parameters.

{
"error": "Invalid YouTube URL",
"message": "Please provide a valid YouTube video URL"
}

Or validation error: { "success": false, "error": { "issues": [...] } }

402 Payment Required

Insufficient credits to process the request.

{
"error": "Insufficient credits",
"remaining": 0,
"upgrade": "https://transcriptbunny.com/pricing"
}

403 Forbidden

API access not available (free plan users).

{
"error": "API access not available",
"message": "API access requires a paid plan. Upgrade to Starter or higher.",
"upgrade": "https://transcriptbunny.com/billing"
}

404 Not Found

Video not found or transcript not available.

{ "error": "Transcript not found" }

Or: { "error": "Transcript not available", "message": "...", "creditsCharged": 0 }

429 Too Many Requests

Rate limit exceeded.

{
"error": "Rate limit exceeded",
"limit": 50,
"window": "60 seconds",
"retryAfter": 60,
"upgrade": "https://transcriptbunny.com/billing"
}

500 Internal Server Error

Server error processing your request.

{ "error": "Internal server error" }

Best Practices

  • Always check the HTTP status code first
  • Implement exponential backoff for rate limit errors
  • Log error responses for debugging
  • Check credits before making requests
  • Handle network errors gracefully

Rate Limits

Understanding API rate limits and best practices.

Rate Limit Rules

To ensure fair usage and system stability, we implement per-minute rate limits that vary by plan:

Starter

50
requests per minute

Pro

100
requests per minute

Business

200
requests per minute

Credit Limits

Rate limits are separate from your credit allocation. Even with available credits, you must respect rate limits.

Response Headers

Successful API responses include rate limit information in the headers:

X-RateLimit-Limit: 50
X-RateLimit-Remaining: 48
X-RateLimit-Reset: 1609459200000

Note: Values shown are for Starter plan. Limits vary by plan. Headers are included on successful responses (200 OK). Rate limit errors (429) return error details in the JSON response body instead.

Header Descriptions

Header Description
X-RateLimit-Limit Maximum requests allowed in current window
X-RateLimit-Remaining Requests remaining in current window
X-RateLimit-Reset Unix timestamp in milliseconds when the rate limit resets

Handling Rate Limits

Example code for handling rate limits with exponential backoff:

async function fetchWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status === 429) {
// Rate limit info is in response body
const error = await response.json();
const retryAfter = error.retryAfter || 60; // seconds until window resets
console.log(`Rate limited. Waiting ${retryAfter} seconds...`);
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
continue;
}
return response;
}
throw new Error('Max retries exceeded');
}

Note: Rate limit errors return a 429 status with error details in the JSON response body, including retryAfter (seconds until the rate limit window resets).

Automation & Integration Tools

Use Transcript Bunny with popular automation platforms.

No-Code Integrations

Connect Transcript Bunny to your favorite automation tools without writing code.

Zapier

Integrate with 5000+ apps using Zapier's Webhooks module.

Quick Setup:

  1. 1. Create a new Zap in Zapier
  2. 2. Choose "Webhooks by Zapier" as action
  3. 3. Select "POST" method
  4. 4. URL: https://transcriptbunny.com/api/v1/transcribe
  5. 5. Add header: Authorization: Bearer YOUR_API_KEY
  6. 6. Body: {"videoUrl": "YOUR_VIDEO_URL"}

Make (Integromat)

Build advanced automations with Make's visual builder.

Quick Setup:

  1. 1. Create a new scenario in Make
  2. 2. Add "HTTP" module
  3. 3. Choose "Make a request"
  4. 4. Method: POST
  5. 5. URL: https://transcriptbunny.com/api/v1/transcribe
  6. 6. Headers: Authorization with Bearer token
  7. 7. Body: JSON with video URL

n8n

Self-hosted workflow automation with full API control.

Quick Setup:

  1. 1. Create new workflow in n8n
  2. 2. Add "HTTP Request" node
  3. 3. Method: POST
  4. 4. URL: https://transcriptbunny.com/api/v1/transcribe
  5. 5. Authentication: Header Auth
  6. 6. Header Name: Authorization
  7. 7. Header Value: Bearer YOUR_API_KEY

Pipedream

Low-code integration platform with built-in triggers.

Quick Setup:

  1. 1. Create new workflow in Pipedream
  2. 2. Add HTTP request step
  3. 3. Configure POST request
  4. 4. Add Authorization header
  5. 5. Use Node.js code for advanced parsing

Example Workflows

Content Creation Workflow

Trigger: New video uploaded to YouTube → Get transcript → Generate summary with ChatGPT → Create blog post draft → Save to Notion

Educational Workflow

Trigger: New video in playlist → Get transcript → Extract key concepts → Create flashcards → Add to Anki deck

Research Workflow

Trigger: Manual trigger with URL → Get transcript → Analyze with AI → Extract citations → Save to Zotero