Dub YouTube videos and translate subtitles with ElevenLabs, Claude, and Google Drive
Go to WorkflowDescription
Quick overview
This workflow localizes YouTube (or direct media) videos by creating dubbed MP3 audio tracks with ElevenLabs dubbing and translating SRT subtitles with Claude via an OpenAI-compatible API, then saving outputs to Google Drive and logging results to Google Sheets.
How it works
Triggers on a new YouTube channel upload via RSS or when a user submits the n8n form with a video URL, target languages, and background-audio preference.
Validates the input, expands the language list (defaults from settings for RSS runs), and detects whether the source is YouTube or a direct MP4/MP3 link.
If the source is YouTube, downloads an audio track and selects an SRT caption track via the apimodels.app media endpoint; otherwise it uses the provided direct file URL and skips captions.
Creates one job per target language, starts an ElevenLabs dubbing task via the apimodels.app audio endpoint, and translates the SRT cue-by-cue with Claude while preserving timestamps when captions exist.
Polls each dubbing task until it completes, fails, or times out based on the configured maximum wait.
For completed tasks, downloads the dubbed audio, saves the MP3 (and translated SRT when available) to Google Drive, and appends a “Done” row with Drive links to Google Sheets.
For failures or timeouts, logs a “Failed” row with the error details to Google Sheets and, for form runs, returns an HTML summary page of all languages and links.
Setup
Create an API key on apimodels.app and add it as an OpenAI credential in n8n with base URL https://api.apimodels.app/v1.
Connect Google Drive OAuth2 credentials and set a target Drive folder ID where MP3 and SRT files are saved.
Connect Google Sheets OAuth2 credentials, create a spreadsheet tab named Localization log with the required headers, and paste the Sheet ID into the workflow settings.
Replace YOUR_CHANNEL_ID in the YouTube RSS feed URL to monitor the correct channel, or use the provided n8n form endpoint to submit videos manually.
Review and adjust defaults in the Settings (languages, polling interval, max wait time, and translator model) to match your localization needs.
Requirements
An apimodels.app account and API key. New accounts get $0.1 of free credit.
Google Drive and Google Sheets accounts.
Dubbing is billed at $0.55 per minute per language. In our test, a 19-second video in Spanish and Japanese took 84 seconds and cost $0.367 in total.
Subtitles need captions on the original YouTube video. Direct MP4 or MP3 links are dubbed without subtitles.
Customization
Change the default languages, background audio, translation model or maximum wait in the Settings node.
Add more languages to the form's checkbox list and to the language map in the Plan the job node.
Swap Google Drive for Dropbox or S3, or add a Slack message after Log the language to tell your team a video is ready.
Additional info
Step-by-step setup guide with screenshots: https://apimodels.app/docs/n8n
This workflow was created by apimodels and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.