1
Fork 0
A local-first music video queue with yt-dlp and YouTube search, utilizing MPV & IPC to it for queue management/randomization. Removes the need for DJs at small events.
Find a file
2025-10-16 01:08:03 +03:00
frontend Implement basic functionality 2025-10-16 01:08:03 +03:00
mpv Update run instructions 2025-10-15 19:45:56 +03:00
mpv-js Implement basic functionality 2025-10-16 01:08:03 +03:00
src Implement basic functionality 2025-10-16 01:08:03 +03:00
.gitignore Preactify with oRPC 2025-10-08 22:11:06 +03:00
bun-env.d.ts Preactify with oRPC 2025-10-08 22:11:06 +03:00
bun.lock Hook up most of the UI to the API 2025-10-13 02:52:02 +03:00
bunfig.toml Preactify with oRPC 2025-10-08 22:11:06 +03:00
Dockerfile Preactify with oRPC 2025-10-08 22:11:06 +03:00
LICENSE.txt Update & clarify licenses 2024-10-29 21:04:31 +02:00
package.json Hook up most of the UI to the API 2025-10-13 02:52:02 +03:00
README.md Implement basic functionality 2025-10-16 01:08:03 +03:00
tsconfig.json Preactify with oRPC 2025-10-08 22:11:06 +03:00

Supiristin

A small tool to act as a tool for managing a music video queue. Basically a web server which lists the current MPV queue, recently added songs, as well as tools such as a button for skipping the current song or adding YouTube music videos to the queue.

The main use case is to have background music for small events, without relying on a Chromecast or other such tools. A big initial reason for avoiding other tools is to avoid the possibility of someone accidentally emptying the whole queue.

Setup

Dependencies needed:

To set up the web server along with MPV, run the following commands (substituting your own folder paths):

To install dependencies:

bun install

To run:

bun run dev

And open http://localhost:8080

For low end devices, open mpv/visualizer.lua and change the veryhigh preset to verylow.

For a setup at a party, adding OBS and another device near the display is recommended. The device near the display, presumably a laptop, can display the management website on it's own screen, and the stream on the main screen.

A simple low-ish latency OBS setup can be achieved by setting the destination stream server to: srt://192.168.178.123:6669?mode=listener, where the IP address is that of the broadcasting machine. Then on the client machine just launch MPV to display it: mpv srt://192.168.178.123:6669. Observed real world latency this way is around 3 seconds. For even lower latency, SRT streaming can be used.

This way the streaming machine can be far away from the actual display location. Also has the added benefit that, given it has multiple screens, the queue can be managed off screen easily. Also has the added benefit of being able to easily mix in other visuals, such as a chat, webcam, filters, etc.

The web server can be shared via cloudflared for example by running: cloudflared --url localhost:8080

License

This software is licensed under AGPLv3 with the commons clause. So by definition, this is not open source. In practice this means it's AGPL except commercial usage is forbidden. If you wish to use this software commercially, please contact me.