grooveondemand/README.md
evilchili a4d56c44c1
Update README.md
added example progress bar.
2022-12-22 00:28:47 -08:00

2.7 KiB

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 the latest release

[ check the releases tab ]

wget https://github.com/evilchili/grooveondemand/releases/download/beta/grooveondemand-0.9.tar.gz

2. Install

pip3 install grooveondemand-0.9.tar.gz

3. Generate the default configuration

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

4. Set the Media Root

Edit ~/.groove 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.