This project is a continuation of Beatbump by @snuffyDev.
An alternative frontend for YouTube Music created using Svelte/SvelteKit, and Golang.
All data is stored locally on your device. Data synchronization is done using PeerJS, which uses WebRTC for a Peer-to-Peer connection between browsers.
Contributions are welcomed
The recommended way to run Beatbump is via docker-compose, as Beatbump depends on the invidious-companion service to generate valid YouTube sessions and bypass blocking.
In the docker-compose.yaml file, you can choose to use the pre built docker image of Beatbump or build it from source.
Clone the repository:
git clone https://github.com/giwty/Beatbump.git
cd Beatbump
Start the services:
docker-compose up -d
This will start both the Beatbump container and the invidious-companion container.
Access Beatbump at http://localhost:8080 or http://app.localhost:8080.
To avoid the constant breakage of Beatbump due to YouTube API changes, Beatbump now uses invidious-companion to seamlessly generate sessions that pass YouTube's checks, allowing you to listen to music ad-free without encountering playback errors.
The provided docker-compose.yaml is already pre-configured to handle the connection between Beatbump and the companion service out of the box.
If you choose to run Beatbump and invidious-companion separately, you must provide the following environment variables to the Beatbump container:
COMPANION_URL: The URL of the invidious-companion service (e.g., http://companion:8282).COMPANION_SECRET_KEY: The secret key matching the SERVER_SECRET_KEY set in invidious-companion.Note - the download capability was developed with AI.
Beatbump now has a built in downloader that can download songs, playlists, and albums.
There are different download options for you to try -
Beatbump uses a local SQLite database (path defined by the BEATBUMP_DB_PATH environment variable) to store the download tasks.
Currently, the database stores:
Settings: downloads will be enabled once you defined the download path in the settings page. Optionally you can enable ongoing downloads capability.
/downloads in docker-compose).