Metadata-Version: 2.5
Name: streamo
Version: 0.2.0
Summary: 🚰 Stream audio to all services 🚰
License-File: LICENSE
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Requires-Python: >=3.13
Requires-Dist: google-auth-oauthlib>=1.4.1
Requires-Dist: google-auth>=2.57.0
Requires-Dist: numpy
Requires-Dist: pillow>=12.3.0
Requires-Dist: pydantic>=2
Requires-Dist: reccy
Requires-Dist: sounddevice
Requires-Dist: tyro
Description-Content-Type: text/markdown

# streamO

streamO sends a stereo audio-device pair to a live-streaming destination. It
combines audio with a looping visual bed, title cards, participant photos, and
an optional local HDMI display, or publishes audio-only to Icecast.

Start with the [operator guide](doc/streamo.md) for installation, configuration,
preview, show control, uploads, authorization, and media preparation.
Copy an example for [Twitch](examples/twitch.toml),
[generic RTMPS](examples/generic-rtmps.toml), or [Icecast](examples/icecast.toml).

```bash
uv sync
uv run streamo --help
uv run streamo daemon preview --config ~/.config/streamo/config.toml
```

Requires Python 3.13+, FFmpeg, FFprobe, an audio input device, and FFplay for
preview or local display. Live operation uses the same configuration:
`uv run streamo --config ~/.config/streamo/config.toml`.

Contributor context: [handover](doc/handover.md).

Run `uv run pytest` for parallel unit tests. It uses four workers and keeps
each test file in one worker. Run `uv run pytest -n 0` to reproduce a failure
serially.
