Skip to content

Repository files navigation

Showwright

Showwright compiles JSON show definitions into vMix broadcast presets (.vmix / .vmixZip).

I use it to turn a one-file episode definition (guests, cameras, assets, scripts) into a portable vMix bundle ready to open on a studio machine.

shows/demo-episode.json  +  templates/  +  profiles/
            │
            ▼
     vmix-compile build
            │
            ▼
      output/demo.vmixZip

Install

From a clone (supported path):

# requires Python 3.11+ and uv: https://docs.astral.sh/uv/
uv sync --extra dev
# optional YAML round-trip converter
uv sync --extra dev --extra convert

Console scripts: vmix-compile, vmix-convert.

There is no published PyPI package yet. Install from source as above. The installable package name is showwright; console scripts remain vmix-compile and vmix-convert.

Quick start

uv run vmix-compile validate shows/demo-episode.json

# Episode mode is stricter (closing_url, guest_assets, guest headline).
# Use it on your own complete show files; the demo show is basic-mode only.

uv run vmix-compile build shows/demo-episode.json \
  --templates-dir templates \
  --profiles-dir profiles \
  -o output/demo.vmixZip

Loose .vmix instead of zip:

uv run vmix-compile build shows/demo-episode.json --loose -o output/demo.vmix

YAML round-trip (experimental)

uv sync --extra convert
uv run vmix-convert to-yaml path/to/file.vmix -o exploded/
uv run vmix-convert to-vmix exploded/ -o roundtrip.vmix

What it does

Piece Role
Show JSON Episode: guests, assets, lower thirds, scripts
Templates Base vMix preset structure
Machine profile Device labels for cameras and audio
Asset library File paths for intros, music, titles
vmix-compile Validate and build
vmix-convert Explode/rebuild .vmix as YAML

Production rule sets under jcs/ and validators named jcs are the studio rule pack used in tests and demos. Examples under shows/ and profiles/ are synthetic.

Non-goals

  • Driving a live vMix instance over the network
  • Shipping real client presets or guest rosters
  • A published PyPI wheel (source install only for now)

Development

uv sync --extra dev --extra convert
uv run pytest
uv run python scripts/template_drift_check.py

License

MIT. See LICENSE.

About

Showwright — compiles JSON show definitions into vMix broadcast presets

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages