self-hosted audio playlist server
Go to file
2022-12-31 15:16:30 -08:00
groove adding mastodon meta card, BASE_URL config option. 2022-12-31 15:16:30 -08:00
test refactor media module, change --env to --root 2022-12-31 12:43:48 -08:00
.coveragerc adding test coverage reports 2022-11-19 17:23:47 -08:00
.gitignore Adding fuzz testing of auth 2022-11-19 16:58:58 -08:00
LICENSE Initial commit 2022-11-19 13:57:00 -08:00
pyproject.toml tweaking docs 2022-12-31 12:44:59 -08:00
pytest.ini add tests 2022-12-05 01:06:57 -08:00
README.md tweaking docs 2022-12-31 12:44:59 -08:00

Groove On Demand

Groove on Demand is a self-hosted application for creating and sharing music playlists. It streams music directly from your local media library using HTML5 audio and a Javascript player built on Howler.js and features a robust interactive command-line tool for managing the playlist database.

[ insert session capture here ]

Installation

Prerequisites and Disclaimers

Groove on Demand was developed against python 3.10 and should work on anything 3.7 or above. Minimal testing was done on this front.

I have no idea if it will function on platforms besides Linux. Code was written to be portable but not tested to be portable. I also don't know if the dependencies support diverse platforms or not. ¯\_(ツ)_/¯

1. Download and install the latest release

[ check the releases tab ]

pip3 install https://github.com/evilchili/grooveondemand/releases/download/beta/grooveondemand-0.10.tar.gz

3. Generate the default configuration

mkdir ~/.groove
~/.local/bin/groove setup > ~/.groove/defaults

3. Set the Media Root

Edit ~/.groove/defaults and define MEDIA_ROOT to point to the directory containing your local audio files. For example:

MEDIA_ROOT=/media/audio/lossless

Setting up the Databse

Before creating playlists, you must scan your media and build a database of tracks. Do this by running:

groove scan

This may take a long time depending on the size of your library and the capabilities of your system. Progress will be displayed as the scan progresses:

groove> scan
1:27:34 ━━━━━━━━━━━━━━━ 100% |  29946 total |  29946 new |   Scan of /mnt/grunt/music/FLAC complete!

Start the Interactive Shell

Groove On Demand's interactive shell is optimized for quickly creating new playlists with as few keystrokes as possible. Start it by running:

groove shell

Use the help command to explore.

Serving Playlists

Start the web server application by running:

groove server

It is strongly recommended you place the app behind a web proxy.

Okay, But Why?

Because I wanted Mixtapes-as-a-Service but without the hassle of dealing with a third party, user authentication, and related shenanigans. Also I hadn't written code in a few years and was worried I was forgetting how to do it. I am not entirely reassured on that point.