Video Subtitles Downloader avatar

Video Subtitles Downloader

Pricing

from $0.25 / subtitles

Go to Apify Store
Video Subtitles Downloader

Video Subtitles Downloader

Download subtitles from 1,000+ video platforms — VTT, ASS, TTML, JSON, and 5 other formats all converted to clean SRT from a single pasted link. ~$0.051 per video.

Pricing

from $0.25 / subtitles

Rating

5.0

(1)

Developer

TrueFetch

TrueFetch

Maintained by Community

Actor stats

2

Bookmarked

22

Total users

0

Monthly active users

a day ago

Last modified

Share

Video Subtitles Downloader turns subtitle tracks already exposed by a video source into structured Dataset rows and downloadable SRT records. Give it one video URL, select subtitle languages, and inspect each file that completed extraction and conversion.

  • Send one non-empty video URL that the current source extractor can open.
  • Select from 54 named language patterns, choose all, or omit the list to request English.
  • Receive one 11-field row for each subtitle file that finishes conversion, including timecoded text and video metadata.
  • Plan for source changes, language variants, and a possible Subtitles charge even when conversion produces zero rows.

Open Video Subtitles Downloader, call it through the Apify API, or use an MCP-compatible client. The Actor requests manual and source-generated subtitle files; it does not download the video, transcribe its audio locally, translate captions, or guarantee that a source will expose a usable track.

What does Video Subtitles Downloader do?

The Actor accepts a single video URL and a set of language selectors. It asks the installed extractor for existing subtitle files while skipping media download. Both manually supplied captions and captions generated by the source platform may be requested. If the extractor returns a subtitle-related file, the runtime converts it to SRT when necessary, parses its time ranges and text, stores the converted SRT in the run key-value store, and pushes a Dataset item.

Each written item represents a converted file, not a unique video or a guaranteed selected language. A broad expression such as English can match source variants such as en and en-orig; these may become separate rows. Conversely, a selected language can produce no row when the video has no matching track, the source blocks extraction, or conversion fails.

This distinction matters when the source advertises “automatic subtitles.” Here, automatic means a caption track created and exposed by that platform. The Actor has no speech-recognition engine and no fallback that derives text from downloaded audio. If you need audio transcription rather than subtitle-file retrieval, use a transcription-specific workflow.

How do I run Video Subtitles Downloader?

Start with one URL and one language. English is the runtime default when languages is omitted. This small request is easier to validate than all, which may retrieve multiple source-specific tracks and variants.

{
"video_url": "https://www.youtube.com/shorts/noWlKvEPOWk",
"languages": ["english"]
}

After the run reaches a terminal state, compare the charged-event counters, Dataset item count, and key-value store records. A successful process state only means the Actor completed its control flow; it does not prove that subtitle rows exist. Open each srt_url while it remains available and compare it with the subtitle object before sending the data downstream.

For scheduled monitoring, retain the run ID and original input in your own job ledger. Source availability can change between otherwise identical runs, so a retry is a new observation rather than proof that the earlier result was wrong.

What data does Video Subtitles Downloader return?

Every stored Dataset item has 11 top-level fields. processor identifies the Actor, and processed_at records when metadata was formatted. thumbnail, platform, title, description, published_at, and author come from the source extractor when available. language is derived from the downloaded filename suffix. subtitle is an object whose keys are SRT time ranges and whose values are joined caption text. srt_url points to the converted file record in the run key-value store.

{
"processor": "https://apify.com/truefetch/video-subtitles-downloader",
"processed_at": "2026-07-23T12:10:00+00:00",
"thumbnail": "https://example.com/video-thumbnail.jpg",
"platform": "Youtube",
"title": "Example source video",
"description": "Description reported by the source",
"published_at": "2026-07-01T09:00:00+00:00",
"author": "Example creator",
"language": "ENGLISH",
"subtitle": {
"00:00:00,000 --> 00:00:02,400": "Example source caption"
},
"srt_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/en.srt?signature=SIGNED_VALUE"
}

The row does not contain the submitted video_url; save that association outside the Dataset if your pipeline requires it. Metadata can be null or change later. The subtitle parser joins multiline cue text with spaces and uses a time-range string as an object key. If a file repeats an identical key, later text replaces earlier text. Treat the map as a convenient representation, not a lossless replacement for every unusual SRT construct.

What inputs can I use?

video_url is the only required public input. It must be a non-empty string, but the schema does not impose a fixed platform regex or allowlist. Actual compatibility is decided by the extractor and the live source.

languages is optional and must contain at least one allowed value when supplied. It supports all plus 54 named patterns covering Afrikaans, Arabic, Armenian, Belarusian, Bengali, Bulgarian, Cantonese, Catalan, simplified and traditional Chinese, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Filipino, Finnish, French, German, Greek, Gujarati, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Malay, Marathi, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, and Vietnamese.

Named options map to code patterns rather than exact human-language guarantees. English, for example, can match multiple English-labelled files. all asks for everything the extractor and source expose; it does not manufacture absent translations or guarantee successful conversion of every downloaded file.

What platforms and markets are supported?

There is no honest fixed site count or permanent compatibility list for this Actor. Support follows the installed source extractor, and sites can change login rules, endpoints, geographic behavior, rate limits, markup, or subtitle delivery without notice. The official yt-dlp supported-sites document warns that even a listed extractor is not a guarantee that a site currently works.

Market coverage likewise depends on the submitted URL, source visibility, network route, account requirements, and caption availability. A public video can work in one run and fail later. Private, removed, login-gated, age-restricted, geoblocked, or rate-limited content may be unavailable. Test the exact URL and desired language in the environment where the production run will execute.

Why use Video Subtitles Downloader?

The Actor combines extraction, SRT normalization, structured parsing, storage, and run observability. Instead of managing a downloader process and manually locating output files, you get Dataset rows, KVS records, logs, resource usage, and charge-event evidence tied to one Apify run.

The contract is deliberately narrow. It separates source metadata from caption content, exposes language variants rather than collapsing them silently, and documents the billing boundary. That makes failures easier to audit and prevents a zero-row run from being mistaken for a verified “no captions exist” conclusion.

The Actor also fits workflows that need reviewable artifacts. Teams can archive authorized SRT files, compare variants, search timecoded text, or route rows to a later translation or editorial process. It is not a replacement for human caption QA, rights review, or accessibility validation.

Who is Video Subtitles Downloader for?

Content operations teams can retrieve available caption files before editing or republishing authorized media. Localization teams can use the source language SRT as an input to a separate translation and timing workflow. Researchers can collect timecoded text observations while preserving run-level provenance and documenting source variability.

Developers can integrate the Dataset envelope into an ETL job without parsing files from a local working directory. Accessibility teams can use the result as an initial artifact, but should still review wording, timing, speaker attribution, sound cues, reading speed, punctuation, and completeness. Compliance teams should verify authorization, retention, and permitted reuse independently.

Can I use Video Subtitles Downloader through an API or MCP?

Yes. Use the Actor ID FiN3qhAHDYW2nV3Wx or the name truefetch/video-subtitles-downloader with Apify REST clients, schedules, webhooks, integrations, or an MCP-capable application. Keep the token in a secret manager and store the returned run ID.

{
"method": "POST",
"url": "https://api.apify.com/v2/acts/truefetch~video-subtitles-downloader/runs?waitForFinish=240",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN",
"Content-Type": "application/json"
},
"body": {
"video_url": "https://www.youtube.com/shorts/noWlKvEPOWk",
"languages": ["english"]
}
}

Read defaultDatasetId and defaultKeyValueStoreId from the finished run. Validate the item count and SRT records instead of relying only on terminal status. Some MCP plans may not permit direct execution of every public Actor; in that case, run the exact cloud build through authenticated REST and use MCP for independent Actor, run, Dataset, and KVS readback.

How much does Video Subtitles Downloader cost?

The local pay-per-event configuration lists Actor Usage at $0.00001 per metered unit, a one-time Actor Start at $0.01, and a one-time Subtitles event at $0.25. The active Apify Store schedule at execution time is authoritative.

Subtitles is not priced per Dataset row, language, caption cue, or video minute. Runtime requests the event once after at least one subtitle-related file has been downloaded and before individual conversion and Dataset writing. A qualifying run therefore begins at $0.26 plus metered usage, yet it can yield several rows, one row, or zero rows. Ten separate qualifying runs begin at $2.60 plus usage.

Set maxTotalChargeUsd when you need a budget boundary and review event counts afterward. A charge cap cannot guarantee source access, caption accuracy, or row creation.

How does Video Subtitles Downloader compare with alternatives?

A transcript API may generate new text from audio, while this Actor retrieves existing source subtitle files. A media downloader focuses on audio or video assets. A translation service creates target-language text. A caption editor focuses on corrections, timing, and export. These are related but different jobs.

Choose this Actor when source-exposed subtitle files and their SRT representation are the primary evidence you need. Choose transcription when no usable captions exist and you have permission to process the audio. Use translation and human review after extraction when multilingual publication is the objective.

What are the limits and troubleshooting steps?

First verify that the URL is public and currently playable, then try one named language. Check logs, event counts, Dataset items, and KVS keys. If extraction fails, consult current source behavior and the official yt-dlp subtitle options. If a file downloads but no row appears, conversion or parsing may have failed; FFmpeg documentation describes the conversion layer.

A verified run can charge Subtitles and still write zero rows because billing occurs before per-file conversion. Duplicate-looking language rows can arise from variants such as en and en-orig. Signed SRT URLs depend on KVS retention and access. Save authorized artifacts you need to retain. Never expose tokens in logs or support messages.

FAQ

Does the Actor transcribe audio? No. It only requests subtitle tracks exposed by the source.

Does it translate captions? No. Language options select available tracks; they do not create translations.

Why can one language produce multiple rows? A language pattern can match multiple source variants, and every successfully converted file is processed separately.

Can a completed run have no Dataset items? Yes. Source retrieval or file conversion can produce no writable row.

Can Subtitles be charged with zero items? Yes. The event occurs before conversion and Dataset writing once a subtitle-related file is present.

Are the captions verified? No. Accuracy and generation method depend on the source, and qualified human review remains necessary.

Does a public URL grant reuse rights? No. Confirm copyright, contract, privacy, platform terms, and any required consent before storage, translation, analysis, training, or republication.

  • Video To Text — use an audio-to-text workflow when an authorized video has no suitable caption track.
  • Instagram Video Transcript — use a transcript-oriented flow for supported Instagram video content.
  • YouTube Video Downloader — retrieve authorized YouTube media when the asset, rather than a subtitle file, is required.

Review each Actor's current input, output, billing, and source limits before substituting it in a pipeline.

Support and last updated

For a reproducible report, share the run ID, UTC time, redacted URL if needed, selected language options, build number, terminal state, Subtitles event count, Dataset item count, and KVS key names. Explain whether the issue concerns extraction, matching, conversion, parsing, storage, API access, or billing. Do not send API tokens or private source material.

Contact the TrueFetch community or support channel. For platform concepts, see the Apify Actor documentation. Last updated: July 23, 2026.