Corporate training content is expensive to produce, goes stale fast, and doesn’t scale across languages. A single compliance training video can cost 5,000–15,000 to produce professionally — and needs to be re-recorded every time a policy changes.
Training docs/policies → LLM structures into video modules → Video Agent renders → Translate for global teams
Generate training videos from your existing materials. When the source document updates, regenerate the video. Need it in 10 languages? Use Video Translation.
Use an LLM to convert each training document into a structured video prompt. The LLM acts as an instructional designer.
import anthropicclient = anthropic.Anthropic()def generate_training_prompt(module, content): message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=1500, messages=[{ "role": "user", "content": f"""You are an instructional designer creating a trainingvideo from a policy document. Convert this into a HeyGen Video Agent prompt.Structure the video as:1. Introduction (10s) — What this training covers and why it matters2. Key concepts (60-70% of duration) — Break into 2-4 clear sections with specific examples and scenarios employees will recognize3. Do's and Don'ts (15s) — Quick visual checklist4. Summary + quiz teaser (10s) — Recap key points, prompt to take the quizRequirements:- Tone: {module['style']}- Duration: {module['duration']}- Use text overlays for key terms and definitions- Include scenario-based examples ("Imagine you receive an email from...")- Make it engaging — this isn't a lecture, it's a conversationTraining document:{content}Output ONLY the Video Agent prompt.""" }], ) return message.content[0].text# Generate prompt for each modulefor module in modules: with open(module["source"]) as f: content = f.read() module["video_prompt"] = generate_training_prompt(module, content)
3
Generate videos
Submit each module to Video Agent. Space them out for rate limits.
The biggest advantage of generated training videos: when the policy changes, regenerate the video.
Policy doc updated → Detect change (git diff, CMS webhook, manual trigger) → Re-run the same pipeline → New video replaces the old one → Re-translate if needed
No re-recording, no scheduling a film crew, no editing. Just re-run the pipeline.