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.27.tar.gz (437.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.27-py3-none-any.whl (100.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reeln-0.0.27.tar.gz
  • Upload date:
  • Size: 437.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.27.tar.gz
Algorithm Hash digest
SHA256 674b2fd5fea6bf87ce1e467de6e9fbde2981e679a86d6f00a9c5c7bf120d7643
MD5 d475443ac495923b45b5640847d26dee
BLAKE2b-256 1510f2e78422c0bd8d179c156dd448016a217d7c9c477b8d9a8a5240b0a487b0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: reeln-0.0.27-py3-none-any.whl
  • Upload date:
  • Size: 100.1 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.27-py3-none-any.whl
Algorithm Hash digest
SHA256 6e189fce35327708b4f4cca54f8c52bb8b84a1410d2bdf13c338ad35d15aefe3
MD5 ff743689c7642e8a6e308119a6eb3e02
BLAKE2b-256 d5a915fea9163c7821980e1f0407ba3dd0fdaa33f6cba1a2fdfe549f34d2fed5

See more details on using hashes here.

Provenance

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