Skip to main content

Platform-agnostic CLI toolkit for livestreamers

Project description

reeln

reeln

CI Docs PyPI

Platform-agnostic CLI toolkit for livestreamers.

reeln handles video manipulation, segment/highlight management, and media lifecycle — generic by default, sport-specific through configuration. Built by Streamn Dad.

Requirements

  • Python 3.11+
  • ffmpeg 5.0+ with libx264, aac, and libass

Important: reeln requires ffmpeg installed on your system. It is used for all video processing — merging, rendering, overlays, and encoding. Install it before using reeln, then run reeln doctor to verify.

# macOS
brew install ffmpeg

# Ubuntu / Debian
sudo apt install ffmpeg

# Windows
winget install ffmpeg

Install

# With pip
pip install reeln

# With uv (recommended)
uv tool install reeln

Verify everything is working:

reeln --version
reeln doctor          # checks ffmpeg, codecs, config, permissions, plugins

Features

  • Game lifecycle management — init, segment processing, highlights, events, finish
  • Short-form rendering — crop, scale, speed, LUT, overlays — landscape to vertical/square
  • FFmpeg-powered merging — concat segments into highlight reels with smart re-encoding
  • Sport-agnostic segments — hockey periods, basketball quarters, soccer halves, and more
  • Render profiles — save and reuse rendering settings, chain them with iterations
  • Smart zoom — AI-powered tracking that follows the action (via plugin)
  • Player overlays — roster-aware goal overlays with jersey number lookup
  • Plugin architecture — lifecycle hooks for YouTube, Instagram, cloud uploads, and more
  • Flexible configuration — JSON config, XDG paths, env var overrides, named profiles
  • Cross-platform — macOS, Linux, Windows

Quick start

# Initialize a hockey game
reeln game init roseville mahtomedi --sport hockey

# Process segments as the game progresses
reeln game segment 1
reeln game segment 2
reeln game segment 3

# Merge into a full-game highlight reel
reeln game highlights

# Render a vertical short for social media
reeln render short clip.mkv --crop crop --speed 0.5

# Finish the game
reeln game finish

See the examples for detailed walkthroughs of every workflow.

Supported sports

Sport Segment name Count Example directories
hockey period 3 period-1/, period-2/, period-3/
basketball quarter 4 quarter-1/ through quarter-4/
soccer half 2 half-1/, half-2/
football half 2 half-1/, half-2/
baseball inning 9 inning-1/ through inning-9/
lacrosse quarter 4 quarter-1/ through quarter-4/
generic segment 1 segment-1/

CLI reference

System

Command Description
reeln --version Show version and ffmpeg info
reeln doctor Health check: ffmpeg, codecs, config, permissions, plugins

Game lifecycle

Command Description
reeln game init Set up game directory with sport-specific segments
reeln game segment <N> Collect replays and merge segment highlights
reeln game highlights Merge all segments into full-game highlight reel
reeln game compile Compile event clips by type, segment, or player
reeln game finish Finalize game and show summary
reeln game prune Remove generated artifacts
reeln game event list List registered events
reeln game event tag Tag an event with type, player, metadata

Rendering

Command Description
reeln render short Render 9:16 or 1:1 short from clip
reeln render preview Fast low-res preview render
reeln render apply Apply a render profile (full-frame, no crop)
reeln render reel Assemble rendered shorts into a reel

Configuration

Command Description
reeln config show Display resolved configuration
reeln config doctor Validate config and warn on issues
reeln config event-types Manage event types

Plugins

Command Description
reeln plugins search Search the plugin registry
reeln plugins info <name> Show plugin details and config schema
reeln plugins install <name> Install a plugin from the registry
reeln plugins update [name] Update a plugin or all installed
reeln plugins list List installed plugins
reeln plugins enable <name> Enable a plugin
reeln plugins disable <name> Disable a plugin

Configuration

reeln uses a layered JSON config system:

  1. Bundled defaults — shipped with the package
  2. User configconfig.json in your XDG config directory
  3. Game overridesgame.json in the game directory
  4. Environment variablesREELN_<SECTION>_<KEY>
reeln config show

Documentation

License

GNU Affero General Public License v3.0 (AGPL-3.0)

Links

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

reeln-0.0.37.tar.gz (746.1 kB view details)

Uploaded Source

Built Distribution

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

reeln-0.0.37-py3-none-any.whl (143.6 kB view details)

Uploaded Python 3

File details

Details for the file reeln-0.0.37.tar.gz.

File metadata

  • Download URL: reeln-0.0.37.tar.gz
  • Upload date:
  • Size: 746.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for reeln-0.0.37.tar.gz
Algorithm Hash digest
SHA256 b9eacdef3e65697ea5f64c9650e9274ea3b6eddb81416bd333e96ec24c3f23a5
MD5 b4b826de740bdd26df0c5aace682725d
BLAKE2b-256 927ec622e9c0d8433f06ae5cab4eb9795f788179a4d8f66bc2c75880f650396b

See more details on using hashes here.

Provenance

The following attestation bundles were made for reeln-0.0.37.tar.gz:

Publisher: release.yml on StreamnDad/reeln-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reeln-0.0.37-py3-none-any.whl.

File metadata

  • Download URL: reeln-0.0.37-py3-none-any.whl
  • Upload date:
  • Size: 143.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for reeln-0.0.37-py3-none-any.whl
Algorithm Hash digest
SHA256 2b35e3ed704cdcb0169490f013696497247ad34e238a798a7203c452f127dbf4
MD5 b46208a5421ab0fb032395259261906b
BLAKE2b-256 38ab2bb1155728a498d81bb209f5ebe667ceac8ba2966e203992a2dfb8424aa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for reeln-0.0.37-py3-none-any.whl:

Publisher: release.yml on StreamnDad/reeln-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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