Professional Subtitle Translator & Video Captioner avatar

Professional Subtitle Translator & Video Captioner

Pricing

from $30.00 / 1,000 translated minutes

Go to Apify Store
Professional Subtitle Translator & Video Captioner

Professional Subtitle Translator & Video Captioner

Transcribe, translate, quality-check, and burn subtitles into videos. Upload video, audio, SRT, or VTT and export SRT, VTT, TXT, JSON, or ready-to-publish MP4. Supports multilingual subtitles with automatic timing and QC.

Pricing

from $30.00 / 1,000 translated minutes

Rating

0.0

(0)

Developer

François Fernandez

François Fernandez

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Transcribe, translate, quality-check, format, and optionally burn subtitles into video.

Upload a video, audio file, SRT, or VTT. The Actor can reuse existing subtitle tracks, translate them into multiple languages, correct technical subtitle issues, and export subtitle files or final subtitled MP4 videos.

Machine translations are not human-reviewed. Linguistic review is recommended before professional publication.

Which Actor should I use?

Each Actor covers a different stage of the subtitle workflow, so you only pay for the processing you actually need.

What this Actor does

Use this Actor to:

  • transcribe video or audio into timed subtitles;
  • reuse an existing SRT or VTT file without retranscribing;
  • extract a text subtitle track embedded in a compatible video container;
  • translate subtitles into up to five target languages per run;
  • apply terminology replacements for names, brands, and technical vocabulary;
  • check and correct subtitle timing and formatting;
  • export SRT, WebVTT, TXT, and structured JSON;
  • create optional MP4 videos with subtitles permanently embedded;
  • process several direct media URLs in one batch.

Supported inputs

Media

  • Video: MP4, MOV, MKV, WEBM
  • Audio: MP3, WAV, M4A, AAC, OGG, FLAC
  • Uploaded files through the Apify Console
  • Direct public HTTP or HTTPS links to media files
  • Multiple direct media URLs through mediaUrls

Existing subtitles

  • Standalone SRT or WebVTT
  • One video paired with an external SRT or VTT file
  • A compatible text subtitle track embedded in a video container

Not supported

YouTube, TikTok, Instagram, and similar webpage URLs are not direct media files and are refused. Download the media first, then upload it or provide a direct file URL.

Bitmap subtitle tracks such as PGS or VobSub are not supported because this Actor does not include OCR.

Main workflows

1. Transcribe video or audio

Choose the transcription mode to create timed subtitles from the audio track.

The Actor can automatically detect the spoken language, preserve speaker changes when diarization is enabled, and format the result using the selected subtitle profile.

2. Reuse existing subtitles

Use an external SRT/VTT file or an embedded text subtitle track to skip transcription.

This is useful when the original timing is already correct and you only need quality control, translation, or a final subtitled video.

3. Translate subtitles

Select one or more target languages. Each successful translation is returned as separate subtitle files.

The Translate into menu provides 10 validated output languages:

  • English (American) — EN-US
  • Spanish — ES
  • French — FR
  • German — DE
  • Italian — IT
  • Portuguese (Brazilian) — PT-BR
  • Arabic — AR
  • Chinese (Simplified) — ZH-HANS
  • Japanese — JA
  • Korean — KO

You can select up to five of these languages in one run.

Longer translated text may be redistributed into additional cues while remaining inside the available media timeline.

A failure in one language does not remove successful outputs from other languages.

4. Quality control

Technical QC checks:

  • maximum lines per subtitle;
  • maximum characters per line;
  • reading speed in characters per second;
  • minimum and maximum cue duration;
  • overlaps and chronological order;
  • minimum gaps between cues;
  • empty cues and invalid timecodes;
  • whitespace and line wrapping;
  • media-boundary overflow.

When correction mode is enabled, the Actor can rewrap lines, normalize whitespace, repair overlaps, extend or trim durations, and conservatively merge short adjacent fragments.

QC validates technical subtitle compliance. It does not guarantee that a machine translation is semantically or culturally correct.

5. Render final subtitled MP4 videos

Enable renderSubtitles to permanently embed subtitles into the video.

You can render:

  • the source language;
  • translated languages;
  • every available language.

Rendering uses FFmpeg and libass inside the Actor container. The original media file is never overwritten.

When subtitles are already burned into the image, an optional box or blur can hide a user-defined horizontal zone before the new subtitles are added.

Subtitle profiles

The Actor includes three formatting profiles:

ProfileIntended use
documentaryLong-form and general video
socialShort-form and social-media video
accessibilityMore conservative, highly readable subtitles

Advanced settings can override line length, reading speed, minimum duration, maximum duration, and related rules.

Output files

For each successful language, the Actor can generate:

  • .srt — SubRip subtitles;
  • .vtt — WebVTT subtitles;
  • .txt — plain-text transcript;
  • .json — structured data with metadata, cue timings, and QC information;
  • .mp4 — optional H.264/AAC video with burned subtitles.

Generated files are stored in the run Key-Value Store. The Dataset contains one result row per language with direct download links.

The OUTPUT record contains the complete run summary, including successful languages, failed languages, QC details, file references, billable minutes, and safe error messages.

Example input

Translate an existing French SRT paired with a video into English, Spanish, and German:

{
"mediaFile": "https://example.com/video.mp4",
"videoSubtitleMode": "external",
"videoSubtitleUrl": "https://example.com/subtitles-fr.srt",
"outputLanguageMode": "translations",
"targetLanguages": [
"EN-US",
"ES",
"DE"
],
"outputFormats": [
"srt",
"vtt",
"json"
],
"profile": "social",
"enableQc": true,
"qcCorrectionMode": "check-and-correct",
"qcAfterTranslation": true,
"renderSubtitles": false
}

Example output summary

{
"status": "success",
"sourceFilename": "video.mp4",
"languageCode": "fr",
"mediaDurationSeconds": 111.67,
"billableMinutes": 2,
"successfulLanguages": [
"EN-US",
"ES",
"DE"
],
"nonCompliantLanguages": [],
"failedLanguages": [],
"translations": [
{
"languageCode": "EN-US",
"status": "success",
"technicalStatus": "compliant",
"linguisticStatus": "machine-translated-unreviewed"
}
]
}

Pricing

This Actor uses pay-per-event pricing.

EventWhen it applies
Actor startOnce for a valid, non-empty run
Transcribed minutePer started media minute sent for transcription
Subtitle QC minutePer started subtitle minute processed with QC
Translated minutePer started minute and successful target language
Rendered video minutePer started minute and successful rendered language

The Apify Console displays the maximum permitted run cost before execution. A failed translation is not charged as a successful translated-language event, and a failed render is not charged as a successful rendered-video event.

Limits

LimitValue
Media size500 MB
Default media duration60 minutes
Absolute media duration180 minutes
Subtitle file size8 MB
Available target languages10 validated languages
Target languages per run5 maximum
Batch inputs50
Parallel inputs5
Subtitle lines2 maximum
Rendered MP42 GB per output

Inputs above the configured limits are rejected before paid provider processing whenever possible.

Privacy and external processing

Media is downloaded into temporary storage inside the run container and removed when the run ends.

When transcription is requested, audio is sent to the configured transcription provider. When translation is requested, subtitle text is sent to the configured translation provider. Video rendering runs locally inside the Actor container.

Sensitive credentials, signed URLs, and full transcripts are not intentionally written to logs.

Important translation notice

Translations are machine-generated and marked:

machine-translated-unreviewed

Technical QC verifies timing, line length, reading speed, gaps, overlaps, and export validity. It does not replace a native-language review.

Human review is particularly important for legal, medical, safety-critical, marketing, and culturally sensitive content.

Troubleshooting

MessageWhat to do
Social-platform page URLs are not supportedUpload the media or provide a direct media-file URL
No readable subtitle cue was foundCheck that the file is valid SRT or WebVTT
Media has no audio streamUse an existing external or embedded subtitle source
No embedded text subtitle trackSelect another text track or provide SRT/VTT
Translation failed for one languageDownload the successful languages and retry only the failed target
Translation is technically non-compliantReview the generated file and adjust the profile or timing limits
Rendering requires a video inputPair the subtitles with a real video file
Mask zone exceeds the frameReduce the mask top percentage or height
  1. Export SRT or VTT first.
  2. Review timing and machine translation.
  3. Correct terminology when needed.
  4. Render the final MP4 only after reviewing the subtitle files.