reeln-cli plugin for OpenAI-powered LLM integration (metadata, translation, zoom)
Project description
reeln-plugin-openai
A reeln-cli plugin for OpenAI-powered LLM integration — livestream metadata, game thumbnails, playlist descriptions, and multi-language translation.
Features
- Livestream metadata — LLM-generated title and description for game livestreams
- Playlist metadata — creative playlist titles and descriptions
- Game image thumbnails — ESPN/NBC Sports broadcast-style thumbnails from team logos via OpenAI image generation
- Multi-language translation — batch or per-language translation with custom commentator personas
- Prompt templates — customizable
{{variable}}templates with override support
Install
pip install reeln-plugin-openai
Or for development:
git clone https://github.com/StreamnDad/reeln-plugin-openai
cd reeln-plugin-openai
make dev-install
Configuration
Add the plugin to your reeln config:
{
"plugins": {
"enabled": ["openai"],
"settings": {
"openai": {
"enabled": true,
"api_key_file": "~/.config/reeln/secrets/openai_api_key.txt",
"model": "gpt-4.1",
"playlist_enabled": true,
"game_image_enabled": true,
"game_image_output_dir": "~/Documents/game_images"
}
}
}
}
API Key
The plugin resolves the OpenAI API key in this order:
api_key_fileconfig — reads key from the specified file (recommended)OPENAI_API_KEYenvironment variable — fallback for dev/CI
Config Fields
| Field | Type | Default | Description |
|---|---|---|---|
enabled |
bool | false |
Enable OpenAI LLM integration |
api_key_file |
str | "" |
Path to file containing the OpenAI API key |
model |
str | "gpt-4.1" |
OpenAI model for text generation |
request_timeout_seconds |
float | 30.0 |
API request timeout |
prompt_overrides |
str (JSON) | "{}" |
Dict of prompt name to override file path |
prompt_context |
str (JSON) | "{}" |
Dict of prompt name to extra context lines |
translate_enabled |
bool | false |
Enable multi-language translation |
translate_languages |
str (JSON) | "{}" |
Dict of language code to name |
translate_per_language_prompts |
str (JSON) | "{}" |
Dict of language code to prompt name |
playlist_enabled |
bool | false |
Enable LLM-generated playlist metadata |
game_image_enabled |
bool | false |
Enable game image thumbnail generation |
game_image_model |
str | "gpt-5.2" |
Model for image generation orchestration |
game_image_renderer_model |
str | "gpt-image-1.5" |
Model for image rendering |
game_image_output_dir |
str | "" |
Directory to save generated game images |
Hooks
| Hook | What it does |
|---|---|
ON_GAME_INIT |
Generates livestream metadata, playlist metadata, game image thumbnail, and translations |
Shared Context
The plugin writes to context.shared for other plugins to consume:
context.shared["livestream_metadata"] # {"title": "...", "description": "...", "translations": {...}}
context.shared["playlist_metadata"] # {"title": "...", "description": "...", "translations": {...}}
context.shared["game_image"] # {"image_path": "/path/to/thumbnail.png"}
Development
make dev-install # uv venv + editable install with dev deps
make test # pytest with 100% coverage
make lint # ruff check
make format # ruff format
make check # lint + mypy + test
License
AGPL-3.0-only
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reeln_plugin_openai-0.10.0.tar.gz.
File metadata
- Download URL: reeln_plugin_openai-0.10.0.tar.gz
- Upload date:
- Size: 97.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b69ba703421b57f7ba32c79e2293519eb95429f055fcc6e53b5b42058167ebc5
|
|
| MD5 |
f18c695ec5f755f55ad7fc591ba87579
|
|
| BLAKE2b-256 |
779d57e4649536fbc1132a08018ddb864e52b5be6b18c0930b5da052fede421c
|
Provenance
The following attestation bundles were made for reeln_plugin_openai-0.10.0.tar.gz:
Publisher:
release.yml on StreamnDad/reeln-plugin-openai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reeln_plugin_openai-0.10.0.tar.gz -
Subject digest:
b69ba703421b57f7ba32c79e2293519eb95429f055fcc6e53b5b42058167ebc5 - Sigstore transparency entry: 1344477585
- Sigstore integration time:
-
Permalink:
StreamnDad/reeln-plugin-openai@35adcd5e7ad0ee4f643e4d76cfe9a158d71110aa -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/StreamnDad
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@35adcd5e7ad0ee4f643e4d76cfe9a158d71110aa -
Trigger Event:
push
-
Statement type:
File details
Details for the file reeln_plugin_openai-0.10.0-py3-none-any.whl.
File metadata
- Download URL: reeln_plugin_openai-0.10.0-py3-none-any.whl
- Upload date:
- Size: 40.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f88f70b3af063060d5ebe0d08a7ca00ab3d9a13f0854d300b830fd5416894c85
|
|
| MD5 |
82e2645d8381146fc0f672e488c9ad3f
|
|
| BLAKE2b-256 |
003d8dd0ebde34cbd0abb99c607f177fe746e00b3f8a7fa2293db6fb5cac68d3
|
Provenance
The following attestation bundles were made for reeln_plugin_openai-0.10.0-py3-none-any.whl:
Publisher:
release.yml on StreamnDad/reeln-plugin-openai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reeln_plugin_openai-0.10.0-py3-none-any.whl -
Subject digest:
f88f70b3af063060d5ebe0d08a7ca00ab3d9a13f0854d300b830fd5416894c85 - Sigstore transparency entry: 1344477636
- Sigstore integration time:
-
Permalink:
StreamnDad/reeln-plugin-openai@35adcd5e7ad0ee4f643e4d76cfe9a158d71110aa -
Branch / Tag:
refs/tags/v0.10.0 - Owner: https://github.com/StreamnDad
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@35adcd5e7ad0ee4f643e4d76cfe9a158d71110aa -
Trigger Event:
push
-
Statement type: