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.
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
- Python 3.10 or higher
- ffmpeg installed (installation guide)
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
- YAML Reference - Complete YAML specification guide
- Contributing Guide - How to contribute to SpecSpectacle
🤝 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:
- Playwright - Browser automation
- Click - CLI framework
- FFmpeg - Video processing
- Pydantic - Data validation
Status: ✅ Phase 1 complete! v0.1.0 released
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7fc996e3fbf4ca5d2c8b284db0003a527e2d56a5497bc5dc9648fbae208dba9
|
|
| MD5 |
48121ce2a7f755d67bde58ff5daa3a17
|
|
| BLAKE2b-256 |
c949b818d68966f28efaa3c5d3871ae544cc532fc53d5df067b778253cfc5afc
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b89549bcc8c0af1b62ee5a6e577517423b7e9eba4af283bbdf54bfe9982b47de
|
|
| MD5 |
bb6b94ab2544b012108c53ccf7fe03ef
|
|
| BLAKE2b-256 |
872c6504e43687dabc58562673221abefcd206782c3b7e847cef1e8ba10f60d7
|