TECHNICAL GUIDE
Automate Subtitle Translation in 2026 — API, CLI & Batch Workflows
By Lisa · Updated March 2026 · 9 min read
To automate subtitle translation, connect to the AdTransPro REST API or install the CLI. Upload video files (or point to a folder for batch jobs), specify target languages, and receive frame-aligned SRT/VTT subtitles in 145+ languages — typically 50% faster than manual workflows. Webhooks notify your pipeline on completion so you can plug directly into CI/CD.
Why Automate Subtitle Translation
Manual subtitle translation is the bottleneck that kills global launch timelines. Industry data shows a single 10-minute video takes an average of 2 hours to subtitle in one language — multiply by 10 markets and you are looking at a week of translator time per asset.
Developer-first demand
Search results for 'automate subtitle translation' are dominated by GitHub repos and Stack Overflow threads. The audience is technical — they want an API, not a UI wizard.
Cost spirals at scale
LSP rates run $0.25–$0.75/min/language. A 100-video library in 5 languages can cost $12,000+ per quarter — before revisions.
Inconsistent quality
Human translators vary across sessions. Glossary drift is real — especially for brand terms, product names, and CTAs that must stay consistent.
AdTransPro API Setup
Generate an API key from your AdTransPro dashboard under Settings → API Keys. All endpoints use Bearer token auth.
Submit a translation job
curl -X POST https://api.adtranslate.pro/v1/translate \
-H "Authorization: Bearer $ADTRANS_API_KEY" \
-F "file=@webinar-en.mp4" \
-F "source_lang=en" \
-F "target_langs=es,de,ja,zh-Hans,pt" \
-F "output_formats=srt" \
-F "frame_align=true"
# Response
{
"job_id": "job_abc123",
"status": "processing",
"estimated_seconds": 90
}Poll for completion
curl https://api.adtranslate.pro/v1/jobs/job_abc123 \
-H "Authorization: Bearer $ADTRANS_API_KEY"
# When status = "completed", download_urls are populated
{
"job_id": "job_abc123",
"status": "completed",
"download_urls": {
"es": "https://cdn.adtranslate.pro/output/job_abc123/es.srt",
"de": "https://cdn.adtranslate.pro/output/job_abc123/de.srt",
"ja": "https://cdn.adtranslate.pro/output/job_abc123/ja.srt"
}
}Webhook setup
Instead of polling, register a webhook URL in your dashboard. AdTransPro will POST a payload when each job finishes:
{
"event": "job.completed",
"job_id": "job_abc123",
"source_file": "webinar-en.mp4",
"download_urls": {
"es": "https://cdn.adtranslate.pro/output/job_abc123/es.srt",
"de": "https://cdn.adtranslate.pro/output/job_abc123/de.srt",
"ja": "https://cdn.adtranslate.pro/output/job_abc123/ja.srt",
"zh-Hans": "https://cdn.adtranslate.pro/output/job_abc123/zh-Hans.srt",
"pt": "https://cdn.adtranslate.pro/output/job_abc123/pt.srt"
}
}CLI Workflow
The AdTransPro CLI wraps the API into shell-friendly commands — ideal for scripting, cron jobs, and local batch runs.
Install & authenticate
npm install -g adtrans-cli
adtrans login # opens browser OAuth flowTranslate a single file
adtrans translate ./video.mp4 \
--target es,de,ja \
--format srt \
--out ./subtitles/Batch-translate a folder
adtrans translate ./videos/ \
--target es,de,ja,zh-Hans,pt \
--format srt,vtt \
--out ./subtitles/ \
--concurrency 20The CLI auto-discovers .mp4, .mov, and .webm files in the folder. Use --format to specify one or more output formats (srt, vtt).
Webhook & CI/CD Integration
Plug AdTransPro into your existing deployment pipeline. Below is a GitHub Actions example that translates new video assets on every push to the main branch:
# .github/workflows/translate-subtitles.yml
name: Translate Subtitles
on:
push:
branches: [main]
paths: ["assets/videos/**"]
jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install AdTransPro CLI
run: npm install -g adtrans-cli
- name: Authenticate
run: adtrans login --token ${{ secrets.ADTRANS_API_KEY }}
- name: Translate new videos
run: |
adtrans translate ./assets/videos/ \
--target es,de,ja,zh-Hans,pt,fr,ko \
--format srt,vtt \
--out ./assets/subtitles/ \
--concurrency 10
- name: Commit subtitles
run: |
git config user.name "github-actions[bot]"
git config user.email "actions@github.com"
git add ./assets/subtitles/
git commit -m "chore: auto-translate subtitles" || true
git pushBatch Processing at Scale
How does automated translation compare to manual workflows when you are localizing a library of 100 videos?
Automated vs Manual Subtitle Translation
| Method | Time (per 100 videos) | Cost | Accuracy | Scale |
|---|---|---|---|---|
| Manual | ~200 hours | $$$$ | Human-variable | Low |
| Generic MT (copy-paste) | ~40 hours | $$ | 60–70% | Medium |
| AdTransPro API | ~3 hours | $ | 95–97% | 500+ concurrent |
AdTransPro processes 500+ videos concurrently. Time estimate assumes average 5-minute source videos with 5 target languages.
Glossary & Quality Control
Consistency matters — especially for brand names, product terms, and CTAs. AdTransPro supports CSV glossary uploads that lock specific translations across all jobs.
Upload a CSV glossary
Format: source_term, target_lang, translated_term. Upload via dashboard or API (POST /v1/glossaries). Reference the glossary_id in every translate call.
QA flags
AdTransPro auto-flags subtitles that exceed reading speed thresholds (default 21 chars/sec), have overlapping timecodes, or fall below a confidence score. Review flagged segments in the editor or via API.
Human-in-the-loop review
Export XLSX files for LSP handoff. Translators review only flagged segments instead of the full transcript — cutting review time by up to 80%.
Frequently Asked Questions
How do I automate subtitle translation with an API?
Use the AdTransPro REST API. Send a POST request to /v1/translate with your video file, source language, target languages, and desired output format (SRT/VTT). The API returns a job ID you can poll or receive via webhook when processing completes.
Can I batch-translate subtitles for hundreds of videos automatically?
Yes. AdTransPro supports batch processing of 500+ files concurrently. Use the CLI with folder-level commands or the API with parallel requests — each job is processed independently and fires a webhook on completion.
What programming languages does the AdTransPro API support?
The AdTransPro REST API works with any programming language that can make HTTP requests. Official SDKs are available for Node.js, Python, and PHP, with community wrappers for Go and Ruby.
How much does automated subtitle translation cost?
The Creator plan starts at $8/month for 300 minutes. API billing is per minute of source video regardless of how many target languages you select — so translating one video into 10 languages costs the same as translating into one.
Automate your subtitle workflow today
300 free media minutes. No credit card. API key in 2 minutes.