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.

1

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.

2

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.

3

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 flow

Translate 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 20

The 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 push

Batch 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

MethodTime (per 100 videos)CostAccuracyScale
Manual~200 hours$$$$Human-variableLow
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.

1

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.

2

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.

3

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.

Related Reading