TTS Providers

ElevenLabs

Generate voiceover narration using the ElevenLabs text-to-speech API.

Setup

The ElevenLabs provider uses the @elevenlabs/elevenlabs-js package as a peer dependency. Install it alongside playwright-recast:

npm install @elevenlabs/elevenlabs-js

Set your API key as an environment variable:

export ELEVENLABS_API_KEY="..."

Usage

import { Recast } from 'playwright-recast'
import { ElevenLabsProvider } from 'playwright-recast/providers/elevenlabs'

await Recast
  .from('./traces')
  .parse()
  .subtitlesFromSrt('./narration.srt')
  .voiceover(ElevenLabsProvider({
    voiceId: 'onwK4e9ZLuTAKqWW03F9',
    modelId: 'eleven_multilingual_v2',
    languageCode: 'cs',
  }))
  .render({ format: 'mp4' })
  .toFile('demo.mp4')

Configuration options

OptionTypeDefaultDescription
voiceIdstring'onwK4e9ZLuTAKqWW03F9' (Daniel)ElevenLabs voice ID
modelIdstring'eleven_multilingual_v2'ElevenLabs model
languageCodestringundefinedForce language via ISO 639-1 code (e.g. 'cs', 'en', 'de')
apiKeystringprocess.env.ELEVENLABS_API_KEYAPI key (overrides env variable)

Voice ID

Each ElevenLabs voice has a unique ID. You can find voice IDs in the ElevenLabs Voice Library. The default voice is Daniel (onwK4e9ZLuTAKqWW03F9).

ElevenLabsProvider({
  voiceId: 'onwK4e9ZLuTAKqWW03F9', // Daniel
})

Language code

The languageCode option forces the TTS engine to use a specific language. This is useful for multilingual content where auto-detection may produce incorrect results.

Use ISO 639-1 codes:

CodeLanguage
enEnglish
csCzech
deGerman
frFrench
esSpanish
ElevenLabsProvider({
  voiceId: 'onwK4e9ZLuTAKqWW03F9',
  modelId: 'eleven_multilingual_v2',
  languageCode: 'cs',
})

CLI usage

npx playwright-recast -i ./traces --srt narration.srt --provider elevenlabs --voice onwK4e9ZLuTAKqWW03F9
npx playwright-recast -i ./traces --srt narration.srt --provider elevenlabs --voice onwK4e9ZLuTAKqWW03F9 --model eleven_multilingual_v2

Environment variable

VariableRequiredDescription
ELEVENLABS_API_KEYYes (unless apiKey is set)Your ElevenLabs API key

On this page