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.

Features

  • Game lifecycle management — init, segment, highlights, finish
  • FFmpeg-powered video merging — concat segments into highlight reels, no re-encoding
  • Sport-agnostic segment model — hockey periods, basketball quarters, soccer halves, and more
  • Flexible configuration — JSON config with XDG-compliant paths, env var overrides, named profiles
  • Pipeline debugging--debug flag captures ffmpeg commands, filter chains, and metadata for troubleshooting
  • Plugin-ready architecture — lifecycle hooks, typed capability interfaces, and config schema declarations
  • Cross-platform — macOS, Linux, Windows

Quick start

# Install
pip install reeln

# Verify it works
reeln --version

# View your configuration
reeln config show

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

More commands are being built — rendering and media management are on the roadmap. See the CLI reference below for what's available and what's coming.

Supported sports

reeln adapts its directory structure and terminology to your sport:

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/

Custom sports can be registered in your config file.

CLI reference

Available now:

Command Description
reeln --version Show version
reeln --help Show help and available commands
reeln config show Display current configuration
reeln config doctor Validate config, warn on issues
reeln game init Set up game directory with sport-specific segments

| reeln plugins search | Search the plugin registry | | reeln plugins info <name> | Show detailed plugin information | | reeln plugins install <name> | Install a plugin from the registry | | reeln plugins update [name] | Update a plugin or all installed plugins | | reeln plugins list | List installed plugins with version info | | reeln plugins enable <name> | Enable a plugin | | reeln plugins disable <name> | Disable a plugin |

Coming soon (command groups are registered, implementation in progress):

Command Description
reeln game segment <N> Move replays and merge segment highlights
reeln game highlights Merge all segments into full-game highlight reel
reeln game finish Finalize game, cleanup temp files
reeln render short Render 9:16 short from clip
reeln render preview Fast low-res preview render
reeln media prune Artifact cleanup (supports --dry-run)
reeln doctor Health check: ffmpeg, config, permissions

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>
# Override any config value via env var
export REELN_VIDEO_FFMPEG_PATH=/opt/ffmpeg/bin/ffmpeg
export REELN_PATHS_OUTPUT_DIR=~/custom-output

# View the resolved config
reeln config show

Requirements

Installation

# With pip
pip install reeln

# With uv
uv tool install reeln

# Development
git clone https://github.com/StreamnDad/reeln-cli.git
cd reeln-cli
make dev-install

Documentation

Full documentation is available at reeln-cli.readthedocs.io.

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.24.tar.gz (370.8 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.24-py3-none-any.whl (99.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reeln-0.0.24.tar.gz
  • Upload date:
  • Size: 370.8 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.24.tar.gz
Algorithm Hash digest
SHA256 6b09f0644dcbd1d9a5619ae6cce8978fc5c63d82268f0ad02251795c0e7a8ea1
MD5 aa1baaf4eb9743f2644eef280391a74a
BLAKE2b-256 90ac6f717e701dab630cff76b774b06072594409a0f75fd31cc1f7ffad915fcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for reeln-0.0.24.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.24-py3-none-any.whl.

File metadata

  • Download URL: reeln-0.0.24-py3-none-any.whl
  • Upload date:
  • Size: 99.4 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.24-py3-none-any.whl
Algorithm Hash digest
SHA256 2eee0396e09f2070e2778b0c1742c30ce737f22c48fecde9d7fed133b5530071
MD5 e0f1b3f04c441c5e8e77a020dce3f745
BLAKE2b-256 89cf9a050eb99b6ebf7b2fdbb6f6c764cf34b65094e5add1f7f0f323890766c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for reeln-0.0.24-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