diff options
| author | Pinapelz <yukais@pinapelz.com> | 2026-02-18 13:05:08 -0800 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2026-02-18 13:05:08 -0800 |
| commit | 4311b4bc2cc5191039e5498a7a0df3aa103fa043 (patch) | |
| tree | 4820b4cbc8f9c3e687623b347c0ead492d3193f1 /README.md | |
| parent | 91cf086367d350bbb095599f737f13c418d7b3cb (diff) | |
subscriber synchronization via buffered queue
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -1,9 +1,13 @@ # yt-playlist-radio -Simple demo of YouTube playlist to m3u playlist, all in about 200 lines of Python. +Takes a YouTube playlist and converts it to an audio stream, similar to internet radio +- `/playlist.m3u` provides a playlist of songs to be played, supports track skipping, like a traditional playlist +- `/stream` provides a buffered audio stream ## How to run? First set the environment variables as per `.env.template`, then just run it with gunicorn or something else (gunicorn comes bundled as part of the deps here) ```bash uv sync -uv run gunicorn -w 4 -b 0.0.0.0:8000 yt_radio:app +uv run gunicorn yt_radio:app --bind 0.0.0.0:8000 --worker-class gevent --workers 2 --timeout 0 --keep-alive 5 ``` + +> Note that `--timeout 0` is a strict requirement if using `/stream` endpoint due to Gunicorn's default timeout policy |
