decktalk setup downloads, and which commands spend ElevenLabs credits. Read it before you set up a new machine or a CI runner, and before your first voiced build.
Software
DeckTalk needs Python 3.12 or later. It runs on Linux, macOS, and Windows.- DeckTalk has two Python dependencies, Playwright and static-ffmpeg. Your installer adds both.
- Playwright includes its own browser driver, so you do not need Node.
decktalk setupdownloads Chromium, ffmpeg, and KaTeX. You install nothing else by hand.
Accounts
A silent build needs no account and no API key. A voiced build needs two values from ElevenLabs.
Put both values in
.env in the project directory, or set them in the environment. A value that starts with <, such as <your-elevenlabs-key>, counts as unset. Part 3 of the quickstart shows where the values go.
What spends credits
Only two parts of DeckTalk call ElevenLabs. Thenarrate stage calls the text-to-speech endpoint, and decktalk soundscape calls the sound effects and music endpoints.
A voiced section costs the characters of its whole text. An edit therefore costs every changed section in full, not only the changed sentences. A ten-minute narration is about 9,000 characters.
A silent build stops when the project has voiced takes. With
--force, it empties the narration cache, so the next voiced build voices every section again. A silent build and a voiced build explains the cache.
To see a run before it spends credits, use --dry-run or preflight. None of these commands calls the API:
decktalk narrate --dry-runprints the text of each section, and which sections a voiced run would voice, with their characters.decktalk preflightprints the same plan, resolves every cue, and estimates each reveal from frozen frames.decktalk soundscape --dry-runprints every request.
setup, init, doctor, preflight, beats, record, measure, check, assemble, verify, shots, status, and runtime.
ElevenLabs plans
Every ElevenLabs plan can call the API, including the free plan. The free plan has three limits for a video you publish:- It has no commercial license.
- The title of published content must include “elevenlabs.io” or “11.ai”.
- It cannot use Voice Library voices through the API.
What setup downloads
decktalk setup makes three downloads, one time per machine. decktalk doctor then reports on each download.
To move DeckTalk’s cache, set
DECKTALK_CACHE_DIR.
Linux system libraries
On Linux,setup passes --with-deps to Playwright, and Playwright installs Chromium’s system libraries with apt-get.
- Playwright runs apt-get through sudo.
- If sudo is missing, it uses
su root -c. - If
setupruns as root, it uses neither.
setup then stops before it downloads ffmpeg and KaTeX.
If a download is missing
- KaTeX download failed.
setupwarns and continues.decktalk initthen warns that KaTeX is not cached, and the new project’s pages load KaTeX from a CDN. - KaTeX is not cached.
doctorprintswarningin thekatexrow and exits 0, because pages load KaTeX from a CDN. With--strict, it exits 1. setupnever ran. static-ffmpeg downloads ffmpeg the first time DeckTalk needs it.- static-ffmpeg cannot give ffmpeg. DeckTalk uses the ffmpeg on your PATH.
DECKTALK_FFMPEG and DECKTALK_FFPROBE override every ffmpeg source above.
Time
Recording runs in real time, one section after another. A first silent build of the scaffold took about 276 seconds on a MacBook Pro with Apple M5 Pro and 64 GB memory. The video it made is 257.72 seconds long. A slower machine takes longer. Rebuild one section shows how to record only the sections that changed.The ffmpeg license
The ffmpeg builds that static-ffmpeg downloads are GPL builds. DeckTalk runs ffmpeg as a separate process and does not link against it. THIRD_PARTY_NOTICES.md lists the license of each build. To use an ffmpeg build of your own, setDECKTALK_FFMPEG and DECKTALK_FFPROBE to its two executables.
Next
- Install and build your first video: Quickstart
- Build in CI or with no network: Build in CI and offline
- Understand the costs of an edit: Rebuild one section