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.

reeln in action — youth hockey livestream with scoreboard overlay

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
  • Render queue — stage renders for review, then selectively publish to YouTube, Instagram, TikTok
  • Team logo overlays — automatic logo placement on goal shorts from team profiles
  • 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.

Looking for a GUI? reeln dock is a cross-platform desktop companion for reeln — visual render profiles, clip review, and game management without touching the terminal. Coming soon.

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

Queue

Command Description
reeln queue list List queued render items
reeln queue show <ID> Show detailed queue item info
reeln queue edit <ID> Edit title/description before publishing
reeln queue publish <ID> Publish to one or all targets (--target <name>)
reeln queue publish-all Publish all rendered items
reeln queue remove <ID> Soft-delete queue item
reeln queue targets List available publish targets

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
reeln plugins uninstall <name> Uninstall a plugin
reeln plugins auth Test plugin authentication

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

Smart zoom — AI-powered action tracking

reeln render short --smart uses the OpenAI plugin to analyse extracted frames and track the action — dynamically cropping and panning the camera to follow the play in your 9:16 short. Read What happened when I let AI edit my youth hockey videos for the full story.

Add --debug to see exactly what the AI sees: annotated frames with crosshair tracking, crop regions, the full zoom path, and every ffmpeg filter chain.

Live debug example — real game clip with 16-frame smart zoom tracking.

Smart zoom debug — annotated frame showing crosshair tracking and crop region

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.39.tar.gz (9.1 MB 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.39-py3-none-any.whl (165.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reeln-0.0.39.tar.gz
  • Upload date:
  • Size: 9.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for reeln-0.0.39.tar.gz
Algorithm Hash digest
SHA256 58b4a46fa9a38e18df58e26d470dc216306cee60d9899995216de29a10e629cb
MD5 7ac9b23540eac5912a29dbffc280511b
BLAKE2b-256 f83eabfaf9d02165df43756effde636e5e57609bf72334c768ba502ab74a99c5

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for reeln-0.0.39-py3-none-any.whl
Algorithm Hash digest
SHA256 a65de8919591819e1fc62a1fa920f3961e3891ac7d08ac01dadf40a74e7ff5f7
MD5 d572a95f03305f743b672214ffdea930
BLAKE2b-256 33514152d5e85fa5e3b061f643a5d8131a607e985d9115c10cd26d521fafb54b

See more details on using hashes here.

Provenance

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