Video Captions Downloader
Pricing
from $0.48 / subtitles
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
Maintained by CommunityActor stats
3
Bookmarked
4
Total users
0
Monthly active users
4 days ago
Last modified
Categories
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.
- 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.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
video_url | string | Yes | One public video URL whose source exposes captions. | https://www.youtube.com/shorts/noWlKvEPOWk |
languages | array of enum strings | No | One 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.
| Group | Fields |
|---|---|
| Identity | source_id, source_url, platform, title |
| Source context | description, author, author_id, author_url, published_at, thumbnail |
| Measurements | duration, view_count, like_count, comment_count, categories, tags |
| Caption | language_code, language, subtitle, srt_url |
| Provenance | processor, 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 ApifyClientclient = 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.
| Event | Price | Frequency |
|---|---|---|
| Actor Usage | $0.00001 | Metered during execution |
| Actor Start | $0.01 | Once per run, one event per GB with a minimum of one |
| Subtitles | $0.02 | Once 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.textwhile preservingsubtitle.segmentsfor 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.
Legal and Compliance
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.
Related AgentX Actors
AgentX publishes a broader catalog of data and automation Actors; these three are closest to caption workflows, followed by the complete categorized catalog.
- Video Transcript — generate text from authorized audio when no caption track exists.
- YouTube Transcript — use a focused YouTube transcript workflow.
- All Video Scraper — retrieve media and metadata rather than caption-only rows.
Business and Market Intelligence
- Google Keyword Trends — Google Trends keyword interest, compared five at a time
- Google Trends Scraper — Google Trends trending searches
- Google Maps Store Scraper — Google Maps business listings
- LinkedIn Company Lookup — LinkedIn company records
- LinkedIn Profile Lookup — LinkedIn profile records
- Weather Forecast API — forecast and historical weather data
Jobs and Hiring
- All Jobs Scraper — multi-platform job listings
- Bayt Jobs Scraper — Bayt job listings
- Glassdoor Jobs Scraper — Glassdoor job listings
- Indeed Jobs Scraper — Indeed job listings
- JobStreet Company Profile — JobStreet employer records
- Jooble Jobs Scraper — Jooble job listings
- LinkedIn Jobs Scraper — LinkedIn job listings
- Naukri Jobs Scraper — Naukri job listings
- Talent Jobs Scraper — Talent.com job listings
- ZipRecruiter Jobs Scraper — ZipRecruiter job listings
Social Media
- Instagram Creator Scraper — Instagram creator profiles
- Instagram Reels Scraper — Instagram Reels metadata
- Instagram Trending Scraper — Instagram trending content
- Medium Scraper — Medium articles
- Medium Profile Scraper — Medium author profiles
- Reddit Profile Scraper — Reddit user profiles
- Reddit Viral Scraper — Reddit viral posts
- SubReddit Info Scraper — subreddit metadata
- Subreddit Members Scraper — subreddit member lists
- Subreddit Posts Scraper — subreddit post feeds
- Telegram Chat Scraper — Telegram chat messages
- Telegram Info Scraper — Telegram channel metadata
- Telegram Member Adder — Telegram group membership management
- Telegram Member Scraper — Telegram group members
- Telegram Private Group Scraper — private Telegram group data
- TikTok Creator API — TikTok creator profiles
- TikTok User Lookup — TikTok account records
- X Twitter Community API — X community data
- X Twitter Profile Lookup — X profile records
- YouTube Creator Email Scraper — YouTube creator contact data
Video, Transcripts and Downloads
- All Video Scraper — multi-platform video metadata
- Video Transcript — multi-platform transcripts
- Video to Social Post — video repurposed into social copy
- YouTube Transcript — YouTube transcripts
- TikTok Transcript — TikTok transcripts
- X Twitter Transcript — X video transcripts
- Facebook Transcript — Facebook video transcripts
- Bilibili Transcript — Bilibili transcripts
- Dailymotion Transcript — Dailymotion transcripts
- Rutube Transcript — Rutube transcripts
- Loom Transcript — Loom transcripts
- Wistia Transcript — Wistia transcripts
- Instagram Reels Downloader — Reels downloads
- Kick Clip Downloader — Kick clip downloads
- Linkedin Video Downloader — LinkedIn video downloads
- Pinterest Video Downloader — Pinterest video downloads
- Reddit Video Downloader — Reddit video downloads
- Snapchat Video Downloader — Snapchat video downloads
- TED Talk Downloader — TED talk downloads
- TikTok Live Downloader — TikTok live downloads
- Twitch VOD Downloader — Twitch VOD downloads
- Zoom Recording Downloader — Zoom recording downloads
E-Commerce and Retail
- All Shopping Scraper — multi-platform product data
- AliExpress Product Scraper — AliExpress products
- Amazon Storefront Scraper — Amazon Brand Store pages
- Bol Product Scraper — Bol.com products
- eBay Seller Leads API — eBay seller records
- Hepsiburada Product Scraper — Hepsiburada products
- Kakaku Product Scraper — Kakaku.com products
- Rakuten Product Scraper — Rakuten products
Classifieds and Automotive
- All Vehicle Scraper — multi-platform vehicle listings
- AutoTrader Vehicle Search — AutoTrader US listings
- AutoTrader UK Vehicle Search — AutoTrader UK listings
Real Estate
- All Property Scraper — multi-platform property listings
- Homes Property Scraper — Homes.com listings
- MagicBricks Property Scraper — MagicBricks listings
- NoBroker Property Scraper — NoBroker listings
- Property24 Property Scraper — Property24 listings
- Realtor Property Scraper — Realtor.com listings
- Zillow Property Scraper — Zillow listings
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