Skip to content

Lightweight Qml/C++ Deezer Player using Native SDK

License

Notifications You must be signed in to change notification settings

blackccpie/deezzy

Repository files navigation

!!! IMPORTANT : PLEASE NOTE DEEZER HAS STOPPED SUPPORTING THE DEEZER NATIVE SDK !!!

deezzy

Lightweight Qml/C++ Deezer Player using Deezer Native SDK (amongst other platorms, it supports ARM Linux).

deezzy has no search/playlist management, it's default goal is to play your user's flow radio, unless you launch it with a specific deezer album/playlist url.

Deezzy

Platforms support

Deezzy has been developped and initially tested on an Ubuntu 16.04LTS box, and then successfully built and tested on a Raspberry Pi 2 with a Tontec 3.5 inches touchscreen. As far as the Deezer Native SDK and Qt SDK are crossplatforms, deezzy should be easily portable to Windows/MacOS.

Deezzy-RPi

Building and Running on the Raspberry Pi:

!! First of all you need a Deezer user account in order to get a valid user id!!!

  1. Download the Deezer Native SDK and clone the deezzy repo (both should be in the same directory):
$ wget https://build-repo.deezer.com/native_sdk/deezer-native-sdk-v1.2.10.zip
$ unzip deezer-native-sdk-v1.2.10.zip
$ git clone https://github.com/blackccpie/deezzy.git
  1. Register your application here to get your own app id, and authorize it by getting your access token following this procedure (use following permissions : basic_access,email,manage_library). With these infos, update the private_user.h header with your USER_ID, USER_ACCESS_TOKEN and the USER_CACHE_PATH of your choice.
$ nano deezzy/src/deezer_wrapper/private/private_user.h
  1. make sure you have Qt/Qml and pulseaudio prerequisites installed:
$ sudo apt-get install qt5-qmake qt5-default qtdeclarative5-dev qml-module-qtquick-controls qml-module-qtquick-layouts
$ sudo apt-get install libpulse-dev
  1. run rpi build script (requires CMake and GCC6):
$ cd deezzy
$ sh build_rpi_gcc6.sh
  1. [Optional] List your audio devices and select the default one:
$ pacmd list-sinks
$ pacmd set-default-sink <YOUR_DEFAULT_SINK_NAME>
  1. Start pulseaudio service
$ pulseaudio -D
  1. Run deezzy binary in flow radio mode or given a deezer url
$ ./deezzy
$ ./deezzy dzmedia:///album/659384

Experimental Raspbian Docker support:

I made some initial tests to run deezzy in a docker container, to simplify deployment and dependencies management. In the docker directory you will find some usefull scripts to build and run an image containing prebuilt deezzy. For now the gui/x11 part is handled, the pulseaudio part is handled too thanks to this project, but there is still a strange bug that seems to "freeze" track play when a new track is starting.