API Keys
API রেফারেন্স

ট্রান্সক্রিপ্ট V2

V2 হলো সুবিন্যস্ত, ব্যবহারকারী-মালিকানাধীন ট্রান্সক্রিপ্ট মডেল। এটি দ্রুত ক্যাশ হিট ও সামঞ্জস্যপূর্ণ রেসপন্সকে অগ্রাধিকার দেয়, আর আপনি কোনো ভাষা না চাইলে অপ্রত্যাশিত অনুবাদ করে না।

বেস URLhttps://www.youtubetranscript.dev/api/v2

আপনি যা করতে পারেন

নতুন: প্রতিটি ট্রান্সক্রিপ্ট উৎসের জন্য একটি mode প্যারামিটার

source ও allow_asr একসাথে ব্যবহার না করে auto, captions_only, human_captions_only, speech_to_text_only থেকে বেছে নিন। বিদ্যমান অনুরোধগুলো আগের মতোই কাজ করবে। কীভাবে কাজ করে দেখুন

OpenAPI স্পেসিফিকেশন

Postman, Insomnia-তে ইমপোর্ট করতে, ক্লায়েন্ট তৈরি করতে বা ChatGPT / Claude-এ পেস্ট করতে YAML ডাউনলোড করুন।

OpenAPI 3.0: V2 (প্রস্তাবিত)

একটি ভিডিও ট্রান্সক্রাইব করুন

একবারে একটি ভিডিওর জন্য দ্রুততম পথ। ক্যাপশন-ভিত্তিক ট্রান্সক্রিপ্ট কয়েক সেকেন্ডেই ফেরত আসে; ASR অ্যাসিঙ্ক্রোনাসভাবে চলে এবং /api/v2/jobs/{job_id} দিয়ে পোল করা হয়।

ভিডিও ট্রান্সক্রাইব করুন

Transcribe a single YouTube video. Returns immediately for caption-based videos. With mode=auto it falls back to ASR (async) when captions are unavailable: you get status processing and a job_id to poll at /api/v2/jobs/{job_id}, or the result is POSTed to webhook_url if you set one. Responses include the mode the request ran with.

POST/api/v2/transcribe
প্যারামিটার
videostringআবশ্যক

YouTube URL or 11-character video ID. Required unless upload_id is set.

upload_idstring

Transcribe an uploaded media file instead of a YouTube video (see /uploads). Forces the ASR path (mode must be omitted or speech_to_text_only); webhook_url required. The upload id is returned as video_id in results.

modeauto | captions_only | human_captions_only | speech_to_text_only

Where the transcript comes from (recommended). auto: captions first, speech-to-text (ASR) only if the video has none. captions_only: any captions, never ASR. human_captions_only: human-made captions only. speech_to_text_only: always transcribe the audio. auto and speech_to_text_only can charge ASR credits. Replaces source + allow_asr; cannot be combined with them. Note: mode=auto is not the same as legacy source=auto (captions only, which is mode=captions_only). When omitted, your account default from the API Dashboard applies: auto for accounts created from October 2026, captions_only for older accounts unless changed. ASR modes work without webhook_url: poll the returned job_id.

languageISO 639-1

Preferred transcript language (e.g. en). If unavailable, captions in another language may be returned: transcript.language reports the actual language.

sourceauto | manual | asr

Legacy, still supported: use mode instead. Default: auto. asr transcribes the audio (async, requires webhook_url).

allow_asrboolean

Legacy, still supported: use mode=auto instead. Falls back to ASR if captions fail.

formatobject

{ timestamp, paragraphs, words }: include extra structure in the transcript.

webhook_urluri

When set, ASR results are POSTed to your URL. Optional with mode (poll the job_id instead); required for legacy source=asr. Ignored by captions_only and human_captions_only, which never use ASR.

asr_optionsobject

Rich ASR config: language (+ codeSwitching, medicalMode, keyTerms), translateTo, speaker diarization (speakerLabels, speakerId + type/known values, multichannel, exact or min/max expected speakers), speech understanding (topics, summary, moderation, PII, profanity, sentiment), and formatting (punctuation, text formatting, filler words, custom date/phone/email patterns). Billable add-ons increase cost: preview with /transcribe/estimate. See the AsrOptions schema in the OpenAPI spec.

curl -X POST https://www.youtubetranscript.dev/api/v2/transcribe \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video": "dQw4w9WgXcQ",
    "mode": "auto",
    "language": "en",
    "format": { "timestamp": true, "paragraphs": true }
  }'
রেসপন্স (200)
{
  "request_id": "req_abc123",
  "status": "completed",
  "data": {
    "video_id": "dQw4w9WgXcQ",
    "video_title": "Example video",
    "transcript": {
      "text": "Welcome to this tutorial...",
      "language": "en",
      "source": "auto",
      "segments": [
        { "text": "Welcome to this tutorial.", "start": 0, "end": 2500 }
      ]
    }
  },
  "credits_used": 1,
  "mode": "auto"
}

খরচ অনুমান

Dry-run credit estimate. Returns the ASR base cost plus any add-on surcharge for the requested asr_options without creating a job or charging credits.

POST/api/v2/transcribe/estimate
প্যারামিটার
videostringআবশ্যক

YouTube URL or 11-character video ID.

modeauto | captions_only | human_captions_only | speech_to_text_only

Same values as /transcribe. Use speech_to_text_only (or auto) to preview the ASR cost.

sourceauto | manual | asr

Legacy, still supported: use mode instead. Defaults to asr for cost preview.

asr_optionsobject

Same shape as /transcribe. Add-on charges are prorated by duration.

curl -X POST https://www.youtubetranscript.dev/api/v2/transcribe/estimate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video": "dQw4w9WgXcQ",
    "mode": "speech_to_text_only",
    "asr_options": {
      "speakerLabels": true,
      "summarization": true,
      "translateTo": "es"
    }
  }'
রেসপন্স (200)
{
  "request_id": "req_abc123",
  "video_id": "dQw4w9WgXcQ",
  "source": "asr",
  "mode": "speech_to_text_only",
  "duration_seconds": 213,
  "duration_minutes": 4,
  "max_duration_minutes": 480,
  "exceeds_max_duration": false,
  "base_credits": 3,
  "addon_credits": 2,
  "estimated_credits": 5
}

জবের অবস্থা দেখুন

Poll a single transcription job. Use this for ASR jobs returned from /transcribe. Returns 202 while running and 200 when complete. Completed ASR jobs include asr_intelligence (summary, topics, sentiment, etc.) when those options were enabled.

GET/api/v2/jobs/{job_id}
প্যারামিটার
job_idpathআবশ্যক

Identifier returned in the original transcribe response.

include_segmentsboolean

Include segment-level timestamps in the transcript payload.

include_paragraphsboolean

Include paragraph groupings.

include_wordsboolean

Include word-level timestamps (ASR only).

curl -X GET https://www.youtubetranscript.dev/api/v2/jobs/JOB_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "request_id": "req_abc123",
  "status": "completed",
  "data": {
    "video_id": "dQw4w9WgXcQ",
    "transcript": {
      "text": "Welcome to this tutorial...",
      "language": "en",
      "source": "asr",
      "segments": [{ "text": "Welcome to this tutorial.", "start": 0, "end": 2500 }]
    }
  },
  "credits_used": 6
}

নিজের মিডিয়া আপলোড করুন

ASR পাইপলাইনের মাধ্যমে নিজের অডিও বা ভিডিও ফাইল ট্রান্সক্রাইব করুন। তিনটি ধাপ: আপলোড রেজিস্টার করুন, bytes signed URL-এ PUT করুন, finalize করুন: তারপর upload_id দিয়ে /transcribe কল করুন। ফলাফল আপনার webhook-এ আসে এবং যেকোনো ASR জবের মতো পোল করা যায়।

ফাইল আপলোড করুন

Register an audio/video file upload and get a signed URL. PUT the raw file bytes to signed_url (with the file's Content-Type), finalize via /uploads/{upload_id}/complete, then transcribe with upload_id on /transcribe. Max 2GB and 8 hours per file.

POST/api/v2/uploads
প্যারামিটার
filenamestringআবশ্যক

Original filename. The extension is preserved for content sniffing.

mime_typestringআবশ্যক

Must start with audio/ or video/ (e.g. audio/mpeg, video/mp4).

size_bytesintegerআবশ্যক

File size in bytes. Max 2147483648 (2GB).

duration_secintegerআবশ্যক

Media duration in seconds. Max 28800 (8 hours). Used for the ASR credit estimate.

curl -X POST https://www.youtubetranscript.dev/api/v2/uploads \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "interview.mp3",
    "mime_type": "audio/mpeg",
    "size_bytes": 48211234,
    "duration_sec": 1820
  }'

# Then PUT the raw file bytes to the returned signed_url:
curl -X PUT "SIGNED_URL_FROM_RESPONSE" \
  -H "Content-Type: audio/mpeg" \
  --data-binary @interview.mp3

# Then finalize:
curl -X POST https://www.youtubetranscript.dev/api/v2/uploads/UPLOAD_ID/complete \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "upload_id": "up_a1B2c3D4",
  "bucket": "asr-media",
  "path": "user-uuid/up_a1B2c3D4/interview.mp3",
  "token": "eyJhbGciOiJIUzI1NiJ9...",
  "signed_url": "https://api.youtubetranscript.dev/storage/v1/object/upload/sign/asr-media/...?token=..."
}

আপলোড সম্পন্ন করুন

Finalize an upload after the PUT to signed_url succeeds. Verifies the file exists in storage and marks it ready. The upload can then be transcribed by passing upload_id to /transcribe (source="asr", webhook_url required).

POST/api/v2/uploads/{upload_id}/complete
প্যারামিটার
upload_idpathআবশ্যক

Upload id returned by POST /uploads.

curl -X POST https://www.youtubetranscript.dev/api/v2/uploads/up_a1B2c3D4/complete \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "upload_id": "up_a1B2c3D4",
  "status": "uploaded",
  "filename": "interview.mp3",
  "duration_sec": 1820
}

ব্যাচ ট্রান্সক্রিপশন

একটি রিকোয়েস্টেই অনেক ভিডিও ট্রান্সক্রাইব করুন, তারপর পোল করুন বা webhook-এর মাধ্যমে ফলাফল নিন।

অনেক ভিডিও ট্রান্সক্রাইব করুন

Submit up to 3,000 videos in one request. Returns within 2 seconds; poll the returned poll_url or wait for the webhook.

POST/api/v2/batch
প্যারামিটার
video_idsstring[]আবশ্যক

Up to 3,000 IDs depending on plan. Free = 10, Basic = 500, Pro = 1,500, Business = 3,000.

languageISO 639-1

Preferred language for every video.

modeauto | captions_only | human_captions_only | speech_to_text_only

Where the transcript comes from (recommended). auto: captions first, speech-to-text (ASR) only if the video has none. captions_only: any captions, never ASR. human_captions_only: human-made captions only. speech_to_text_only: always transcribe the audio. auto and speech_to_text_only can charge ASR credits. Replaces source + allow_asr; cannot be combined with them. Note: mode=auto is not the same as legacy source=auto (captions only, which is mode=captions_only). For batch, auto and speech_to_text_only require webhook_url. When omitted, your API Dashboard default applies (an ASR default only when webhook_url is set).

sourceauto | manual | asr

Legacy, still supported: use mode instead. Default: auto. source=asr requires webhook_url.

allow_asrboolean

Legacy, still supported: use mode=auto instead. webhook_url is required.

formatobject

{ timestamp, paragraphs, words }: applied to every result.

webhook_urluri

Delivers the completed batch payload. Required for mode=auto or speech_to_text_only (legacy: allow_asr=true or source=asr).

asr_optionsobject

Rich ASR config applied to every video transcribed via ASR (same shape as /transcribe). Billable add-ons apply per video.

curl -X POST https://www.youtubetranscript.dev/api/v2/batch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video_ids": ["dQw4w9WgXcQ", "jNQXAC9IVRw"],
    "mode": "auto",
    "webhook_url": "https://your-domain.com/webhook",
    "format": { "timestamp": true }
  }'
রেসপন্স (202)
{
  "batch_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "processing",
  "results": [],
  "summary": { "total": 2, "succeeded": 0, "failed": 0, "processing": 2 },
  "poll_url": "https://www.youtubetranscript.dev/api/v2/batch/550e8400-e29b-41d4-a716-446655440000",
  "created_at": "2026-05-15T10:00:00Z"
}

ব্যাচের অবস্থা দেখুন

Check the status of a batch. Returns 202 while processing and 200 when results are ready. Stop polling once status is "completed", "partial", or "failed": finished batches never change, and re-fetching one more than 60 times in 24h returns 429 with a Retry-After header.

GET/api/v2/batch/{batch_id}
প্যারামিটার
batch_idpathআবশ্যক

Batch identifier returned from POST /batch.

curl -X GET https://www.youtubetranscript.dev/api/v2/batch/BATCH_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "batch_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "summary": { "total": 2, "succeeded": 2, "failed": 0, "processing": 0 },
  "results": [
    { "request_id": "req_1", "status": "completed", "data": { "video_id": "dQw4w9WgXcQ" } },
    { "request_id": "req_2", "status": "completed", "data": { "video_id": "jNQXAC9IVRw" } }
  ],
  "credits_used": 2,
  "webhook_delivered": true,
  "completed_at": "2026-05-15T10:04:00Z"
}

ট্রান্সক্রিপ্ট ও জব

সংরক্ষিত ট্রান্সক্রিপ্টের তালিকা দেখুন, আনুন, অনুবাদ করুন ও মুছুন, এবং async জবের তালিকা দেখুন। সব endpoint একই API-key অথেনটিকেশন গ্রহণ করে।

জবের তালিকা

List your transcription jobs, newest first. Filter by status and paginate. Use the returned job_id with GET /api/v2/jobs/{job_id} to fetch a transcript.

GET/api/v2/jobs
প্যারামিটার
pagequery

Page number (default 1).

limitquery

Items per page (default 50, max 100).

statusquery

completed | processing | failed | requires_asr_confirmation.

curl "https://www.youtubetranscript.dev/api/v2/jobs?status=processing&limit=25" \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "jobs": [
    {
      "job_id": "9c2...",
      "video_id": "dQw4w9WgXcQ",
      "video_title": "Example video",
      "language": "en",
      "source": "asr",
      "status": "processing",
      "error": null,
      "credits_used": 0,
      "created_at": "2026-07-06T12:00:00Z",
      "started_at": "2026-07-06T12:00:01Z",
      "completed_at": null
    }
  ],
  "count": 1,
  "pagination": { "page": 1, "limit": 25, "total": 1, "totalPages": 1, "hasMore": false }
}

ট্রান্সক্রিপ্টের তালিকা

List stored transcripts with search, status, language, and date filters. Metadata only (no full text) unless include_segments=true.

GET/api/v2/transcripts
প্যারামিটার
pagequery

Page number (default 1).

limitquery

Items per page (default 50, max 100).

searchquery

Match video id, title, or transcript text.

statusquery

Filter by status; omit for succeeded.

languagequery

Filter by language code.

date_fromquery

ISO date-time lower bound.

date_toquery

ISO date-time upper bound.

include_segmentsquery

Include segments in each item.

curl "https://www.youtubetranscript.dev/api/v2/transcripts?page=1&limit=50&status=succeeded" \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "history": [
    {
      "id": "b1f...",
      "video_id": "dQw4w9WgXcQ",
      "video_title": "Example video",
      "language": "en",
      "source_kind": "auto",
      "status": "succeeded",
      "created_at": "2026-07-06T12:00:00Z",
      "word_count": 1234,
      "segment_count": 88,
      "credits_used": 1
    }
  ],
  "count": 1,
  "pagination": { "page": 1, "limit": 50, "total": 1, "totalPages": 1, "hasMore": false }
}

ট্রান্সক্রিপ্ট পান

Fetch the best owned transcript for a video, including asr_intelligence (summary, topics, sentiment, etc.), plus summary and mind_map when generated.

GET/api/v2/transcripts/{video_id}
প্যারামিটার
video_idpathআবশ্যক

YouTube 11-character video ID.

idquery

Specific transcript/job id.

languagequery

Preferred language version.

sourcequery

auto | manual | asr.

include_timestampsquery

Include segments (default true).

curl "https://www.youtubetranscript.dev/api/v2/transcripts/dQw4w9WgXcQ?language=en" \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "id": "b1f...",
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "text": "Welcome to this tutorial...",
  "segments": [{ "text": "Welcome to this tutorial.", "start": 0, "end": 2500 }],
  "has_timestamps": true,
  "source_kind": "asr",
  "video_title": "Example video",
  "summary": null,
  "mind_map": null,
  "asr_intelligence": {
    "summary": "A short overview of the video...",
    "topics": [{ "text": "Technology", "relevance": 0.92 }],
    "sentiment": [{ "text": "Great tutorial", "sentiment": "POSITIVE" }]
  }
}

ট্রান্সক্রিপ্ট অনুবাদ করুন

Translate an owned transcript into a target language using YouTube captions or the AI provider. Returns free if you already own the translation.

POST/api/v2/transcripts/{video_id}/translate
প্যারামিটার
video_idpathআবশ্যক

YouTube 11-character video ID.

target_languageISO 639-1আবশ্যক

Language to translate into.

source_languageISO 639-1

Source transcript language to translate from.

providerai | youtube

Translation provider.

allow_ai_fallbackboolean

Fall back to AI when YouTube has no translation.

curl -X POST "https://www.youtubetranscript.dev/api/v2/transcripts/dQw4w9WgXcQ/translate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "target_language": "es", "provider": "ai" }'
রেসপন্স (200)
{
  "success": true,
  "message": "Translation completed",
  "language": "es",
  "credits_used": 4,
  "provider_used": "ai"
}

উপলব্ধ ভাষা

List the languages you already own for a video plus the YouTube translation targets available for it.

GET/api/v2/transcripts/{video_id}/languages
প্যারামিটার
video_idpathআবশ্যক

YouTube 11-character video ID.

include_youtube_defaultquery

Include YouTube translation targets (default true).

curl "https://www.youtubetranscript.dev/api/v2/transcripts/dQw4w9WgXcQ/languages" \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "video_id": "dQw4w9WgXcQ",
  "languages": ["en", "es"],
  "youtube_translation_languages": ["fr", "de", "ja"]
}

ট্রান্সক্রিপ্ট মুছুন

Delete owned transcript(s) for a video. Optional language/source query params narrow the deletion; otherwise every language/source is removed. Also deletes bulk by id via POST /api/v2/transcripts/bulk-delete.

DELETE/api/v2/transcripts/{video_id}
প্যারামিটার
video_idpathআবশ্যক

YouTube 11-character video ID.

languagequery

Only delete this language.

sourcequery

Only delete this source (auto | manual | asr).

curl -X DELETE "https://www.youtubetranscript.dev/api/v2/transcripts/dQw4w9WgXcQ" \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "success": true,
  "deleted": 2,
  "message": "Successfully deleted 2 transcripts"
}

প্লেলিস্ট

প্লেলিস্টকে ভিডিও ID-তে রূপান্তর করুন, /api/v2/batch দিয়ে ট্রান্সক্রাইব করুন, তারপর প্লেলিস্ট ব্যাচ ও হিস্ট্রি দেখুন।

প্লেলিস্টের ভিডিও

Resolve a YouTube playlist by URL or ID into its video list (metadata only). Pair the returned video_id values with /api/v2/batch to transcribe them.

POST/api/v2/playlists/resolveপেইড প্ল্যান
প্যারামিটার
playlist_urlstring

Playlist URL. One of playlist_url or playlist_id is required.

playlist_idstring

Playlist ID (the list= value).

limitinteger

Max videos returned (1-100).

curl -X POST https://www.youtubetranscript.dev/api/v2/playlists/resolve \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "playlist_url": "https://www.youtube.com/playlist?list=PLxxxx", "limit": 100 }'
রেসপন্স (200)
{
  "playlist_id": "PLxxxx",
  "title": "My playlist",
  "total": 42,
  "truncated": false,
  "items": [
    { "video_id": "dQw4w9WgXcQ", "title": "Example video" }
  ]
}

প্লেলিস্ট জবের অবস্থা

Fetch a playlist batch and per-video transcription job status. For overall batch progress, poll GET /api/v2/batch/{batch_id}.

GET/api/v2/playlists/{playlist_id}
প্যারামিটার
playlist_idpathআবশ্যক

Batch ID returned from /playlists/resolve.

curl "https://www.youtubetranscript.dev/api/v2/playlists/{playlist_batch_id}" \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "playlist": { "id": "3f1...", "playlist_id": "PLxxxx", "title": "My playlist" },
  "videos": [
    { "video_id": "dQw4w9WgXcQ", "video_title": "Example video", "status": "succeeded" }
  ]
}

সাম্প্রতিক প্লেলিস্ট জব

List recent playlist batches for the authenticated user.

GET/api/v2/playlists/history
curl "https://www.youtubetranscript.dev/api/v2/playlists/history" \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "history": [
    { "id": "3f1...", "playlist_id": "PLxxxx", "title": "My playlist", "total_videos": 42 }
  ],
  "count": 1
}

চ্যানেল

চ্যানেল ট্রান্সক্রিপশন ফ্লো:1. POST /api/v2/channels/resolve: চ্যানেলের আপলোডগুলো আনুন (শুধু ভিডিও মেটাডেটা)।2. POST /api/v2/batch: ট্রান্সক্রিপশন শুরু করতে ফেরত আসা video_id মানগুলো পাঠান। কাজ শেষে ফলাফল পেতে একটি webhook_url ব্যবহার করুন।3. GET /api/v2/batch/{batch_id}: সামগ্রিক অগ্রগতি ও সমন্বিত ফলাফলের জন্য ব্যাচ পোল করুন।4. GET /api/v2/channels/{channel_id}: প্রতিটি ভিডিওর জব স্ট্যাটাসসহ চ্যানেল ব্যাচ আনুন; /channels/history আগের চ্যানেল ব্যাচগুলোর তালিকা দেয়।

চ্যানেলের ভিডিও

Fetch the uploads of a YouTube channel by URL, channel ID, or @handle. Returns video metadata only: pair the returned video_id values with /api/v2/batch to transcribe them.

POST/api/v2/channels/resolveপেইড প্ল্যান
প্যারামিটার
channel_urlstringআবশ্যক

YouTube channel URL, channel ID, or @handle. One of channel_url, channel_id, or handle must be provided. Handles are the public ID without the @ (for https://www.youtube.com/@jawed, the ID is jawed).

limitinteger

Maximum uploads returned. Defaults to the plan maximum.

Per-request cap: Basic 500 videos · Pro 1,500 videos · Business 3,000 videos. Monthly job cap: Basic 3 · Pro 8 · Business unlimited.

রেট লিমিট

Plan-based: Free 1 req/s · Basic 25 req/s · Pro 50 req/s · Business 100 req/s. Exceeding the limit returns 429 with a Retry-After header.

curl -X POST https://www.youtubetranscript.dev/api/v2/channels/resolve \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "handle": "@youtube",
    "limit": 50
  }'
রেসপন্স (200)
{
  "channel_id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
  "channel_title": "YouTube",
  "subscriber_count": 42000000,
  "video_count": 1200,
  "total": 1,
  "truncated": false,
  "items": [
    {
      "video_id": "dQw4w9WgXcQ",
      "title": "Latest upload",
      "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
      "published_at": "2026-05-01T12:00:00Z",
      "duration_seconds": 420
    }
  ]
}

চ্যানেল জবের অবস্থা

Fetch a channel batch and the per-video transcription job status. For overall batch status (counts + progress), poll GET /api/v2/batch/{batch_id} instead: use this endpoint when you also need each video's individual job state.

GET/api/v2/channels/{channel_id}
প্যারামিটার
channel_idpathআবশ্যক

Batch ID returned from /channels/resolve.

curl -X GET https://www.youtubetranscript.dev/api/v2/channels/CHANNEL_BATCH_ID \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "channel": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "channel_id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
    "channel_title": "YouTube",
    "total_videos": 2,
    "completed_count": 1,
    "failed_count": 0,
    "status": "processing",
    "created_at": "2026-05-15T10:00:00Z"
  },
  "videos": [
    {
      "id": "job_123",
      "video_id": "dQw4w9WgXcQ",
      "video_title": "Latest upload",
      "status": "succeeded",
      "created_at": "2026-05-15T10:00:00Z",
      "finished_at": "2026-05-15T10:00:10Z"
    }
  ]
}

সাম্প্রতিক চ্যানেল জব

List recent channel batches for the authenticated user.

GET/api/v2/channels/history
প্যারামিটার
limitquery

Max items (default 50, max 100).

curl -X GET "https://www.youtubetranscript.dev/api/v2/channels/history?limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"
রেসপন্স (200)
{
  "history": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "channel_id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
      "channel_title": "YouTube",
      "total_videos": 25,
      "completed_count": 25,
      "failed_count": 0,
      "status": "completed",
      "created_at": "2026-05-15T10:00:00Z",
      "completed_at": "2026-05-15T10:12:00Z"
    }
  ],
  "count": 1
}

ইন্টিগ্রেশন

অফিশিয়াল SDK, Claude ও Cursor-এর জন্য একটি MCP সার্ভার, একটি কাস্টম GPT, এবং Make ও n8n-এর জন্য তৈরি টেমপ্লেট।

MCP serverClaude · Cursor
Repo

YouTube Transcript MCP সার্ভার Claude Desktop, Cursor বা যেকোনো MCP-সামঞ্জস্যপূর্ণ ক্লায়েন্টে যুক্ত করুন। এতে ভিডিও ট্রান্সক্রাইব, বিদ্যমান ট্রান্সক্রিপ্ট আনা ও ব্যবহার যাচাইয়ের টুল যুক্ত হয়।

ইনস্টল ও কনফিগার করুন
claude mcp add --transport http youtubetranscript https://mcp.youtubetranscript.dev --header "x-api-token: YOUR_API_KEY"
Node SDKnpm
npm

প্রথম সারির TypeScript types, retries, pagination helpers এবং webhook signature verification।

ইনস্টল করে ব্যবহার করুন
npm install youtube-transcript-api
Python SDKPyPI
PyPI

Sync + async ক্লায়েন্ট, type stubs এবং ব্যাচ ও webhook ফ্লোর জন্য helpers।

ইনস্টল করে ব্যবহার করুন
pip install youtubetranscriptdevapi

আমাদের কাস্টম GPT ChatGPT-তে যুক্ত করুন এবং সাধারণ ভাষায় যেকোনো YouTube ভিডিওর সারাংশ, উদ্ধৃতি, অনুবাদ বা প্রশ্নোত্তর করুন। ভেতরে /api/v2/gpt/* দ্বারা চালিত।

  • · OAuth সাইন-ইন: চ্যাটে API key লাগবে না
  • · ক্যাপশন না থাকলে ASR বিকল্প
  • · টাইমস্ট্যাম্প ও সোর্স লিংকসহ উদ্ধৃতি
  • · প্রতিটি অ্যাকাউন্টে ফ্রি ট্রায়াল
Make.com & n8nনো-কোড
টেমপ্লেট দেখুন

বিদ্যমান অটোমেশনে ট্রান্সক্রিপশন যোগ করতে টেমপ্লেট ইমপোর্ট করুন (বা স্নিপেট কপি করুন): Notion, Sheets, Slack, Airtable, Zapier-ধাঁচের ফ্লো।

Make.com মডিউল
Module: HTTP > Make a request
- URL: https://www.youtubetranscript.dev/api/v2/transcribe
- Method: POST
- Headers:
    Authorization: Bearer {{connection.api_key}}
    Content-Type: application/json
- Body type: Raw / JSON
- Request content:
    {
      "video": "{{1.video_url}}",
      "format": { "timestamp": true }
    }
n8n HTTP node
{
  "name": "Transcribe Video",
  "type": "n8n-nodes-base.httpRequest",
  "parameters": {
    "method": "POST",
    "url": "https://www.youtubetranscript.dev/api/v2/transcribe",
    "authentication": "genericCredentialType",
    "genericAuthType": "httpHeaderAuth",
    "sendBody": true,
    "specifyBody": "json",
    "jsonBody": "={ \"video\": $json.video_url }"
  }
}
Postman / OpenAPIএক ক্লিকে
Postman কালেকশন

OpenAPI স্পেক Postman, Insomnia বা OpenAPI 3 সমর্থন করে এমন যেকোনো টুলে ইমপোর্ট করুন।

এরর

এরর code ও message-সহ একটি JSON body ফেরত দেয়। HTTP স্ট্যাটাস বিভাগ নির্দেশ করে।

HTTP স্ট্যাটাসএরর কোডবিবরণ
400invalid_requestInvalid JSON or missing required fields
401invalid_api_keyMissing or invalid API key
402payment_requiredInsufficient credits
404no_captionsNo captions available and ASR not used
429rate_limit_exceededToo many requests, check Retry-After
500internal_errorServer error, retry with backoff

রেট লিমিট ও কোটা

ধারাবাহিক রিকোয়েস্ট ও ব্যাচ সাইজের জন্য প্রতিটি প্ল্যানের সীমা। সীমা ছাড়িয়ে গেলে Retry-After হেডারসহ 429 ফেরত আসে।

প্ল্যানরিকোয়েস্টব্যাচ সাইজ
Free1 req/s10 videos
Basic25 req/s500 videos
Pro50 req/s1,500 videos
Business100 req/s3,000 videos

সাপোর্ট

লঞ্চ করতে সাহায্য দরকার? যোগাযোগ করুন: আমরা সাধারণত কয়েক ঘণ্টার মধ্যে উত্তর দিই।

API ডকুমেন্টেশন - YouTube Transcript API