Installing USDB Syncer on a Raspberry Pi (by frohlfing) - bohning/usdb_syncer GitHub Wiki

The guide covers:

  • Installing usdb_syncer on Raspberry Pi OS 64-bit (Debian 12 Bookworm)
  • Handling Python and poetry dependencies
  • Fixing installation errors (dbus-python, f-string issue)
  • Resolving missing QtMultimedia backends

First Attempt

I successfully installed usdb_syncer alongside Ultrastar Deluxe on my Raspberry Pi. The setup works perfectly on a Raspberry Pi 4B with 8 GB RAM, running Raspberry Pi OS 64-bit (Debian 12 Bookworm).

Initially, I met all prerequisites, installing Python 3.12 (latest: 3.12.9) and then poetry.

However, running poetry install failed due to an issue with the dbus-python (1.3.2) dependency, which couldn't be built properly. The reason became clear when checking apt show python3-dbus:

Depends: python3 (<< 3.12), python3 (>= 3.11~)

Unfortunate.

Second Attempt

I removed Python 3.12 and poetry and decided to take a simpler approach, hoping that the default Python version on the Raspberry Pi would be sufficient. Spoiler: It was!

Steps to Success

  1. Install poetry via the GUI (Add/Remove Software).

  2. Install required packages:

    sudo apt update  
    sudo apt install -y python3.11 python3.11-venv python3.11-dev build-essential libdbus-1-dev libglib2.0-dev cmake pkg-config  
    
  3. Clone the repository:

    git clone https://github.com/bohning/usdb_syncer.git  
    cd usdb_syncer  
    
  4. Adjust the required Python version in pyproject.toml:
    Change this line:

    python = "3.12.*"
    

    To:

    python = ">=3.11,<3.13"
    
  5. Set up the virtual environment:

    poetry env use python3.11  
    poetry install  
    
  6. Fix missing QtMultimedia backends:
    Running usdb_syncer now worked but showed this warning:

    No QtMultimedia backends found. Only QMediaDevices, QAudioDevice, QSoundEffect, QAudioSink, and QAudioSource are available.  
    Failed to initialize QMediaPlayer "Not available"  
    

    To fix this, install additional packages:

    sudo apt-get install qtmultimedia5-dev libqt5multimedia5-plugins qml-module-qtmultimedia  
    

    Add this source to /etc/apt/sources.list:

    deb http://deb.debian.org/debian bullseye main  
    

    Then run:

    sudo apt-get update  
    sudo apt-get install libwebp6 libtiff5 libavformat58 ffmpeg libavcodec58 libswscale5  
    
  7. Run usdb_syncer:

    poetry run usdb_syncer  
    

    Now it works perfectly!