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.33.tar.gz (689.4 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.33-py3-none-any.whl (127.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reeln-0.0.33.tar.gz
  • Upload date:
  • Size: 689.4 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.33.tar.gz
Algorithm Hash digest
SHA256 992f76c58c02bcfa71f6f5aa68ac8a8b21a0c8adb8f9b9383e6748710863a9dc
MD5 3f1ed3e11b71188c3e5a107dedd81863
BLAKE2b-256 e2a8cd9efaf093bb4fd71e30a5ce53463379059aa527ae760d80869a81b0329b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: reeln-0.0.33-py3-none-any.whl
  • Upload date:
  • Size: 127.3 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.33-py3-none-any.whl
Algorithm Hash digest
SHA256 dcbb6e82d1dadbff895c64765b84d18e4e9be99e2500c9ba6f42f27e2cef3654
MD5 a5c3711f643b322fb8aac6c318f27ee1
BLAKE2b-256 9534001471929c65009141349bde6d8df18d16d61b3df209d57996268cca7ff5

See more details on using hashes here.

Provenance

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