Skip to content

MathisVerstrepen/spritely

Repository files navigation

Spritely header

Spritely turns videos into customizable sprite-sheet images. The same Go generation pipeline powers a command-line tool, an interactive terminal UI, a desktop GUI, and an asynchronous HTTP API.

Highlights

  • Extract frames uniformly or around scene changes with FFmpeg and FFprobe.
  • Compose JPEG, PNG, or WebP grids with metadata, timestamps, borders, shadows, and branding.
  • Reuse built-in presets or saved JSON profiles across every interface.
  • Process local-video batches from the CLI or desktop GUI.
  • Emit machine-readable CLI and API results for automation.

Install

Generation requires FFmpeg and FFprobe 4.0 or newer. Building from source requires Go 1.23 or newer; desktop development also requires Node.js, npm, Wails v2, and the platform's webview dependencies.

See Installing Spritely for FFmpeg discovery, platform notes, and the GUI's explicit managed FFmpeg installer.

Quick start

After installing Spritely and FFmpeg, generate a sheet with the default profile:

spritely generate path/to/movie.mp4

Unless the profile selects another directory, the image is written beside the video. With the default naming template and JPEG format, movie.mp4 produces movie_sheet.jpg.

Choose an interface

Interface Best for Guide
CLI Scripts, one-off generation, and local batches CLI guide
TUI A guided, keyboard-driven terminal workflow TUI guide
GUI Desktop profile editing, previews, and multi-file queues GUI guide
HTTP API Local integrations and asynchronous jobs API guide

Customize output

Profiles control layout, extraction, headers, frame overlays, branding, styling, and output. Spritely includes default, compact, cinematic, and web-vtt presets; user profiles can override a built-in name without modifying the embedded preset.

See Customizations for the complete profile schema and preset details.

Development and documentation

Run make help for the repository's build, test, smoke, and development targets.

Current limitations

  • The web-vtt profile is available, but generation does not currently emit a .vtt sidecar.
  • TUI generation is a single-video workflow; CLI and GUI batches are not exposed through the TUI or API.
  • GUI batches exist only for the current app session, and GUI/TUI previews are illustrative rather than pixel-perfect final renders.
  • Real probing and generation require locally available FFmpeg and FFprobe binaries.

License

Spritely is licensed under the Apache License 2.0.