YouTube transcript & comments API: captions and cost

Use /v1/youtube/transcript for available caption text and timed segments, and /v1/youtube/comments for a separate comment sample. They are two different data calls. PostToData uses its own API key or MCP authentication; you do not need to supply a Google API key to this service.

Documentation reviewed: 2026-11-13 · By PostToData

Caption extraction is not speech recognition

This endpoint retrieves available caption tracks. It does not transcribe arbitrary audio from videos with no captions. Request a language using lang; the source must have that language. English is preferred when available, otherwise the source captions are used.

Keep segments with their start times for verifiable summaries. A transcript describes speech or caption text, not visual evidence. If the task depends on what appears on screen, captions alone are insufficient.

Combine a transcript with a bounded comment sample

Fetch the transcript once. If audience reaction is relevant, approve one comments request for the same video with limit=5. Comments are a separate sample; do not present them as a representative sentiment score for all viewers.

Use get_transcript and get_comments with platform=youtube in MCP. Keep the original video URL, timestamps where available and the request collection time. The API references below contain cURL, Python, JavaScript and MCP examples.

Budget for the workflow, including failure behavior

Add the two current call prices below to estimate one successful transcript-plus-comments run. Each extra video or comment page adds another call. Model inference costs are separate from data API charges.

A video with no available captions is not charged. On a timeout or error, stop and inspect the response and usage instead of starting an unlimited retry loop. Use dry_run=1 for a free quote and carry the approved price into max_price_usd on the real call.

Current prices & implemented operations

OperationPer successful call1,000 successful calls
YouTube · Transcript$0.003$3.00
YouTube · Comments$0.003$3.00

The 1,000-call figure is list price multiplied by calls, not 1,000 records or a top-up package. The example only previews the first operation: no upstream fetch or charge. To retrieve data, remove dry_run=1 and supply Authorization: Bearer API_KEY. Keep max_price_usd to reject a price above the approved amount.

Free price preview
curl --get "https://posttodata.com/v1/youtube/transcript" \
  --data-urlencode 'id=UF8uR6Z6KLc' \
  --data-urlencode 'max_price_usd=0.003' \
  --data-urlencode 'dry_run=1'

A per-call ceiling is not a shared budget for the whole task. Bound the number of approved calls and stop on 402, 412 or 429; do not automatically raise limits or rotate accounts.

Frequently asked questions

Does this replace the official YouTube Data API?

It is a separate third-party read-only service, not Google’s official API. Choose the official APIs when your task needs their account permissions, upload or management features; verify their own access terms separately.

Can I translate any video by choosing a language?

No. lang selects an available caption track; it is not a translation or audio transcription service. Missing captions or languages must remain explicit in the result.

Related guides