Skip to main content

Turn specs into spectacles – YAML user journeys to live product demos

Project description

SpecSpectacle

Turn specs into spectacles – YAML user journeys to live product demos.

Python Version License Status


What is SpecSpectacle?

SpecSpectacle is an open-source CLI tool that transforms YAML specifications into polished product demo videos. Write a YAML file describing your user journey, run a single command, and get an MP4 video with:

  • 🎬 Automated browser recording via Playwright
  • 🗣️ English narration with Text-to-Speech
  • 📝 On-screen text overlays at precise timestamps
  • 🔄 Version-controlled demos that live in your repo

Perfect for developers who want reproducible, code-driven demo videos without manual screen recording or video editing.


🚀 Quick Start

Prerequisites

Installation

# Install from PyPI (when v0.1.0 is released)
pip install specspectacle

# Install Chromium browser for Playwright
playwright install chromium

📖 Usage

1. Create a YAML Spec

specspectacle scaffold demo.yaml

This generates a template YAML with commented examples.

2. Validate Your Spec

specspectacle validate demo.yaml

3. Generate Your Demo Video

specspectacle run demo.yaml

Your video will be saved to ./output/demo.mp4!


📚 Documentation


🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • How to run tests
  • Code style guidelines (Black, isort, type hints)
  • Pull request process

📜 License

Apache 2.0 - See LICENSE for details.


🎬 Example

name: "Simple Login Demo"
version: "0.1.0"

config:
  target_app: "https://app.example.com"
  viewport:
    width: 1280
    height: 720

flows:
  - name: "Login"
    steps:
      - action: "navigate"
        url: "https://app.example.com/login"
        narration:
          text: "Navigate to the login page"
        overlay:
          text: "Step 1: Open login page"
          position: "bottom"
          
      - action: "type"
        selector: "#email"
        text: "user@example.com"
        narration:
          text: "Enter your email address"

Run with:

specspectacle run login-demo.yaml

Future

  • Multi-language support
  • SaaS backend with cloud rendering
  • GitHub Action integration
  • Web UI for visual flow editing
  • Template library

🙏 Acknowledgments

Built with:


Status: ✅ Phase 1 complete! v0.1.0 released

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

specspectacle-0.1.0.tar.gz (91.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

specspectacle-0.1.0-py3-none-any.whl (56.9 kB view details)

Uploaded Python 3

File details

Details for the file specspectacle-0.1.0.tar.gz.

File metadata

  • Download URL: specspectacle-0.1.0.tar.gz
  • Upload date:
  • Size: 91.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for specspectacle-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f7fc996e3fbf4ca5d2c8b284db0003a527e2d56a5497bc5dc9648fbae208dba9
MD5 48121ce2a7f755d67bde58ff5daa3a17
BLAKE2b-256 c949b818d68966f28efaa3c5d3871ae544cc532fc53d5df067b778253cfc5afc

See more details on using hashes here.

File details

Details for the file specspectacle-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: specspectacle-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 56.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for specspectacle-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b89549bcc8c0af1b62ee5a6e577517423b7e9eba4af283bbdf54bfe9982b47de
MD5 bb6b94ab2544b012108c53ccf7fe03ef
BLAKE2b-256 872c6504e43687dabc58562673221abefcd206782c3b7e847cef1e8ba10f60d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page