An universal linux port of deezer, supporting both Flatpak and AppImage

Overview

Deezer for linux

This repo is an UNOFFICIAL linux port of the official windows-only Deezer app. Being based on the windows app, it allows downloading your songs to listen to them offline!

It packages the app in a number of formats:

  • Flatpak
  • Snap (not tested yet)
  • AppImage (can't automatically login without desktop integration)
  • rpm (Fedora, Red Hat, CentOS, openSUSE, ...)
  • deb (Debian, Ubuntu, Pop!_OS, elementary OS, ...)
  • tar.gz/zip/7z to install anywhere else

It was done thanks to the hard work of SibrenVasse, who packaged the app for the AUR.

Please note that it is still in alpha stage, and you will probably need to install some things in order to generate the packages from source (nodejs and npm at least).

Flatpak

The main point of the project is the flatpak image.

You can install it thanks to the flatpakref file.

To build it from source, you can one of the following commands:

# To build it and install it
make install_flatpak

# To just build it, but do nothing with it
make build_flatpak

# To build it and install it in the local repo (which you can import later)
make export_flatpak

And when it is installed, you can run it with flatpak run dev.aunetx.deezer, or from the desktop icon.

AppImage

This project also generates an AppImage file, which can be used as a stand-alone application.

To use it, you must build it from source for the moment: the package size is randomly big, which prevents me from making a public release.

To generate it from source, call:

make build_appimage

And the image should be in the artifacts/x64 folder.

Because of the way AppImage work, excepted if you use appimaged, you will not be able to login from the browser: the you are not redirected to the application. To make it work, you must open a first instance of the app, and copy the link shown in https://www.deezer.com/desktop/login/electron/callback. In a terminal (where the `.AppImage file is), call:

deezer-desktop-*.AppImage deezer://autolog/...

And you should be automatically logged in.

rpm / deb / tar.gz / 7z / zip / snap

To generate the rpm/deb/tar.gz/7z/zip/snap packages, you can call make build_pkgs, everything should be generated in artifacts/x64.

Please note that generating all at once will take a very long time, and it oddly results in big package sizes for the moment.

The tar.gz is not a pacman package by the way, but just an archive containing the executable (like for 7z and zip). I can't get to generate pacman packages for the moment (throws an error, will investigate later).

To only generate rpm or deb, call:

make build_rpm
# or
make build_deb

Wthout package manager

This will be soon supported, but you can install it by hand with one of the generated 7z/zip/tar.gz archive

IMPORTANT NOTICE

This work is UNOFFICIAL, and Deezer does not officially support linux yet.

Installing/using this is consequently outside of the scope of the Deezer EULA, and I am not responsible for your usage of this.

I will try to talk to Deezer to ask them if I can upload this on Flathub, but even if they say yes (which is nearly impossible), this work is still unofficial.

Comments
  • Deezer app is modifying MIME html to be associated with it

    Deezer app is modifying MIME html to be associated with it

    Hello,

    Deezer when it is launched is modifying the file ~/.config/mimeapps.list as follows:

    [Default Applications]
    text/tab-separated-values=rstudio.desktop
    text/plain=rstudio.desktop
    text/html=deezer-desktop.desktop
    x-scheme-handler/http=firefox.desktop
    x-scheme-handler/https=firefox.desktop
    application/xhtml+xml=firefox.desktop
    x-scheme-handler/dzr=deezer-desktop.desktop
    x-scheme-handler/deezer=deezer-desktop.desktop
    

    the culprit is this line text/html=deezer-desktop.desktop. Then any HTML files I open goes into deezer and of course does not display.

    If I manually replaced by text/html=firefox.desktop HTML files are again opened by FF.

    Put if I close deezer and later opened it, the mime text/html is again associated to Deezer.

    Do you know why this is happening?

    Thanks!

    Ubuntu 21.10 with Wayland GNOME 40.4.0 deezer 5.30.170 install via .deb and apt

    bug 
    opened by ginolhac 7
  • Limited to 320Kb/s an cannot favorite albums

    Limited to 320Kb/s an cannot favorite albums

    This seems to be an issue while on Fedora. It worked fine on Ubuntu, but flatpak, appimage, and .rpm files do not fix the issue. Not sure how much of this involves something you can fix. Just thought I'd mention it and thank you for the work.

    opened by picklepopper1 6
  • Outdated version

    Outdated version

    The latest version of the Windows application on the Deezer website is 5.30.330, whereas the latest version here is 5.30.220:

    image

    Though I can't say for certain, it seems that the application being out of date has finally caught up with it, because logging into the desktop application simply doesn't work as of today, whereas logging into the website works just fine:

    https://user-images.githubusercontent.com/40576902/192224268-b02a4728-32f9-449b-807e-f99310d70759.mp4

    opened by elsandosgrande 5
  • Fix #21 app must stay in background by default

    Fix #21 app must stay in background by default

    Hello ! 🙂

    This PR is to fix #21 After closing the app, it is not stayed in background and, obviously, the systray disappeared. I noticed that the quit.patch was not applied like the other patches. With this change, it is finally applied. I think this is caused by the fix-isDev-usage.patch. It is applied in first, shifts the lines and the patch provided by quit.patch is not found.

    So, with this PR, it works fine. But, it's possible that the bug will come back after merging the PR #20 for example... Is there another way to apply patches?

    opened by adynemo 5
  • Can't put the app in favorite

    Can't put the app in favorite

    image The icon in the app bar does not offer "Add to favorites" option, so I can't launch it from there, I have to search for it in all applications. e.g. for a standard file icon: image

    opened by florentdestremau 5
  • Build deb file

    Build deb file

    Running installation commands like described returns an error.

    $ make install_deps
    
    added 17 packages, and audited 18 packages in 3s
    
    1 package is looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    
    added 1 package, and audited 19 packages in 823ms
    
    2 packages are looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    Download installer
    2022-08-03 19:45:22 URL:https://e-cdn-content.dzcdn.net/builds/deezer-desktop/8cF2rAuKxLcU1oMDmCYm8Uiqe19Ql0HTySLssdzLkQ9ZWHuDTp2JBtQOvdrFzWPA/win32/x86/5.30.220/DeezerDesktopSetup_5.30.220.exe [77848448/77848448] -> "source/deezer-setup-5.30.220.exe" [1]
    Extract app archive from installer
    /bin/sh: 1: 7z: not found
    make: *** [Makefile:19: prepare] Error 127
    

    Then when I try to run make build_deb returns an error "Command 'build-deb' not found." I'm on Ubuntu 20.04 LTS.

    opened by samuelv8 4
  • Lot of debug outputs

    Lot of debug outputs

    Hey!

    I am running the Flatpak version and the app is quite verbose with many log lines like 23:24:01.470 (main/debug) › Added response headers for https://e-cdnt-proxy-4.dzcdn.net. This is logged in the ~/.xsession-errors file in my case. Is it possible to disable debug logs?

    opened by vincentbernat 4
  • Flatpak xdg-open not working

    Flatpak xdg-open not working

    Hello,

    I'm using Deepin Linux 20.6 and installed Deezer from Flatpak, but I can't login at app.

    When I click at login, it opens my browser at Deezer login page but after I successfully provides my credentials the xdg-open action seems to do nothing.

    I had to run it through terminal using the following command for it to login successfully (similar to AppImage):

    flatpak run dev.aunetx.deezer deezer://autolog/...
    
    opened by eduardomozart 3
  • Option to disable systray?

    Option to disable systray?

    As a suggestion, I would find it very nice to have the option to disable minimize-to-systray or even better to disable the systray functionality completely. Especially on GNOME, where there is no systray by default, it is annoying to have deezer running in the background. Or is there maybe some workaround to disable it?

    In any case: Thank you for your work on this! :)

    enhancement 
    opened by pschloenzke 3
  • After closing the main window, Deezer does not stay in the tray

    After closing the main window, Deezer does not stay in the tray

    After installing v5.30.220-1, the main window when closed quits the whole app (it does not stay in the tray). The tray icon is present and works if the app is open. In v5.30.210-1 after closing the main window Deezer stayed in the tray and played music.

    I didn't find a way how to change the behavior back as it was in v5.30.210-1 in settings or by a command line parameter.

    Workaround: revert to v5.30.210-1.

    Operating System: Kubuntu 21.10 KDE Plasma Version: 5.24.4 KDE Frameworks Version: 5.92.0 Qt Version: 5.15.2 Kernel Version: 5.17.0-5.1-liquorix-amd64 (64-bit) Graphics Platform: X11

    opened by gree7 2
  • "Flow: play how you feel" not working

    Deezer has a new feature "Flow: play how you feel": image which is not working. The icons are shown as generic albums and the play button does nothing: image

    opened by gree7 2
  • Deezer Cache Location?

    Deezer Cache Location?

    Hello! Thanks so much for creating this project. Without it, I don't think I could have switched to Deezer from Spotify.

    I've been having trouble with the "Flow" playlist. Sometimes it plays the same songs repeatedly. Some times it doesn't work at all. Deezer forums and support have indicated this might be a cache issue, but when using the Flatpak Deezer, I can't locate the cache at all. Visiting Profile -> Account Settings -> More -> App Preferences, it indicates that Deezer is not using any cache:

    image

    I'm not sure if there isn't a cache, or if the Flatpak just can't see it. Either way, that seems like it could be causing my potential problems. Where on the disk is the cache supposed to be stored?

    opened by quicksketch 2
  • Loosing ability to play or skip next track after a short while.

    Loosing ability to play or skip next track after a short while.

    I am finding that after a few tracks in a playlist or album the app will stop playing any further tracks or allow me to skip forward (or back). I can still play the same song again. This in particular happens after the application is left in the background (window closed), but also happens with the window open too. If I click on a different track to play, the name gets updated in the bottom bar, but still only allows the previous song the app is stuck on to play. Happens with both the latest (v5.30.220-2) flatpak and deb, I am using Mint 20.03, fully updated. Issue is repeatable on a clean install of the same version of Mint on a separate machine. Let me know if you need further info :)

    opened by NGRhodes 0
  • Media Keys not working (Ubuntu, .deb file)

    Media Keys not working (Ubuntu, .deb file)

    Hey !

    Just started using this app today, you're a godsend for building it ! The fact that Deezer still doesn't have official Linux support is really sad...

    App is working really well, didn't try the offline features yet, but I can already tell you that media keys (Razer Blackwidow Elite) do not work (they work when using Deezer in the browser), neither do the controls from the app tray. Although the controls in the notification center do (I'm using them for the moment to play/pause and switch tracks)

    I'm using the latest release installed from a .deb file (deezer-desktop_5.30.220_amd64.deb) on Ubuntu 20.04.4.

    Let me know if you need anything to debug :)

    opened by 3rgo 2
  • Album in track metadata is empty

    Album in track metadata is empty

    I try to get metadata with playerctl, there is song title and artist, but album stays empty.

    playerctl metadata
    chromium xesam:album               
    chromium xesam:artist              Some Artist
    chromium xesam:title               Some Title
    

    As I have seen it is processed here in renderer.js:

                      track = {
                        title:
                          song.SNG_TITLE ||
                          song.LIVESTREAM_TITLE ||
                          song.EPISODE_TITLE ||
                          "",
                        artist:
                          song.ART_NAME ||
                          song.LIVESTREAM_TITLE ||
                          song.SHOW_NAME ||
                          "",
                        album: song.ALB_TITLE,
                        coverUrl: defaultCover,
                      },
    

    Any idea how to solve? Note that I have compiled from source, but I don't have experience in js or node.

    bug 
    opened by joerg65 4
  • New features for Systray Icons

    New features for Systray Icons

    In the flatpak.ref the Systray Icon is only shown after suspend. Additionally it would be nice to give the systray a deezer logo. And lastly it would be nice to have options inside the app to change settings on systray-behaviour (if that is possible from your side?)

    opened by muffinmaster1024 1
Releases(v5.30.350-1)
Owner
Aurélien Hamy
A fish swimming in acid.
Aurélien Hamy
Powerful Assistant

Delta-Assistant Hi I'm Phoenix This project is a smart assistant This is the 1.0 version of this project I am currently working on the third version o

1 Nov 17, 2021
A python tool for synchronizing the messages from different threads, processes, or hosts.

Sync-stream This project is designed for providing the synchoronization of the stdout / stderr among different threads, processes, devices or hosts.

Yuchen Jin 0 Aug 11, 2021
This module extends twarc to allow you to print out tweets as text for easy testing on the command line

twarc-text This module extends twarc to allow you to print out tweets as text for easy testing on the command line. Maybe it's useful for spot checkin

Documenting the Now 2 Oct 12, 2021
:snake: Complete C99 parser in pure Python

pycparser v2.20 Contents 1 Introduction 1.1 What is pycparser? 1.2 What is it good for? 1.3 Which version of C does pycparser support? 1.4 What gramma

Eli Bendersky 2.8k Dec 29, 2022
Is a polybar module that will show you your progress in Hack The Box

HTB-Status for Polybar Is a polybar module that will show you your progress in Hack The Box indicating your current rank, global rank, points and resp

bitc0de 8 Jan 14, 2022
Developing and Comparing Vision-based Algorithms for Vision-based Agile Flight

DodgeDrone: Vision-based Agile Drone Flight (ICRA 2022 Competition) Would you like to push the boundaries of drone navigation? Then participate in the

Robotics and Perception Group 115 Dec 10, 2022
github action test, because I dont know it.

mad-y testing testing pip install -r requirements.txt add the DISCORD_TOKEN value to your env vars. and run mad-y how to Deploy ` docker build -t mad-

Mit 1 Oct 29, 2021
In this project, we'll be creating a virtual personal assistant for ourselves using our favorite programming language

In this project, we'll be creating a virtual personal assistant for ourselves using our favorite programming language, Python. We can perform several offline as well as online operations using the bo

Ashutosh Krishna 188 Jan 03, 2023
This is an online course where you can learn and master the skill of low-level performance analysis and tuning.

Performance Ninja Class This is an online course where you can learn to find and fix low-level performance issues, for example CPU cache misses and br

Denis Bakhvalov 1.2k Dec 30, 2022
Mengzhan (John) code for Closed Loop Control system of Sharp Wave Ripples in Hippocampus CA3 region

ClosedLoopControl_Yu Mengzhan (John) code for Closed Loop Control system of Sharp Wave Ripples in Hippocampus CA3 region Creating Python Virtual Envir

Mengzhan (John) Liufu 1 Jan 22, 2022
Return-Parity-MDP - Towards Return Parity in Markov Decision Processes

Towards Return Parity in Markov Decision Processes Code for the AISTATS 2022 pap

Jianfeng Chi 3 Nov 27, 2022
Quick script for automatically extracting syscall numbers for an OS

Syscalls-Extractor Quick script for automatically extracting syscall numbers for an OS $ python3 .\syscalls-extractor.py --help usage: syscalls-extrac

m0rv4i 54 Feb 10, 2022
Syntax highlighting for yarn.lock and bun.lockb files

Yarn.lock Syntax Highlighting Syntax highlighting for yarn.lock and bun.lockb files Installation Plugin is not publushed yet on Package Control, to in

Alexander Kuznetsov 4 Jul 06, 2022
Problem 5: Fermat near-misses

Problem 5: Fermat near-misses fermatnearmiss This is a script that computes fermat nearm misses when the -f option is set and requires users to input

CHRIS BYRON (Int0x80) 1 Jan 08, 2022
En este repositorio realizaré la tarea del laberinto.

Laberinto Perfil de GitHub del autor de este proyecto: @jmedina28 En este repositorio queda resuelta la composición de un laberinto 5x5 con sus muros

Juan Medina 1 Dec 11, 2021
UUID_ApiGenerator - This an API that will return a key-value pair of randomly generated UUID

This an API that will return a key-value pair of randomly generated UUID. Key will be a timestamp and value will be UUID. While the

1 Jan 28, 2022
Pengenalan para anggota KOMPETEGRAM

Pengenalan Anggota KOMPETEGRAM Apa isi repositori ini ? 💬 Repositori ini berisi pengenalan nama anggota KOMPETEGRAM dari seluruh angkatan atau Batch.

Repositori KOMPETEGRAM 7 Sep 17, 2022
An evolutionary multi-agent platform based on mesa and NEAT

An evolutionary multi-agent platform based on mesa and NEAT

Valerio1988 6 Dec 04, 2022
Imports an object based on a string import_string('package.module:function_name')() - Based on werkzeug.utils

DEPRECATED don't use it. Please do: import importlib foopath = 'src.apis.foo.Foo' module_name = '.'.join(foopath.split('.')[:-1]) # to get src.apis.f

Bruno Rocha Archived Projects 11 Nov 12, 2022
Never get kicked for inactivity ever again!

FFXIV AFK Bot Tired of getting kicked from games due to inactivity? This Bot will make random movements in random intervals to prevent you from gettin

5 Jan 12, 2022