Video Captions Downloader avatar

Video Captions Downloader

Pricing

from $0.48 / subtitles

Go to Apify Store
Video Captions Downloader

Video Captions Downloader

Video captions API that extracts source-provided manual and automatic tracks into 22-field Dataset rows with combined text, ordered timestamps, metadata, and SRT files when storage succeeds.

Pricing

from $0.48 / subtitles

Rating

5.0

(2)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

3

Bookmarked

4

Total users

0

Monthly active users

4 days ago

Last modified

Share

Video Captions Downloader is a video captions API that extracts source-provided caption tracks and returns combined text, ordered timestamp segments, video metadata, and SRT files. It is designed for developers who need existing manual or automatic captions without downloading the video or generating a new transcript from audio.

Apify Users Apify Runs $0.02 per run 22 fields API + MCP ready

  • One public video URL per run, with compatibility resolved against the live source.
  • 55 language choices: 54 named patterns plus all.
  • 22 documented Dataset fields for every delivered subtitle track.
  • Content deduplication removes identical language variants before delivery.

The smallest useful run requests English captions for one public video and costs $0.03 plus metered Actor Usage when at least one subtitle track is delivered.

Why Choose Video Captions Downloader

Source caption retrieval preserves caption text already exposed by the video platform, making it suitable for evidence-led editorial and accessibility workflows.

Ordered output returns both a readable subtitle.text value and every retained cue under subtitle.segments, so repeated or overlapping time ranges are not overwritten.

Language selection accepts one or more named patterns or all available tracks. A named choice selects matching source codes; it does not translate or transcribe content.

Reviewable delivery combines the caption with source URL, title, creator, engagement values, publication time, thumbnail, processor, and processing timestamp.

One-time subtitle billing occurs only after the first track reaches the Dataset. Duplicate, invalid, failed, or unpublished tracks do not independently repeat that event.

Quick Start Guide

1. Configure

Open the Actor input and keep the prefilled public YouTube Short for a first test. Choose english before using all, because an all-language request can produce many rows.

2. Run

Start the Actor and wait for caption retrieval and conversion. The run reports a clear failure when the URL cannot be opened or no matching track is available.

3. Collect

Read the default Dataset. Each item represents one unique delivered language track; use source_url to retain the video relationship and subtitle.segments for cue-level processing.

Input Parameters

The API accepts two inputs in schema order, and the prefilled example is a complete runnable request.

ParameterTypeRequiredDescriptionExample
video_urlstringYesOne public video URL whose source exposes captions.https://www.youtube.com/shorts/noWlKvEPOWk
languagesarray of enum stringsNoOne or more of 54 named patterns, or all; omitted input uses English.["english"]
{
"video_url": "https://www.youtube.com/shorts/noWlKvEPOWk",
"languages": ["english"]
}

The Actor has no public cookie, proxy, transcription, translation, concurrency, or file-format input. Private, removed, login-gated, geoblocked, or rate-limited sources may be unavailable.

Output Data Schema

Each row is one unique source-provided subtitle track with 22 top-level fields.

GroupFields
Identitysource_id, source_url, platform, title
Source contextdescription, author, author_id, author_url, published_at, thumbnail
Measurementsduration, view_count, like_count, comment_count, categories, tags
Captionlanguage_code, language, subtitle, srt_url
Provenanceprocessor, processed_at

This illustrative item is abbreviated; a real subtitle.segments array contains every retained cue.

{
"source_id": "noWlKvEPOWk",
"source_url": "https://www.youtube.com/watch?v=noWlKvEPOWk",
"platform": "Youtube",
"title": "Web scraping with Apify",
"author": "Apify",
"duration": 54,
"language_code": "en-orig",
"language": "ENGLISH",
"subtitle": {
"text": "Hey, have you ever wanted to work with data on a website at scale?",
"segments": [
{"start": "00:00:01,670", "end": "00:00:03,270", "text": "Hey, have you ever wanted to work with data on a website at scale?"}
]
},
"srt_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/noWlKvEPOWk-en.srt",
"processor": "https://apify.com/agentx/video-captions-downloader",
"processed_at": "2026-08-13T06:00:00+00:00"
}

Unavailable source values remain null. Export Dataset rows as JSON, JSONL, CSV, Excel, XML, or RSS through Apify; the nested caption structure is most faithful in JSON or JSONL.

Integration Examples

Use Actor ID FKRVxiH2L1TUaCcPh or name form agentx/video-captions-downloader across REST, clients, schedules, webhooks, Make.com, n8n, and MCP.

Actor ID

FKRVxiH2L1TUaCcPh

HTTP

curl -X POST "https://api.apify.com/v2/acts/FKRVxiH2L1TUaCcPh/runs?token=YOUR_APIFY_TOKEN&waitForFinish=300" \
-H "Content-Type: application/json" \
-d '{"video_url":"https://www.youtube.com/shorts/noWlKvEPOWk","languages":["english"]}'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("FKRVxiH2L1TUaCcPh").call(run_input={
"video_url": "https://www.youtube.com/shorts/noWlKvEPOWk",
"languages": ["english"],
})
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('FKRVxiH2L1TUaCcPh').call({
video_url: 'https://www.youtube.com/shorts/noWlKvEPOWk',
languages: ['english'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

For Make.com or n8n, use Actor ID FKRVxiH2L1TUaCcPh, paste the same JSON input, wait for completion, and read the default Dataset. For MCP, configure the official Apify MCP server, select agentx/video-captions-downloader, and submit the same two input fields.

Pricing

The FREE schedule charges $0.02 once for Subtitles after the first delivered track, $0.01 for Actor Start, and $0.00001 per metered Actor Usage unit; the smallest qualifying run starts at $0.03 plus usage. Paid plans pay less for Subtitles: $0.018 on Bronze, $0.016 on Silver, $0.015 on Gold and above.

EventPriceFrequency
Actor Usage$0.00001Metered during execution
Actor Start$0.01Once per run, one event per GB with a minimum of one
Subtitles$0.02Once after the first row reaches the Dataset, whatever the track count

A one-language request and an all-language request use the same one-time Subtitles event when both deliver data. The all-language request may take longer and consume more metered usage. Prices can change; check the live pricing page.

Use Cases

  • Caption archives — retain authorized SRT files with source_url, language_code, and processing provenance.
  • Editorial search — index subtitle.text while preserving subtitle.segments for timecode links.
  • Localization preparation — collect available source tracks before separate translation and native-speaker review.
  • Accessibility review — inspect timing, wording, and completeness without treating source captions as a compliance verdict.
  • Video research — join captions with title, author, engagement, publication, and category fields.

Alternatives

Manual copying is reasonable for one short video when the player exposes a transcript, but it does not provide a repeatable Dataset contract or batch language selection. The source platform's own caption controls are preferable when you own the video and need to edit or certify its captions.

Choose an audio transcription workflow when no source caption exists. Choose a media downloader when the video or audio file is the product. Choose a caption editor when human correction and publishing are the primary tasks.

Limits and Troubleshooting

  • No rows → confirm that the URL is public and that its player exposes the selected caption language; retry with one named language.
  • Fewer languages than expected → source translation URLs can be rate-limited; retry later or request only the languages required.
  • Duplicate-looking source variants → identical caption content is deduplicated, while genuinely different language-code tracks remain separate.
  • Empty source metadata → the source did not expose that value; null is preserved instead of guessed.
  • Missing SRT URL → cloud storage did not return a URL; use the structured subtitle row and report the run ID if cloud execution reproduces it.

A source that resolves today can change or break tomorrow, because the site owns its own page structure. For a reproducible problem, open an [Issue]es can change or break. For a reproducible problem, open an Issue with the run ID, exact public input, selected languages, and expected source track.

Trust and Reliability

Runs execute on Apify infrastructure and write a documented 22-field Dataset contract. Source facts remain source facts: missing values stay null, and the Actor does not invent engagement, author, publication, or caption data. Billing is attached to delivered work, and each row carries processor and processed_at provenance.

Access: Process only public or otherwise authorized URLs and respect source terms and access controls.

Reuse: A downloadable caption does not by itself grant republication, translation, training, or commercial-use rights.

Review: Caption accuracy, accessibility compliance, privacy, retention, and downstream decisions remain the user's responsibility.

Frequently Asked Questions

How does the extract captions from video API work?

The extract captions from video API reads tracks exposed by the source, selects requested language codes, converts supported files, deduplicates identical content, and pushes structured rows.

Can I download video captions JSON?

Yes. The Dataset exports caption text and ordered segments as JSON or JSONL, alongside video metadata and provenance.

Does the video captions SRT API transcribe audio?

No. The video captions SRT API retrieves existing source tracks; it does not generate speech-to-text when captions are absent.

Can one video return multiple rows?

Yes. Each unique delivered language track becomes one row, while identical content variants are removed.

Is there a free video captions API?

The Actor uses pay-per-event pricing rather than an unlimited free API; Apify account credits and plan terms determine the effective first-run cost.

Can I schedule runs to monitor video captions over time?

Yes. Apify Schedules can repeat the same public input, but source availability and caption content can change between runs.

Are automatic captions human-verified?

No. Automatic tracks are generated by the source platform and require human review for important uses.

AgentX publishes a broader catalog of data and automation Actors; these three are closest to caption workflows, followed by the complete categorized catalog.

Business and Market Intelligence

Jobs and Hiring

Social Media

Video, Transcripts and Downloads

E-Commerce and Retail

Classifieds and Automotive

Real Estate

Support and Community

Ask about caption tracks, language selection, Dataset fields, or SRT delivery in the AgentX community on Telegram; for a reproducible bug, open an Issue with the run ID and exact input.

AgentX is an Arcyton brand — arcyton.com.

Last Updated: August 13, 2026