Skip to content
TheRedCyclops edited this page Sep 24, 2024 · 11 revisions

Documentation

Musicbox is a program writen in bash that will play audio either provided by the user or downloaded from youtube at an specified time

Index

Instalation

Installing musicbox is as simple as following these 8 simple steps

Local

  1. Create Google API credentials, see: Create Google API credentials in 50 easy steps
  2. Setup gdrive on a local system, a web browser is required
  3. Export the account to a file and move it to the system you will be running musicbox on

Remote

  1. Install docker and docker compose and enable the docker daemon service (not the socket!)
  2. Clone this repository git clone https://github.com/TheRedCyclops/musicbox
  3. Change your working directory to the newly cloned repository cd musicbox
  4. Open docker-compose.yml with your favorite text editor and set MUSICBOX_GDRIVE_TAR to the full path to the file you exported previously set MUSICBOX_AUDIO_SERVER to the audio server running on the host, currently the valid values are: alsa, pipewire and pulseaudio
    • if using alsa uncomment the lines 6 and 7
    • if using pipewire run the command on line 13 (remember to remove the # at the start!), uncomment the next line (14) and copy the output of the command output after the dash, an example is provided
    • if using pulseaudio run the command on line 17 (remember to remove the # at the start!) uncomment the lines 18,23 and 24
  5. execute the following command to start musicbox, it will also restart automatically on boot docker compose up -d

To stop musicbox run the following while in the the folder of the directory: docker compose down

Usage

Developer Information

Roadmap

  • Add usage instructions
  • Add troubleshooting instructions
  • Add developer information
  • Automatically create all needed files in google drive
  • Add a run test to the precommit unit tests (currently manually run)
  • Delay cleanup until all downloaded files are validated
  • Move all parts of the build script to the docker file
  • Support architectures other than amd64
  • Add option to create a fallback audio file
  • Add env var for selecting between pulseaudio and wireplumber on the host
Clone this wiki locally