SkillsMar 29, 2026·1 min read

Remotion AI Voiceover Skill — ElevenLabs TTS

AI skill for adding ElevenLabs text-to-speech voiceover to Remotion videos. Auto-sizes composition duration to match generated audio.

TL;DR
A Remotion skill that generates ElevenLabs TTS voiceover and auto-sizes video composition duration to match the audio length.
§01

What it is

This is a Remotion skill for adding AI-generated voiceover to programmatic videos using ElevenLabs text-to-speech. The skill generates speech audio per scene and uses Remotion's calculateMetadata function to dynamically size the video composition duration to match the generated audio. This ensures that the video and voiceover are always synchronized.

The skill targets developers creating automated video content with Remotion who want professional-quality voiceover without recording audio manually. It integrates ElevenLabs' voice synthesis directly into the Remotion build pipeline.

§02

How it saves time or tokens

Without this skill, adding voiceover to Remotion videos requires manually generating audio files, calculating their duration, and adjusting video composition length. This skill automates the entire flow: write text, generate audio, and the video adapts automatically. AI agents using this skill can produce narrated videos in a single pass.

§03

How to use

  1. Install the Remotion skills: npx skills add remotion-dev/skills.
  2. Set your ElevenLabs API key: export ELEVENLABS_API_KEY=your_key.
  3. Use the voiceover pattern in your Remotion compositions with calculateMetadata for dynamic duration.
§04

Example

# Install Remotion skills
npx skills add remotion-dev/skills

# Set ElevenLabs API key
export ELEVENLABS_API_KEY=your_key
import { Audio, useCurrentFrame } from 'remotion';

// calculateMetadata generates TTS and returns duration
export const calculateMetadata = async ({ props }) => {
  const audio = await generateVoiceover(props.script);
  const durationInFrames = Math.ceil(audio.duration * 30);
  return {
    durationInFrames,
    props: { ...props, audioUrl: audio.url },
  };
};

export const NarratedScene = ({ audioUrl, script }) => {
  return (
    <>
      <Audio src={audioUrl} />
      <div style={{ fontSize: 24, padding: 40 }}>
        {script}
      </div>
    </>
  );
};
§05

Related on TokRepo

§06

Common pitfalls

  • ElevenLabs API calls cost money per character of generated speech. Long scripts accumulate costs. Estimate costs before generating voiceover for large video batches.
  • Audio generation adds build time to Remotion renders. Cache generated audio files to avoid regenerating unchanged voiceovers on every render.
  • Voice quality depends on the ElevenLabs model and voice selection. Test different voices for your content type before committing to a production workflow.

Frequently Asked Questions

What is ElevenLabs?+

ElevenLabs is an AI voice synthesis platform that generates realistic text-to-speech audio. It offers multiple voice models with different characteristics. This skill uses ElevenLabs' API to generate voiceover audio for Remotion videos.

How does auto-sizing work?+

The calculateMetadata function generates the voiceover audio, measures its duration, and sets the Remotion composition's durationInFrames accordingly. This ensures the video is exactly as long as the voiceover.

Can I use a custom voice?+

Yes. ElevenLabs supports custom cloned voices and a library of pre-made voices. Configure the voice ID in your skill settings or composition props.

Does this work without ElevenLabs?+

This specific skill requires ElevenLabs. For other TTS providers, you would need to modify the audio generation function to call a different API while keeping the calculateMetadata pattern.

How much does ElevenLabs cost?+

ElevenLabs offers a free tier with limited characters per month. Paid plans start at $5/month for more quota. Pricing is per character of generated speech. Check elevenlabs.io for current pricing.

Citations (3)
🙏

Source & Thanks

Created by Remotion. Licensed under MIT. remotion-dev/skills — Voiceover rule

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets