Python
DeckTalk needs Python 3.12 or later. Its two Python dependencies are Playwright and static-ffmpeg, and you do not need Node. The quickstart installs it with uv, pipx, or pip.What setup downloads
decktalk setup makes three downloads, once per machine, and decktalk doctor reports on
each of them afterwards.
On Linux,
setup passes --with-deps to Playwright, which also installs Chromium’s system
libraries with apt-get. Playwright runs apt-get through sudo, or through su root -c when
sudo is missing, and it uses neither when setup runs as root. On a distribution without apt-get this step fails, and
setup stops before it downloads ffmpeg and KaTeX.
decktalk init copies the cached KaTeX into the project’s deck/katex/, so equations render
with no network. When the KaTeX download fails, setup warns and continues, and a project
created before KaTeX is cached loads it from a CDN instead. When setup has not run,
static-ffmpeg downloads ffmpeg the first time DeckTalk asks for it. An ffmpeg on your PATH is
used only when static-ffmpeg cannot provide one, and DECKTALK_FFMPEG and DECKTALK_FFPROBE
override both.
The ffmpeg license
DeckTalk is licensed under Apache-2.0. ffmpeg’s own source is licensed under LGPL-2.1-or-later, and the builds that static-ffmpeg downloads are GPL builds that include libx264. The Linux, Windows, and Intel macOS builds are configured with--enable-gpl,
--enable-version3, and --enable-libx264, so they are licensed under GPL-3.0-or-later. The
Apple silicon macOS build is configured with --enable-gpl and --enable-libx264, so it is
licensed under GPL-2.0-or-later. DeckTalk runs ffmpeg as a separate process and does not link against it.
To use a build of your own, set DECKTALK_FFMPEG and DECKTALK_FFPROBE to its two
executables.
THIRD_PARTY_NOTICES.md
lists every third-party component and its license.
Accounts
A silent build needs no account and no API key. A voiced build needs an ElevenLabs API key inELEVENLABS_API_KEY and a voice id in ELEVENLABS_VOICE_ID. Every ElevenLabs plan, including
the free plan, can call the API.
decktalk soundscape needs the API key and no voice id. The quickstart’s
Add your voice step shows where both values go, and the
FAQ compares the plans.
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.
Each voiced section costs the characters of its whole text, so an edit costs the characters
of every section whose text changed, not only those of the changed sentences.
decktalk narrate --dry-run prints the text that a run would send, section by section, and
decktalk soundscape --dry-run prints every request. Neither makes an API call. A silent
build spends nothing, and so do setup, init, doctor, beats, record, measure,
check, assemble, verify, shots, status, and runtime.
Time
Recording runs in real time, one section after another, so a first silent build of the scaffold takes a few minutes. Rebuild one section shows how--only records only the sections that changed.