MellowPlayer is a free, open source and cross-platform desktop application that runs web-based music streaming services in its own window and provides integration with your desktop (hotkeys, multimedia keys, system tray, notifications and more).
MellowPlayer is a Qt based alternative to NuvolaPlayer initially crafted for KaOS. MellowPlayer is written in C++ and QML.
Service | GNU/Linux | AppImage | Windows | OSx | Require non-free HTML codecs | Require flash | Require drm |
---|---|---|---|---|---|---|---|
Deezer | Yes | Yes | Yes | Yes | Yes (or flash) | Yes (or non-free codecs) | No |
Mixcloud | Yes | No | No | No | Yes | No | No |
Soundcloud | Yes | No | No | No | Yes | No | No |
Spotify | Yes | No | No | No | Yes | No | Yes |
TuneIn | Yes | Yes | Yes | Yes | Depends on the stream | No | No |
8tracks | Yes | Yes | Yes | Yes | Depends on the stream | No | No |
Google Play Music | Yes | Yes | Yes | Yes | ? | ? | ? |
Youtube | Yes | Yes | Yes | Yes | Depends on the stream | No | No |
Tidal | Yes | Yes | Yes | Yes | No | Yes | No |
Anghami | Yes | No | No | No | Yes | No | No |
Pocket Casts | Yes | No | No | No | Yes | No | No |
HearThisAt | Yes | Yes | Yes | Yes | Depends on the stream | No | No |
Jamendo | Yes | Yes | Yes | Yes | No | No | No |
Radionomy | Yes | Yes | Yes | Yes | Depends on the stream | No | No |
Wynk | Yes | No | No | No | Yes | No | No |
ympd | Yes | Yes | Yes | Yes | No | No | No |
Plex | Yes | No | No | No | Yes | No | ? |
Youtube Music | Yes | Yes | Yes | Yes | Depends on the stream | No | No |
Netflix | Yes | No | No | No | No | No | Yes |
- For licensing reason, we do not ship the flash player plugin and the widevine DRM plugins in our official releases.
- Some services (e.g. Spotify, Soundcloud and Mixcloud) also requires QtWebEngine to be compiled with proprietary codecs, which is not the case in our official releases.
- Tidal HiFi does not work because there is no MQA plugin available for chromium based browsers.
MellowPlayer is licensed under the GPL license.
- qbs >= 1.10
- a c++17 compiler (gcc6, msvc 2015 or clang)
- Qt5 (>= 5.9.0, QtWebEngine and QtQuickControls2 needed)
- Libnotify (optional, GNU/Linux only)
Building MellowPlayer requires Qbs >= 1.10 and a C++17 compiler (GCC >= 6.x or Clang >= 3.5 or MSVC 2015 Update 2).
Qbs is a new build system from the Qt Company that is much easier to use compared to CMake, especially for Qt based projects.
If you want to learn more, please read the Qbs manual, especially the setup guide and how to install artifacts from the installation guide.
Open up mellowplayer.qbs
with QtCreator, hit build and run.
Before you can build, you have to setup qbs. This step must be done the first time you're building MellowPlayer and everytime you update your Qt version or toolchain.
qbs-setup-toolchains --detect
qbs-setup-qt $(which qmake) qt5 # make sure that qmake is in PATH
qbs-config defaultProfile qt5
qbs build release
Note: If you're using qbs >= 1.11, replace release
by config:release
You can append the following command line options when building MellowPlayer:
projects.MellowPlayer.defaultTheme
:<string>
: the name of the default theme. Can be set to any theme appearing in the theme combo box. Default value: "Adaptive".projects.MellowPlayer.buildTests
:<bool>
: true to build mellowplayer test suite. Default value: false.projects.MellowPlayer.enableCoverage
:<bool>
: true to enable code coverage build. Require a debug build config and a gcc compiler. Default value: false;
qbs run config:release -p MellowPlayer
sudo qbs install --install-root /usr/ config:release
Make sure you've built MellowPlayer with projects.MellowPlayer.buildTests:true
qbs resolve debug projects.MellowPlayer.buildTests:true
qbs build debug projects.MellowPlayer.buildTests:true
To run the tests, just build one of the below products (either from QtCreator or from command line):
tests
: run all tests (unit and integration tests)unit-tests
: run unit tests onlyintegration-tests
: run integration tests only
Example from command line:
qbs build -p tests debug
MellowPlayer is an open-source application that needs your help to go on growing and improving!
There are many ways for developer and non-developers to contribute to the project. You can report (and fix) bugs, add new translations, add support for new streaming services (the core team won't support all services, especially those which are not free), and so on...
If you feel like you want to contribute to the project, make sure to checkout the contributing guidelines!