Package: raveberry
RaveberryRaveberry is a multi user music server that allows democratic selection of songs.It provides an intuitive interface for requesting songs and changing their order according to the rating that users have made. It supports YouTube, Spotify and local files as sources for music.A live demo is available athttps://demo.raveberry.party/.InstallationTry it out!You can test a slim version of Raveberry like this:sudo apt-get install -y python3-pip mopidy redis-server ffmpeg gstreamer1.0-plugins-bad
pip3 install raveberry[run]
raveberry runYou might need to write~/.local/bin/raveberry runinstead. Now you can visithttp://localhost:8080/and play a song of your choice.This method uses a development server, with limited performance and a restricted feature set.InstallationIn order to gain access to all features of Raveberry, install it:pip3 install raveberry[install]
raveberry installIf you getraveberry: command not foundyou need to runexport PATH="$HOME/.local/bin:$PATH".
Raveberry was developed for the Raspberry Pi. If you need help setting yours up up, visitthis guide.The installer will ask you to confirm the config file it uses. The default install supports YouTube and local files. To customize (e.g. to use Spotify), cancel the installation, edit the config at the provided path and rerunraveberry install.Although everythingshouldwork fine, I recommend taking a backup of your system. On a Raspberry Pi this can be done by creating a copy of its SD card.The installation will take at most 30 minutes, most of which is spent on installing/updating packages. You might need to reboot afterwards for all changes to take effect.DockerAlternatively, you can usedocker-compose:wget https://raw.githubusercontent.com/raveberry/raveberry/master/docker/docker-compose.yml
wget https://raw.githubusercontent.com/raveberry/raveberry/master/docker/.env
docker-compose up -dFor more information, consultdocs/docker.md.Remote InstallationYou can also install Raveberry on a remote machine you have ssh access to:pip3 install raveberry[install]
cd "$(pip3 show raveberry | grep Location: | sed 's/.*: //')/raveberry"
ansible-playbook --user <user> --key-file <private_key> -i <ip>, -e "config_file=/path/to/raveberry.yaml" setup/system_install.yamlIf omitted,config_filedefaults tobackend/config/raveberry.yaml.--userand--key-filecan be omitted if the target host is configured in your ssh config.Passwordless sudo is default on a Raspberry Pi. For most other systems, sudo requires a password, then you have to add--ask-become-pass.First StepsAfter the installation has finishedhttp://raveberry.local/is up and ready to play music (go ahead and try now!). If this does not take you to the musiq landing page, use the IP of the device (hostname -Ito find out).You can visithttp://raveberry.local/login/and log in as theadminuser with your provided admin password. If you take a look athttp://raveberry.local/settings(which is also linked from the dropdown) you can see various configuration possibilities. For more information about these settings and privileges in general refer todocs/privileges.md.An introduction to basic functionality can be found indocs/functionality.md. Or just visit the website and find out for yourself ; )UpdatingWebinterfaceAt the bottom of the/settingspage, click "Upgrade Raveberry".
A Log will be written to/var/www.ManualUpdate the PyPi package and rerun the installation.pip3 install -U raveberry[install]
raveberry installYour database will be preserved, unless you specify a database backup in your config file.DockerUpdate all of your containers in the docker-compose file:docker-compose pullFeaturesLive Updates:
Web page content is updated instantly across all clients using websockets.Remote Streaming:
Withicecast, it is possible to remotely listen to Raveberry. Seedocs/streaming.md.Bluetooth Support:
Use your bluetooth speakers with Raveberry, removing the need for an audio cable.HiFiBerry Support:
Attach yourHiFiBerryboard for a high quality audio experience.Hotspot:
Provides a WiFi network for access in areas without proper infrastructure. Can double as a repeater.Remote URL:
Specify a domain to make your Raveberry accessible from the world wide web.Local Files Support:
Play all the files you already have in your local filesystem. Various filetypes supported.YouTube Support:
Withyt-dlpas a media provider, all of YouTube is available to play.Spotify Support:
Raveberry's music playermopidycan play songs from Spotify, if you to log in with your account. Spotify Premium is required.Soundcloud Support:
Songs from Soundcloud are also available for you to play. (currently broken)Privilege Levels:
Grant people additional permissions like playback control.Graphical Admin Interface:
Raveberry features a convenient way of modifying the behavior of the server, like hotspot configuration or download limitation.Complementary App:Shareberrylets you share songs directly from your phone to Raveberry.Discord Integration:
Control your Raveberry instance from the discord chat with theRaveberry botAudio normalization:
Raveberry uses replaygain to analyze the volume of songs and prevent sharp volume transitions.Screen visualization:
With the toolcava, the current music is split into its frequencies and visualized on a connected screen (See screenshot below). Code inseparate Repository.Audio visualization:
Using the same tool, Raveberry can also make connected LEDs flash to the rhythm of the music.Optional Hardware AdditionsSome of Raveberry's features rely on additional hardware. If you want to use all of them, consider upgrading your Raspberry Pi with one of these one of items:WiFi Dongle:
To provide a WiFi network for users to connect, you have to set up a second network interface. If disabled, your users have to be in the same network as Raveberry, or you have to configure an external URL.LEDs:
For audio visualization, Raveberry uses thei2candspiprotocols to control connected LEDs. They will automatically be used if they are detected at server startup. For more information seedocs/leds.md.USB Sound Card:
The quality of the internal Raspberry Pi sound card varies from model to model. For a better music experience I recommend using a small USB sound card.USB Stick:
If you don't want to use the Raspberry Pi's internal filesystem, you can insert an external medium like a USB stick. Its label can be specified in the config file and is then used to cache the songs.Tested HardwareRaveberry is known to work on the following Hardware:Raspberry Pi 4Raspberry Pi 3B+Raspberry Pi Zero WIf you have something to add to the list, please let me know!Although it is possible to install and run Raveberry on the original Raspberry Pi (after a very long installation), the hardware is just to weak for audio decoding and can not provide a pleasant experience at all.UninstallDuring installation a backup folder is created. It contains all files that were overwritten outside of theraveberry/folder. To undo installation, move these files back to their respective locations using the following command. Take care of changes you made in the meantime!sudo cp -r backup_{timestamp}/* /To remove files created during the setup runsudo scripts/uninstall.shFAQThe current song is displayed in red and there is no soundRed text means that Raveberry can't communicate with the player anymore. Either the player crashed or the interfacing library can't reconnect.To fix this, first restart the player (/settingsin "Sound Output") and wait a few seconds. If it still does not work, restart the server (/settingsat the bottom).How do I use Spotify?To enable Spotify support, install Raveberry withspotify: trueinraveberry.yaml. Read how to enter your credentialshere.During installation I geterror: externally-managed-environmentSolution:sudo mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.oldWith debian bookworm, system-wide installation of python packages is strongly discouraged. While this is a noble approach, Raveberry is very integrated and needs to be installed system-wide. An installation in a virtualenv will not work for the full install.Note that this will allow system-wide installation for all packages, not onlyraveberry.I can't log in, it always says "Please reload"You ran into CSRF protection. This happens when you host Raveberry behind a proxy and the protocols don't match up, e.g.http://demo.raveberry.partyvshttps://demo.raveberry.party.Avoid this by providing your url either in theraveberry.yaml(install) or in the.envfile (docker).Where are my YouTube files?If you specified a path in your config file before installing, you will find them there. If no path was given, it will default to~/Music/raveberry. If you run it aspiusingraveberry run, this will be/home/pi/Music/raveberry. If Raveberry was installed, the process is running aswww-dataand you will find the directory at/var/www/Music/raveberry.Streaming doesn't work (there is only silence)This is a known issue on Ubuntu 20.04 and Debian Bullseye.
To fix it, downgradelibshout3:cd /tmp
# for x86_64
wget http://mirrors.kernel.org/ubuntu/pool/main/libs/libshout/libshout3_2.4.1-2build1_amd64.deb -O libshout.deb
# for armhf (Raspberry Pi)
wget http://raspbian.raspberrypi.org/raspbian/pool/main/libs/libshout/libshout3_2.4.1-2_armhf.deb -O libshout.deb
sudo dpkg -i libshout.deb
sudo apt-mark hold libshout3I want to use the visualization without doing an install.Install the required packagessudo apt-get install cava
pip3 install raveberry[screenvis]Ifcavais not available on apt, you need tobuild it from source.Then comment out the following line in the used cava config (add the#):# source = cava.monitorNow you can start the server withraveberry run, login with admin:admin atlocalhost:8080/loginand enable the visualization atlocalhost:8080/lights.Special ThanksAll the awesome people that createdMopidyfor this incredibly versatile music player.EspeciallyMopidy-Spotifyfor their continued efforts to keep Spotify playback possible.djangofor providing one of the best documentations I have ever encountered.@karlstavfor his audio visualizercava.yt-dlpfor greatly simplifying the interaction with YouTube.Gliumfor making OpenGL a lot less painful.Steven van Teteringfor writingthe shaderI based my visualization on.All my friends for constantly beta testing this project.More InformationThedocs/folder contains more information about usage, resources etc.Don't hesitate to mail me for feedback or open an issue if you experience any problems. There is also a Reddit and a Discord community:Reddit:https://www.reddit.com/r/raveberry/Discord:https://discord.gg/dy7Jxvjj9HIf you like this project, you can support me here: