Updated readme.md
This commit is contained in:
commit
f0465c78d3
2 changed files with 63 additions and 0 deletions
BIN
Screenshot_RAW.png
Normal file
BIN
Screenshot_RAW.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
63
readme.md
Normal file
63
readme.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# Party Jukebox
|
||||
*This project requires VLC to play sound files*
|
||||
## Purpose
|
||||
The **Party Jukebox** is a program that allows many people to add music, skip songs, play, and pause from any web device to the same device and playlist. \
|
||||
This was created for a personal use case for parties, and is a simple, (mostly) functional solution to have a collective playlist for local mp3 files.
|
||||
## Basic Setup
|
||||
### Client Setup:
|
||||
The client is a web application that can be hosted on any server, it need not be the same device running the music player.
|
||||
* If the app is being setup for a large group, you can distribute the url (via QR code, for example) with `?ip=YOURSERVERHOSTNAME:19054` set as an attribute after the url.
|
||||
### Server Setup:
|
||||
**Pre-setup:** If you want the songs to have art associated with them, it is all hosted on and retrieved from LastFM, and you will need to sign up for a developer app, and put your key \
|
||||
\
|
||||
The server side consists of 3 files
|
||||
|
||||
[//]: # (Change this below later, the files will likely be renamed)
|
||||
|
||||
```
|
||||
sound/
|
||||
databaseGenerator.py
|
||||
webbyBits.py
|
||||
```
|
||||
|
||||
1. Place mp3 files in the `sound/` folder
|
||||
2. Open `databaseGenerator.py` and put your lastFM API key in at the top (*optional*)
|
||||
3. Run `databaseGenerator.py`
|
||||
* *The `databaseGenerator.py` will index all mp3 files, and save the information to `songDatabase.json`*
|
||||
* *If getting images, this process may take a long time with a large amount of mp3 files*
|
||||
4. Run `webbyBits.py`
|
||||
|
||||
You can now connect with the client and use the app as normal. \
|
||||
Read on for specific information on each piece of the app.
|
||||
## Details
|
||||
These are specific details on each section of the app, and how to use them
|
||||
### Server:
|
||||
- `sound/` contains all mp3 files
|
||||
- `databaseGenerator.py` scans through mp3 files and gets information about them
|
||||
- `Filename, Title, Artist, Art, Length` are all saved
|
||||
- *If the title and artist are not in the mp3 metadata, it looks for a format of* `TITLE_ARTIST.mp3` *and otherwise defaults to the file name as the title, and no artist*
|
||||
- `songDatabase.json` stores all the information about each song in this format:
|
||||
```
|
||||
[
|
||||
{
|
||||
"file": "The Search_NF.mp3",
|
||||
"title": "The Search",
|
||||
"artist": "NF",
|
||||
"art": "https://lastfm.freetls.fastly.net/i/u/64s/03125956378d531a44e1b7da89aae795.png",
|
||||
"length": 292
|
||||
}
|
||||
]
|
||||
```
|
||||
- `webbyBits.py` imports the database, runs all music playing, and accepts all commands from clients
|
||||
- Searches return matching songs
|
||||
- Accepts Play-Pause and Skip commands
|
||||
|
||||
### Client:
|
||||
 \
|
||||
From left to right:
|
||||
- The playlist button shows the current queue of songs
|
||||
- The play-pause button toggles playing
|
||||
- The skip button goes to the next track
|
||||
- The search button opens the search screen (pictured)
|
||||
- The settings button (top right) opens the settings menu
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue