Auto translate new YouTube uploads into 5 languages every Monday
Every Monday at 6am, find videos you uploaded last week, generate translated versions in five target languages with HeyGen, and republish them back to your channel.
Build a weekly, fully deterministic code workflow that auto-localizes my YouTube channel into multiple languages using HeyGen. No judgement steps. Every node should be a known operation with structured inputs.
Trigger: a cron that fires every Monday at 6:00am in my local timezone.
Step 1. Call YouTube List Channels with mine=true to resolve my own channel ID. Cache the result for downstream steps.
Step 2. Call YouTube Search Videos filtered to that channelId, order=date, type=video, publishedAfter = now minus 7 days. Page through results until you have every video uploaded in the last week. If there are zero new videos, finish the run cleanly.
Step 3. For each new video, call YouTube Get Video to fetch the full snippet (title, description, tags, categoryId, playlist memberships) and the watchable URL of the form https://www.youtube.com/watch?v={videoId}. This URL is what we hand to HeyGen.
Step 4. For each (source video) x (target language) pair where the target languages are a fixed list of Spanish (es), Portuguese (pt), French (fr), German (de), Japanese (ja), call HeyGen Translate Video with the YouTube video URL as the source and the target language code. Capture the returned video_translate_id.
Step 5. For each translate job, call HeyGen Check Video Translate Status on a polling loop with exponential backoff (start at 30 seconds, cap at 2 minutes, give up after 60 minutes). Treat status 'success' as done; treat 'failed' as terminal and surface the error so the rest of the languages still proceed. Do not block the other jobs while one is polling.
Step 6. When a translate job is done, call HeyGen Retrieve Shareable Video URL (or read the download URL from the status response) and download the translated MP4 to local workflow storage immediately. HeyGen URLs expire after 7 days, and YouTube's resumable upload needs the raw bytes anyway.
Step 7. Call YouTube Upload Video with the downloaded MP4. Build the localized snippet from the original: title = original title + ' [XX]' where XX is the uppercased language code (ES, PT, FR, DE, JA); description = original description prepended with a one-line note like 'Translated with AI from the original at {originalUrl}.'; copy categoryId and tags from the source; set defaultLanguage to the target language. Default the privacyStatus to 'public' but expose it as a config so the user can switch to 'unlisted' or 'private' for review.
Step 8. If the source video belongs to a playlist on my channel, call YouTube Add Playlist Item to add the newly uploaded localized video to the same playlist. If the source video is not in a playlist, skip this step.
Output: one new YouTube upload per (source video, target language) pair, with the localized title suffix and the original playlist routing preserved. The workflow run should report, per source video, which languages succeeded and which failed.
Config surfaces I want exposed at the top of the workflow: the target language list, the title suffix template, the lookback window in days, the upload privacy status, and an optional filter (playlist ID, tag, or title regex) to limit which source videos get translated.
Additional information
What does this prompt do?
- Every Monday at 6am, finds the videos you uploaded to your own YouTube channel in the last 7 days.
- Sends each new video to HeyGen for AI translation into Spanish, Portuguese, French, German, and Japanese, with voice and lip sync preserved.
- Waits for each translation job to finish, then republishes the localized version back to your YouTube channel.
- Adds a language tag like ' [ES]' to the title and drops the new upload into the original video's playlist so your channel stays organized.
What do I need to use this?
- A YouTube channel you own, signed in with a Google account that can upload videos on your behalf.
- A HeyGen account on a plan that includes Video Translate (Creator tier or higher).
- Your short list of target languages and a naming convention for the localized titles.
How can I customize it?
- Change when it runs (every Monday at 6am by default) or the lookback window for what counts as 'new'.
- Add or remove target languages (defaults to Spanish, Portuguese, French, German, Japanese), or set a different list per source video.
- Tweak the title suffix, set translated uploads to private or unlisted for review, or route each language into its own playlist.
Frequently asked questions
Will the translated videos keep my voice and match my lips?
How long does each translation take?
Can I review the translations before they go public?
What if I only want to translate certain videos?
What happens if a translation fails for one language?
Reach a global audience without re-recording a single video.
Connect YouTube and HeyGen once, and Geni quietly localizes every new upload into five languages every Monday.