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
2024-12-29 16:22:29 +02:00
mpv Update & clarify licenses 2024-10-29 21:04:31 +02:00
deno.json Initial 2024-10-29 20:53:46 +02:00
deno.lock Initial 2024-10-29 20:53:46 +02:00
index.html Format 2024-10-29 21:11:25 +02:00
LICENSE.txt Update & clarify licenses 2024-10-29 21:04:31 +02:00
main.ts Trust YT API more on vid sorting 2024-10-29 21:19:13 +02:00
README.md Update README.md 2024-12-29 16:22:29 +02: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):

cd /share/ && deno run -A /repos/git.ljoonal.xyz/ljoonal/Supiristin/main.ts
mpv --script=/repos/git.ljoonal.xyz/ljoonal/Supiristin/mpv/ --input-ipc-server=$XDG_RUNTIME_DIR/mpv.sock /share/

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, further optimizations could be done with MPV if lower latency is desired.

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.