YouTube Transcript avatar

YouTube Transcript

Pricing

from $0.39 / transcript

Go to Apify Store
YouTube Transcript

YouTube Transcript

YouTube Transcript provides structured text from one public YouTube video for indexing, chapter research, summarization, and automation. Output includes detected language, ordered timestamped segments, video metadata, and optional translation into 133 languages. Transcripts start at $0.3483.

Pricing

from $0.39 / transcript

Rating

4.7

(4)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

7

Bookmarked

435

Total users

45

Monthly active users

5 days ago

Last modified

Share

YouTube Transcript - Timestamped YouTube Speech-to-Text API

YouTube Transcript converts one public YouTube video into detected-language text, ordered timestamped segments, source metadata, and an optional translated transcript. It processes audible speech from the media; it does not promise to return YouTube caption tracks or existing subtitle files.

  • Submit one public YouTube watch URL per run; channels, searches, and playlist jobs are deliberately excluded.
  • Extractor-based platform confirmation happens before the formal media download, including when a short or redirected URL is used.
  • A successful job publishes one 22-field record joining video context with detected-language text and ordered segments.
  • Media over 60 minutes follows the runtime's sequential 15-minute audio-block path with 15-second boundary context to limit peak memory.

Run YouTube Transcript · Open the API page

Begin with an ordinary public video whose speech you can verify. Inspect names, timestamps, and nullable source fields before scaling to lengthy lectures or automated translation.


Why Choose This API

A narrow contract for one known YouTube video

This Actor fits a workflow that already has a specific YouTube video and needs searchable speech rather than a caption file. Its two controls are the source URL and, when needed, one target language. Redirects and shortened links are resolved first; the detected extractor must still identify YouTube.

The result combines source context and spoken content in one record:

CapabilityWhat is returned
Generated speech layerDetected language, joined text, and start / end / text intervals
YouTube identityVideo title, description, channel information, duration, publish time, thumbnail, categories, and tags when available
Public countersViews, likes, dislikes, shares, and comments only when returned by the current extractor
Second-language viewComplete translated text aligned to the source segment ranges

It does not enumerate a channel, expand a playlist, capture a livestream, export YouTube captions, label speakers, summarize a talk, or return a downloadable video. Missing YouTube metadata keeps the schema's documented null, zero, or empty representation.

Speech recognition runs against the media audio. Channel names, uncommon terminology, heavy accents, crosstalk, music, and compression artifacts can all change the result. Compare consequential quotations with the player before publishing them.


Quick Start Guide

Run in Apify Console

  1. Open YouTube Transcript on Apify.
  2. Paste the complete address of one public video into Video URL.
  3. Keep Translate empty for source speech, or select exactly one destination language.
  4. Start the Actor and review its single default-Dataset item when the run reaches a terminal success state.

The current input schema pre-fills this public example:

{
"video_url": "https://www.youtube.com/watch?v=4rzeW4dbvlQ",
"translate": "spanish"
}

The API and output illustrations reuse that address for consistency. It is not a permanence guarantee: an owner or YouTube may remove, restrict, age-gate, privatize, or replace availability at any time. If it stops playing publicly, choose another video with audible dialogue.

What success means

Useful success requires more than resolving a title. The run must obtain playable media with audio, detect at least one speech segment, and publish the normalized Dataset object. A metadata-only response is not a transcript result.


Input Parameters

Input configuration

InputTypeRequiredDescription
video_urlstringYesOne public YouTube video URL to download and transcribe.
translatestringNoOne target language from the schema's 133 selectable values. Leave empty to skip translation.

The downloader has playlist expansion disabled and accepts one item. Channel homes, handles, search result pages, playlist-only addresses, private sources, uploaded files, cookie input, credentials, and URL arrays are outside this single-platform Actor.

Watch, shortened, or Shorts-style links can only proceed when resolution yields supported YouTube media. Correct-looking syntax can still fail because of regional policy, login or age gates, deletion, a platform response change, or a missing audio stream.

Translation begins after the original segment list exists. Up to eight segment tasks may run concurrently, but the final list preserves source order. If even one segment exhausts its attempts, no translation object is attached and no translation event is billed; source text is never substituted as a fake translation.


Output Data Schema

One 22-field Dataset item

The default Dataset receives one item after transcription. Its 22 keys are grouped below:

GroupFieldsNotes
Processingprocessor, processed_atActor URL and processing timestamp
Identityplatform, title, description, thumbnail, published_atSource-provided video identity
Authorauthor, author_id, author_urlChannel or uploader context when available
Mediaduration, audio_title, audio_artistSource-reported values; duration can be 0 when metadata is absent
Engagementview_count, like_count, shares_count, dislike_count, comment_countNullable source metrics
Labelscategories, tagsSource classifications when exposed
Speechtranscript, translationTimestamped source transcript and optional translated version

Abbreviated schema-aligned output for the same example scenario:

{
"processor": "https://apify.com/agentx/youtube-transcript?fpr=aiagentapi",
"processed_at": "2026-07-21T13:30:00+00:00",
"platform": "Youtube",
"title": "Generations of farming | with ChatGPT | Super Bowl 2026",
"author": "OpenAI",
"author_id": "OpenAI",
"author_url": "https://www.youtube.com/@OpenAI",
"duration": 157,
"view_count": 83803,
"like_count": 1930,
"categories": ["Science & Technology"],
"tags": [],
"transcript": {
"language": "English",
"text": "This book goes all the way back to 1971, and it has every crop he has ever planted in it.",
"segments": [
{
"start": "00:00:00.090",
"end": "00:00:08.929",
"text": "This book goes all the way back to 1971, and it has every crop he has ever planted in it."
}
]
},
"translation": {
"language": "Spanish",
"text": "Este libro se remonta a 1971 y contiene todos los cultivos que ha plantado.",
"segments": [
{
"start": "00:00:00.090",
"end": "00:00:08.929",
"text": "Este libro se remonta a 1971 y contiene todos los cultivos que ha plantado."
}
]
}
}

Example counters and text are illustrative snapshots. The actual response reflects the current source and generated speech. No source media, native caption track, SRT/VTT asset, speaker label, word-level alignment, confidence score, summary, or legal determination is added.


Integration Examples

REST API

The synchronous endpoint returns Dataset items directly:

curl -L "https://api.apify.com/v2/actors/agentx~youtube-transcript/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://www.youtube.com/watch?v=4rzeW4dbvlQ",
"translate": "spanish"
}'

For long videos or workflows that must not hold one HTTP connection open, start an asynchronous run and retrieve its Dataset afterward. Apify documents that synchronous Dataset responses can time out after 300 seconds while the Actor run continues.

Python client

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("agentx/youtube-transcript").call(
run_input={
"video_url": "https://www.youtube.com/watch?v=4rzeW4dbvlQ",
"translate": "spanish",
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["transcript"]["text"])

MCP for AI clients

Configure the Apify MCP server with the Actor-scoped tool URL:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=agentx/youtube-transcript",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Call agentx/youtube-transcript with the same input fields. See the Apify MCP documentation and the generated Actor API page.


Pricing & Cost Calculator

YouTube Transcript uses pay-per-event pricing. For this build, local metadata is authoritative; a published Store page can remain on an earlier deployment until release completes.

EventCurrent price
Actor start$0.001 per charged start event; the 8192 MB run configuration charges eight start events
Actor usage$0.00001 per usage unit; total depends on runtime resources
Transcript - Free$0.38700
Transcript - Bronze$0.37410
Transcript - Silver$0.36120
Transcript - Gold, Platinum, Diamond$0.34830
Translation - Free$0.15
Translation - Bronze$0.145
Translation - Silver$0.14
Translation - Gold, Platinum, Diamond$0.135

A Free-tier run with one transcript, no translation, and the fixed 8192 MB configuration starts at $0.387 + (8 × $0.001) = $0.395, plus usage events. With translation, the fixed subtotal is $0.387 + $0.15 + $0.008 = $0.545. Failed work can still consume start and runtime usage events.

Check the live pricing page before scheduling a large workload. Estimate with representative media because speech density, duration, network behavior, and translation length affect runtime.


Use Cases & Applications

Search and retrieval over one video

Index transcript.text for whole-video retrieval, or treat each timestamped segment as a smaller search unit. A client can show the matched sentence with its approximate player interval. Embeddings, ranking, and question answering remain downstream work.

Editorial and research review

Researchers and editorial teams can keep spoken claims beside the video title, channel, publication time, and available counters. Because both source metadata and ASR can be incomplete, preserve the URL and verify high-impact wording against the video.

Accessibility drafts and content repurposing

Segments can seed show notes, caption editing, summaries, articles, or short excerpts. They are draft time ranges, not a certified accessibility file. Human review is appropriate before public reuse.

Multilingual review

Select one target for a localized review copy that follows the original segment windows. Multiple target languages require separate runs and separate successful translation events.

Automation boundaries

Discovery and transcription are separate concerns: first obtain candidate video URLs from an authorized channel/search workflow, then submit only selected items one at a time. Technical success does not grant republication rights.


FAQ

Does the Actor use YouTube's native captions?

No. The implemented path prepares media audio and generates new speech-recognition output; it does not promise an export of YouTube's caption track.

Can it process YouTube Shorts?

A Short can proceed when URL resolution exposes public media with audio and identifies YouTube. Private, removed, restricted, login-gated, or live items are not guaranteed.

Can it process an entire channel or playlist?

No. Playlist expansion is disabled and the schema has no channel or URL-list field. Discover first, then submit individual videos in separate runs.

What happens if the video has no speech?

No transcript item is published when the media has no audio or yields no detectable speech. Silence, music-only content, or speech masked by noise can trigger that outcome.

Why are some metadata fields null?

The current extraction response omitted them. Nullable schema fields prevent the Actor from inventing counters, dates, audio credits, or channel details.

Are timestamps word-accurate?

No. HH:MM:SS.mmm marks segment boundaries suitable for navigation and coarse alignment, not verified word-level timing.

How are long videos handled?

The runtime uses 8192 MB and 2 CPUs. At more than 3600 seconds, it extracts sequential 900-second core blocks with 15 seconds of context on each side, keeps the model loaded once, and merges owned time ranges. Duration and speech density still increase wall time and CU, so long jobs belong in asynchronous workflows.

Is translation always charged when requested?

No. Translation is charged only when the complete translated structure is produced. If any segment ultimately fails, the output keeps translation empty and the translation event is not charged.


SEO Keywords & Search Terms

Search phrases such as YouTube video to text, timestamped YouTube speech, transcribe a YouTube URL, and YouTube transcript for RAG all point to the same contract here: one playable public video becomes one structured speech record.

It should not be discovered as a caption downloader, channel scraper, batch transcript API, audio downloader, summarizer, or guaranteed-verbatim service. Those tasks need different inputs and outputs.

Automation should address agentx/youtube-transcript. Human buyers should compare the current Input, Output, Pricing, Reviews, and Issues tabs after the build is published, since online Store state can lag this repository.


Trust & Certifications

Trust comes from bounded claims: the local schemas define two inputs and 22 output fields, the code exposes the YouTube platform gate, translation completeness rule, and long-media path, and missing values stay explicit. This documentation does not convert a volatile public example into an uptime promise.

No current rating, user count, or bookmark total is copied from the online Store because those values belong to a deployed snapshot and change independently of local files. Verify them on Apify after publication if they matter to a buying decision.

No independent ASR accuracy certificate, SLA, legal-transcript status, privacy certification, or guaranteed source availability is claimed. Apify hosts execution and storage; YouTube controls media access, and generated speech still requires review.


Process only content you are authorized to use. Public playback does not remove copyright, privacy, contractual, publicity, or data-protection duties. YouTube's Terms of Service restrict downloading or automated access except where YouTube permits it, prior written permission exists, or applicable law allows it. Confirm that your specific workflow fits an allowed basis before running this Actor.

The Actor returns source metadata and generated speech text. It does not grant a license to the video, verify ownership, determine fair use, provide legal advice, or certify the accuracy of quotations. Avoid submitting private credentials or confidential URLs because they are not part of the supported input contract.

If a source owner deletes or restricts a video, future runs can fail even when an older run succeeded. Retain the source URL and processing time when provenance matters.


Enrich with broader discovery

Choose a discovery Actor when you do not yet have a specific video URL. Keep transcription runs one video at a time.


Support & Community

When reporting a problem, include the public video URL, run ID, expected result, observed error, and whether translation was enabled. Do not post private tokens or credentials.

The local schemas, implemented behavior, pricing metadata, and cited official terms were reviewed on July 21, 2026. The example's availability and all online Store statistics remain volatile.

Run a one-video test · View pricing