kameloso
is a LAMP (Local Area Media Party) application. Think a Chromecast or Spotify jam, but better.
It starts a web app connected to mpv and lets you queue video links or upload videos.
- Runs locally, no cloud dependencies.
- Queue up any video/audio link supported by
yt-dlp
. - Skip videos you don't like.
- Probably more secure than ed's very-bad-idea.py.
Install these dependencies:
Download the latest release from the Releases page, or build it yourself. Go to the Building section for that.
You should now have a binary called kameloso
or kameloso.exe
and a directory called public
.
Generally you only need to run kameloso
in the directory that contains the public
directory. If mpv is not in your $PATH
(which likely means you're on Windows) you may also need to use the --mpv-path
flag. So:
- Open a terminal and run
kameloso
in the directory containing thepublic
directory.- If you're on Windows, you probably need to specify the mpv path like this:
kameloso.exe --mpv-path path\to\mpv.exe
. Replace with the actual path to the executable. - You might also want to create a
start.bat
file in the same directory so you can just double-click it next time you want to open it:kameloso.exe --mpv-path path\to\mpv.exe
- If you're on Windows, you probably need to specify the mpv path like this:
kameloso
will open an mpv window and start an HTTP server, by default at0.0.0.0:8080
. See below for how to change it.- After a second you will see a QR code in the top left of the mpv window. This should contain a local URL pointing to the web UI.
- Go to the URL and start queueing up videos!
- If that URL does not work, run
ip addr
on Linux oripconfig
on Windows and check the machine's local IP address, which should look something like192.168.1.<some number>
. The web UI will be athttp://<the machine's local IP address>:8080/
. - If that also doesn't work, make sure that your firewall isn't blocking incoming traffic on the
8080
port.
- If that URL does not work, run
The web UI looks like this:
And this is how it looks in the wild.
Note: uploading has been reported as having issues. It will be fixed eventually.
Run kameloso --help
to see a full list of options. You might need to set:
--mpv-path <path/to/mpv.exe>
: Set this if you don't havempv
in your$PATH
.--bind-address <ip>:<port>
: Change the bind address of the HTTP server. If you just want to change the port, set it to0.0.0.0:<your port>
--serve-dir <path>
: Set this to the path of thepublic
directory. By default it looks forpublic
. This directory will be created if it doesn't already exist.--upload-dir <path>
: This is the path of the directory to which the uploaded files will be saved. By defaultkameloso
will create a directory calleduploads
in the directory it's run from.
If you want to customize the web UI, just change the index.html
file in the public/
directory. Note that if you want to serve other files as well, they have to be in the public/static/
directory.
Install Rust, clone this repository and run cargo build --release
. You will find the binary in target/release/kameloso
.