API Keys
API સંદર્ભ

ટ્રાન્સક્રિપ્ટ V2

V2 એક સુવ્યવસ્થિત, વપરાશકર્તા-માલિકીનું ટ્રાન્સક્રિપ્ટ મોડેલ છે. તે ઝડપી કૅશ હિટ અને એકસરખા રિસ્પોન્સને પ્રાથમિકતા આપે છે, અને તમે ભાષા ન માંગો ત્યાં સુધી કોઈ અણધાર્યો અનુવાદ કરતું નથી.

બેઝ URLhttps://www.youtubetranscript.dev/api/v2

તમે શું કરી શકો

વીડિયો ટ્રાન્સક્રાઇબ કરો

YouTube લિંક અથવા વીડિયો ID પેસ્ટ કરો અને સામાન્ય રીતે થોડી સેકંડમાં ટ્રાન્સક્રિપ્ટ મેળવો.

POST/transcribe
ઘણા વીડિયો ટ્રાન્સક્રાઇબ કરો

એક જ વિનંતીમાં 3,000 સુધી વીડિયો મોકલો અને પૂર્ણ થાય ત્યારે સૂચના મેળવો.

POST/batch
પ્લેલિસ્ટ અને ચેનલ

પ્લેલિસ્ટ અથવા ચેનલને વીડિયો યાદીમાં ફેરવો, ટ્રાન્સક્રાઇબ માટે તૈયાર.

POST/playlists/resolve
તમારા પોતાના ઑડિયો અને વીડિયો

ફાઇલ અપલોડ કરો અને સ્પીચ-ટુ-ટેક્સ્ટથી ટ્રાન્સક્રાઇબ કરો.

POST/uploads
ટ્રાન્સક્રિપ્ટ્સ મેનેજ કરો

તમારી ટ્રાન્સક્રિપ્ટ્સ જુઓ, મેળવો, અનુવાદ કરો અથવા કાઢી નાખો.

GET/transcripts
લાંબા જોબ્સ ટ્રેક કરો

સ્પીચ-ટુ-ટેક્સ્ટ જોબ્સ તપાસો અથવા પૂર્ણ થાય ત્યારે વેબહૂક મેળવો.

GET/jobs/{job_id}

નવું: દરેક ટ્રાન્સક્રિપ્ટ સ્ત્રોત માટે એક 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 જોબની યાદી જુઓ. બધા endpoints સમાન 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"
}

પ્લેલિસ્ટ

પ્લેલિસ્ટને વીડિયો IDs માં ફેરવો, તેમને /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
}

ઇન્ટિગ્રેશન

સત્તાવાર SDKs, 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