Skip to content

// AI Tools

Dub Studio

An AI video dubbing studio: paste a link or a whole playlist, pick one of 15 languages, review the translation, and download the dubbed video with subtitles. A PHP web app, n8n workflows and a local GPU worker in Python.

Type
Full-stack app + GPU worker
Built with
PHP, Python & n8n
Audience
Creators & ministries
Dub Studio landing page: "Your videos, in another language" headline above three steps — add a video, check the translation, download — and a Log in to the studio button
Dub Studio // AI Tools

01 06

Overview

Dub Studio turns a video into a dubbed version in another language. A user pastes a YouTube link, a whole playlist, or uploads a file, then chooses the target language and voice. The system transcribes the original speech, translates it, generates a new voice track timed to the video, mixes it with the original music if wanted, and returns a finished video with subtitles — built for creators and ministries who want to share talks, sermons and lessons without a studio or voice actors for every video.

02 06

Challenge

Professional dubbing is slow and expensive, so most videos are only ever available in one language. Fully automatic machine translation makes mistakes that matter — changed numbers, wrong Bible references, mistranslated names, or jokes that don’t land — and video processing needs a strong GPU, which a cheap shared web host doesn’t have.

03 06

Solution

A split architecture: a lightweight PHP website on shared hosting handles login, chunked uploads, the job list, the review editor and downloads, while a Windows PC with an NVIDIA GPU does the heavy work. n8n bridges the two — forwarding start, status and cancel calls and holding the OpenAI key — so the PC is never exposed to the internet and no secrets live on the worker. Video files never pass through n8n: the worker pulls uploads from the website and pushes the finished video straight back. The translation step is its own module with a quality gate that checks numbers, glossary terms, Scripture references and subtitle match line by line; critical problems block the job until a named reviewer approves or edits the line, and only failing lines are retranslated with a stronger model to keep costs low.

04 06

Results

Around 7,500 lines across the website, worker and tests. The translation stage is covered by a fast offline suite that includes 14 required real-world cases — numbers, Bible quotes, names, humour and very short lines — with scripted and recorded model answers, so it runs in seconds and gives the same result every time.

Target languages
15
Translation-stage tests
200+
Max upload, in 5 MB resumable chunks
4 GB

05 06

Key features

  • Three ways in: a video link, a full playlist (each video queued as its own job), or a file upload up to 4 GB
  • 15 target languages, including Spanish, Portuguese, French, Tagalog, Cebuano and Indonesian, with male or female voices
  • Content profiles — general, sermon, teaching, business, science, comedy — that set tone, Scripture and number handling, and humour
  • Human-in-the-loop review: pause after translation and fix or approve every line next to the English
  • Manual mode: download English subtitles plus a ready-made ChatGPT prompt, then upload your own translation
  • Background audio options: keep the music without the original voice, dubbed voice only, or original quietly underneath
  • Live progress, cancel and resume, and an in-browser player for finished videos
  • Jobs survive the GPU PC going offline, stop after three crashes, and keep finished stages on resume
  • Password login with CSRF protection, per-job worker keys, and automatic cleanup of old files

06 06

Development process

  1. Step 1: Download

    yt-dlp fetches single videos or whole playlists; uploaded files are pulled from the website by the worker.

  2. Step 2: Transcribe

    faster-whisper (large-v3 on CUDA) produces English text with word-level timing on the local GPU.

  3. Step 3: Translate

    OpenAI through n8n, with Ollama and DeepL as fallbacks, behind a versioned quality gate and optional human review.

  4. Step 4: Voice

    Microsoft Edge TTS generates the dubbed voice, with Piper for offline voices; Demucs removes the original voice to keep the music.

  5. Step 5: Mix

    FFmpeg fits timing, mixes the tracks, normalizes loudness to -16 LUFS and uploads the finished video back to the website.

Stack

  • PHP
  • JavaScript
  • Tailwind CSS
  • Python
  • n8n
  • OpenAI
  • faster-whisper
  • Ollama
  • DeepL
  • Edge TTS
  • Piper
  • Demucs
  • FFmpeg
  • yt-dlp
  • pytest

// Keep exploring

01 // Laravel

TalentKonekt home page: "Hire verified Filipino talent" hero with a choice between hiring and looking for work

TalentKonekt

A Laravel hiring platform that connects employers with verified Filipino talent, with AI-assisted matching, job posting, and talent search.

  • PHP
  • Laravel
  • JavaScript
  • MySQL
  • +1

02 // Magento

PureGear home page: iPhone 18 case hero banner with a Shop Now button below the Shop by Device and Shop by Category menu, above a Shop by Model carousel

PureGear

Ongoing work on PureGear’s Magento store for phone cases, screen protection and power accessories: a Klaviyo integration, fixes to the main menu and category filters, and new store pages.

  • Magento
  • PHP
  • JavaScript
  • Klaviyo

03 // WordPress

Carwraps home page: "Custom Car Wraps and Vehicle Graphics" headline and Get a Quote button beside a fully wrapped SUV, above a row of client logos

Carwraps

A WordPress and Divi website for a Los Angeles car wrap and vehicle graphics company, built from the ground up and maintained since, with a before-and-after wrap slider, project galleries and a quote form.

  • WordPress
  • Divi
  • PHP
  • JavaScript

// Your project next

Need something like this?

Tell me about your goals and constraints — I’ll reply within one business day.