blob: aa3ed804f7fd31122fb503da016ee573f765069f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# yt-playlist-radio
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 yt_radio:app --bind 0.0.0.0:8000 -k gthread --threads 50 --workers 1 --timeout 0 --keep-alive 5
```
> Note that `--timeout 0` is a strict requirement if using `/stream` endpoint due to Gunicorn's default timeout policy
> Similarly, you should use a single persistent worker if you want everyone listening to the same stuff on `/stream`
## Example Landing Page
<img width="936" height="992" alt="image" src="https://github.com/user-attachments/assets/e70879ad-bdff-46b0-8018-130211d950a1" />
|