Cloud music integration for your desktop
Clone or download
ColinDuquesnoy Update SUPPORT.md
Improve wording
Latest commit 84206f8 Aug 23, 2018

README.md

MellowPlayer banner

GNU/Linux and Mac OSX Build Status Windows Build status Coverage Status Latest stable release Join the chat at https://gitter.im/ColinDuquesnoy-MellowPlayer/Lobby

About

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.

Supported services:

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

Limitations:

  • 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.

Resources

License

MellowPlayer is licensed under the GPL license.

Download

GNU/Linux Packages

Requirements

Build dependencies

  • 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)

Bundled 3rd-parties

Frameworks

Testing

Compilation

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.

From QtCreator

Open up mellowplayer.qbs with QtCreator, hit build and run.

From Command Line

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.

Setting up qbs

qbs-setup-toolchains --detect
qbs-setup-qt $(which qmake) qt5  # make sure that qmake is in PATH
qbs-config defaultProfile qt5

Building MellowPlayer

qbs build release

Note: If you're using qbs >= 1.11, replace release by config:release

Build options

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;

Running MellowPlayer from build directory

qbs run config:release -p MellowPlayer

Installing MellowPlayer on your system

sudo qbs install --install-root /usr/ config:release

Running the test suite

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 only
  • integration-tests: run integration tests only

Example from command line:

qbs build -p tests debug

Contributing

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!