Skip to main content
The 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.
Each stage function takes a 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.
  • record with seconds records every section for that long. With use_beats=False, the pages play in autoplay.
  • shoot with section takes frames from a playing section at each time in at, 0.5 s by default.
  • shoot with cues needs exactly one step in steps.
  • spoken_words gives each word in seconds after its section starts. words keeps the voice’s spelling, and texts gives the same words with the script’s punctuation and case.
  • cut_clip resolves a relative out or words_out against the project. words_out defaults to out with .words.json. decktalk clip describes 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 under build/. Build artifacts gives every field.

Errors and logging

Every error that DeckTalk raises on purpose is a DeckTalkError. 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.