decktalk package runs the same pipeline as the command line. This page lists every public name, with its
signature, its result, and the errors it raises.
Project and returns a typed result. It logs progress to the decktalk logger. It
raises a DeckTalkError subclass when it fails, and it never calls sys.exit.
Public names
The package exports these names. Every other name is internal.
Note: Everything under
decktalk.media is internal. So is everything under decktalk.providers except the three
speech names, and every name that starts with an underscore.
Project
Project.load reads and validates decktalk.toml. Project.from_toml builds a project from a mapping you have
already parsed.
Raises
ConfigError when decktalk.toml is missing, cannot be parsed, or fails validation. The message names
the table and the field.
load_settings(root=None, *, toml=None, environ=None, user=None) builds a Settings from the defaults, the
per-machine file, the project’s tables, and the environment.
build
build runs the seven stages in order: narrate, resolve_beats, record, measure, check, assemble, and
verify.
Returns a
BuildResult with one field per stage: narration, beats, recordings, leads, checks,
assembly, and verification. Its ok is true when the video was assembled and verification.ok is true. The
verification checks section starts, cuts, and cut continuity, and no cue.
Raises
Note:
UnknownCueError is a ConfigError. Import it from decktalk.stages.beats. Its result holds the full
BeatsResult, and beats.json is already written.
verify
verify checks section starts, cuts, and cues on the final mp4. Verify defines every
measurement.
Returns a
VerifyResult.
Raises
MissingInputError when the section mp4s or the final mp4 are missing. Raises ConfigError when a
check does not start with a section number.
Other stages
These functions run one stage each, or read the project.recordwithsecondsrecords every section for that long. Withuse_beats=False, the pages play in autoplay.shootwithsectiontakes frames from a playing section at each time inat, 0.5 s by default.shootwithcuesneeds exactly one step insteps.spoken_wordsgives each word in seconds after its section starts.wordskeeps the voice’s spelling, andtextsgives the same words with the script’s punctuation and case.cut_clipresolves a relativeoutorwords_outagainst the project.words_outdefaults tooutwith.words.json.decktalk clipdescribes the cut.
BeatsResult, PreflightResult, RecordingCheck, VerifyResult, and StatusReport each have to_dict(root). It returns the data
that the command line prints under --json. Numbers stay numbers, and paths are relative to root with forward
slashes. Pass project.root.
Artifacts
These classes read and write the files underbuild/. Build artifacts gives every field.
Errors and logging
Every error that DeckTalk raises on purpose is aDeckTalkError.
The stages log progress to the
decktalk logger at the INFO level. Attach a handler to see it. __version__ is
the installed version string.
Speech providers
A speech provider returns audio and a start and end time for every word. ElevenLabs is the built-in provider.
Registering a name again replaces the earlier factory. DeckTalk loads no plugins. For a provider that the command
line can use, open a pull request that adds a module under
src/decktalk/providers/ and registers it.
Stability
The file formats and the page contract are the stable surface:decktalk.toml, cues.json, the build artifacts,
and the page runtime. A change to them comes with a migration note in the changelog. The Python names
can still change, and the changelog records each rename.
Related
- Look up the files that the stages write: Build artifacts
- Look up a tuning field: Configuration
- Run the same stages from a shell: CLI