Git Product home page Git Product logo

spotify-qt's Introduction

spotify-qt with dark theme

Linux Build Windows Build macOS Build

An unofficial Spotify client using Qt as a simpler, lighter alternative to the official client. Please note that you need an actual Spotify client running, for example librespot, which can be configured from within the app.

Note: Controlling playback requires Spotify Premium.

Contributions are very welcome!

Goals

  • Fast, light on resources, and small file size.
  • Portable, and supporting as many platforms and architectures as possible.
  • Customizable.

Non-goals

  • Having the same features as the official client.

Supported platforms

Any system with a C++11 compiler and Qt is supported, but only Linux, Windows (x64) and macOS (arm64) are regularly being tested, so if an issue occurs on your favorite platform, please report it.

Installing

spotify-qt is available from some package managers. If there are any package issues, or the version is out of date, contact the respective package maintainers, not me, unless I'm the package maintainer. If you want to maintain the package on a system not in the list below, you are very much free to, just please open an issue, or get in contact with me, so I can add it to the list.

Platform Package Maintainer
Arch (or Arch-based) AUR kraxarn
NetBSD pkgsrc pin
FreeBSD FreeBSD Ports ehaupt
Void Linux Void Linux abenson
NixOS nixpkgs unstable karthikiyengar
openSUSE openSUSE Multimedia:Apps Tumbleweed package KaratekHD
Ubuntu Snapcraft kraxarn
Alpine Linux Alpine Linux Edge ptrcnull
Windows Scoop extras brian6932

If you're running some other Linux distribution, macOS, or Windows, you can instead download portable binaries from the release page. If you want to try out new features, you can download unstable builds automatically built every day from spotify-qt-nightly.

Configuring

spotify dashboard

  • launch Spotify-qt and copy/paste Client ID and Client Secret, you should be able to login

Building yourself

Make sure you have Qt (5.9+/6.0+) with SVG support, CMake (3.5+) and various build tools like make, g++ and git. Keep in mind that the master branch is unstable at all times. Therefore, it's recommended to use the stable branch, which is updated after each new stable release, only including important bug fixes, unless you want to try out new features.

git clone --branch stable https://github.com/kraxarn/spotify-qt.git
cd spotify-qt
mkdir build
cd build
cmake ..
make
./spotify-qt

spotify-qt's People

Contributors

bajtix avatar brian6932 avatar brunetton avatar devhyper avatar fintasticman avatar herrhotzenplotz avatar ilyabizyaev avatar inalone avatar johnyenter-briars avatar jojopet avatar justabubble avatar karatekhd avatar keshavbhatt avatar kraxarn avatar laffer1 avatar lf- avatar nihathrael avatar notexe avatar pa-sowa avatar ptrcnull avatar riiga avatar sspanak avatar uninhm avatar wsipak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spotify-qt's Issues

Latest release has version v0.0 in the About dialog

System information

ABI: | x86_64-little_endian-lp64
-- | --
App version: | v0.0
Device: | Spotifyd@void (Speaker)
Kernel: | linux 5.9.7_1
Product: | void
Qt version: | 5.15.1

Detailed information

Built locally following the README instructions, however the About dialog shows an incorrect version number.
image

Workflow

I think these three colored containers should appear just one at a time, as Spotify does.

When I going to look for an artist (blue), the current playlist no longer matters (yellow), when I find the artist (green), the list of artists searched (blue) no longer matters, and so on.

The Audio Resource should be a dialog window IMO, since we will not be looking at this information all the time, unlike the lyrics.

Screenshot_20200516_200031

Audio features & lyrics crash application

Hi @kraxarn :)

when I right click on (it seems, tried a dozen or so) any song and select either option of "Lyrics" or "Audio features" the application crashes completely. Is the expected behavior because the functionality is only mocked in the interface?

App version: | v2.7
Current desktop: | X-Cinnamon
LSB release: | Manjaro Linux
Linux version: | 5.7.10-1-MANJARO
Qt version: | 5.15.0

Best,
Philipp

No devices found

After release 1.7, the spotifyd daemon does not start along with spotify-qt, even though I'm still being prompted for the password.
Starting spotifyd by hand and then connecting spotify-qt to that device works fine.

Only the last 50 playlists are visible in the playlist pane

System information

ABI: | x86_64-little_endian-lp64
-- | --
App version: | v0.0
Device: | spotify-qt (Speaker)
Kernel: | linux 5.8.12_1
Product: | void
Qt version: | 5.15.1

Detailed information

Only the last 50 playlists are listed in the playlist pane.

What happens?

The playlist pane only displays the last 50 playlists.

What should happen?

All playlists should be visible and accessible.

Fix dark theme in stable

Currently, when I try to tick the dark theme checkbox in the stable branch (or v3.4) it segfaults. This only happens when it is still in light theme, and in a build of the master branch this doesn't happen. Deselecting the dark theme when it has been set in a build of the master branch (where it doesn't segfault) also works, so it is really just the selecting that doesn't work in stable. Since this is already fixed, just not committed to a stable branch, I'm not sure if this is issue actually useful, but I couldn't see a previous issue about this so I thought it would be good to to make sure that its a known issue.

Add screenshot to README.md

The application looks very impressive at this point

Screenshot_20200420_173159

you should add a screenshot of it in the README.md :)

snap package D-Bus not plugged - MPRIS not working

Currently snap package has the following plugs enabled:

plugs: [home, opengl, network, network-bind, unity7]

As D-Bus interface is not in the list, MPRIS doesn't work and the app complains when starting.
Workaround is to use --devmode, although adding dbus to the list of plugs would be a better option.

High CPU Usage for no reason on KDE+Ubuntu

System information

AB x86_64-little_endian-lp64
App version v3.2-dev (59fcf9b)
Current desktop KDE
Device Spotifyd@JCake (Speaker)
Kernel linux 5.4.0-58-generic
Product Ubuntu 20.04.1 LTS
Qt version 5.9.5

Detailed information

The System monitor (KSysGuard) shows the app is idling at 13%CPU Usage after being open when the device wakes from sleep. I don't believe this has anything to do with the issue, however, notably, the app was running for extended periods of time prior to CPU usage spiking

What happens?

The App should stay open for an extended period of time and if possible be open when the device wakes from sleep. The application is playing music.

What should happen?

The CPU usage of the application should not exceed idling usage (<1%)

new feature - list filter

I would love to have the list filter in the desktop app

Describe the solution:
I have quite big "Liked Tracks" list. sometimes I would like to find my favorite track fast or just filter via artist. I'm missing it in spotify app as well. I would love to have this kind of filter on the list.

Premium requires

You failed to mention that premium account is required,. Without it, your app just won't work. This should be not only here on the very beginning of the description, but also on the authentication window.

This leads us to the wild goose chase to install app, then create the spotify app, get ID and secret number to find out in the end, this won't work :(.

"No device found" and unable to play audio from the app

System information

App version: | v2.9
Current desktop: | KDE
LSB release: | Arch Linux
Linux version: | 5.8.1-arch1-1
Qt version: | 5.15.0

I installed the app through yay -S spotify-qt.

Detailed information

When I click on the hamburger menu in the top left and try to select an audio device, it tells me "No device found." When I try to play music, it tells me "Failed to start playback: Player command failed: No active device found"

What should happen?

I have (I think) two audio devices in my system - on my motherboard, as well as apparently on my RX 560 - so I'd expect to be able to select a device, or have spotify-qt automatically select a device.

Failed to start playback: Player command failed: No active device found

System information

I am using spotify-qt V3.3 on a linux Ubuntu 20.04.2 LTS. I installed it using sudo snap install spotify-qt.

Detailed information

I never used it, I just tried today, but it wouldn't work.

What happens?

I started the app and tried to play some music, but the error message appeared on the bottom of the window: "Failed to start playback: Player command failed: No active device found"

What should happen?

I expected that some music would play. I tried looking in my sound settings, but all was normal. I had speakers in my screen and in my connected laptop (DELL XPS-13-9360) and I also tried to connect headphones, but nothing worked. When I go in the menu/Device in the app, there is no device available. It's only write "no devices found".

Thanks in advance

Cant play "Liked" songs

Playing Songs from library works just fine except on the "liked" cattegory
You click to play a song and nothing happens

Rename the project

I'm going to give this a try, but legit, I think the project should be renamed. To something not infringing on Spotify's trademark. That way you avoid having to rename if the project gains a lot of traction and Spotify decides to take legal action.

No access to library

Library grayed out, playlists showing up:

Screenshot from 2020-03-29 20-39-02

on Arch linux, built from AUR package.

Crashes after choosing Spotify Connect speaker

Using latest version from AUR as of writing (2.3.1, build date 23.6.20). The first launch works fine. After choosing a speaker from my Spotify Connect list in the devices list, the app crashes. All subsequent launches crash after showing the window for half a second until I restart the system (Manjaro unstable running 5.7). The system has a running daemon of spotifyd and is spotify-qt is configured to use it. Can I provide more information?

`Jun 23 09:24:34 philipp-blade-manjaro systemd-coredump[27916]: Process 27891 (spotify-qt) of user 1000 dumped core.

                                                           Stack trace of thread 27891:
                                                           #0  0x00007f85c72bed41 _ZN15QSystemTrayIcon7setIconERK5QIcon (libQt5Widgets.so.5 + 0x4d3d41)
                                                           #1  0x0000556516700806 n/a (spotify-qt + 0x56806)
                                                           #2  0x00005565166dc294 n/a (spotify-qt + 0x32294)
                                                           #3  0x00007f85c64b0906 n/a (libQt5Core.so.5 + 0x2e9906)
                                                           #4  0x00005565166c8896 n/a (spotify-qt + 0x1e896)
                                                           #5  0x00005565167121fc n/a (spotify-qt + 0x681fc)
                                                           #6  0x00007f85c64b0906 n/a (libQt5Core.so.5 + 0x2e9906)
                                                           #7  0x00005565166c8843 n/a (spotify-qt + 0x1e843)
                                                           #8  0x00005565167120f6 n/a (spotify-qt + 0x680f6)
                                                           #9  0x00007f85c64b0906 n/a (libQt5Core.so.5 + 0x2e9906)
                                                           #10 0x00007f85c754cea3 _ZN21QNetworkAccessManager8finishedEP13QNetworkReply (libQt5Network.so.5 + 0x45ea3)
                                                           #11 0x00007f85c754e258 n/a (libQt5Network.so.5 + 0x47258)
                                                           #12 0x00007f85c64b0906 n/a (libQt5Core.so.5 + 0x2e9906)
                                                           #13 0x00007f85c75abd85 n/a (libQt5Network.so.5 + 0xa4d85)
                                                           #14 0x00007f85c64a60b2 _ZN7QObject5eventEP6QEvent (libQt5Core.so.5 + 0x2df0b2)
                                                           #15 0x00007f85c6f47702 _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x15c702)
                                                           #16 0x00007f85c647969a _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x2b269a)
                                                           #17 0x00007f85c647c183 _ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData (libQt5Core.so.5 + 0x2b5183)
                                                           #18 0x00007f85c64d2bd4 n/a (libQt5Core.so.5 + 0x30bbd4)
                                                           #19 0x00007f85c4eec43c g_main_context_dispatch (libglib-2.0.so.0 + 0x5243c)
                                                           #20 0x00007f85c4f39fa9 n/a (libglib-2.0.so.0 + 0x9ffa9)
                                                           #21 0x00007f85c4eeb221 g_main_context_iteration (libglib-2.0.so.0 + 0x51221)
                                                           #22 0x00007f85c64d2211 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x30b211)
                                                           #23 0x00007f85c647801c _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2b101c)
                                                           #24 0x00007f85c64804a4 _ZN16QCoreApplication4execEv (libQt5Core.so.5 + 0x2b94a4)
                                                           #25 0x00005565166c8333 n/a (spotify-qt + 0x1e333)
                                                           #26 0x00007f85c5e2e002 __libc_start_main (libc.so.6 + 0x27002)
                                                           #27 0x00005565166c84ae n/a (spotify-qt + 0x1e4ae)
                                                           
                                                           Stack trace of thread 27895:
                                                           #0  0x00007f85c5efc05f __poll (libc.so.6 + 0xf505f)
                                                           #1  0x00007f85c4f39f38 n/a (libglib-2.0.so.0 + 0x9ff38)
                                                           #2  0x00007f85c4eeb221 g_main_context_iteration (libglib-2.0.so.0 + 0x51221)
                                                           #3  0x00007f85c64d2211 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x30b211)
                                                           #4  0x00007f85c647801c _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2b101c)
                                                           #5  0x00007f85c6293c32 _ZN7QThread4execEv (libQt5Core.so.5 + 0xccc32)
                                                           #6  0x00007f85c6294e0f n/a (libQt5Core.so.5 + 0xcde0f)
                                                           #7  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #8  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27913:
                                                           #0  0x00007f85c5df4e32 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xfe32)
                                                           #1  0x00007f85b15583bc n/a (iris_dri.so + 0x4ae3bc)
                                                           #2  0x00007f85b1556db8 n/a (iris_dri.so + 0x4acdb8)
                                                           #3  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #4  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27894:
                                                           #0  0x00007f85c5efc05f __poll (libc.so.6 + 0xf505f)
                                                           #1  0x00007f85c4f39f38 n/a (libglib-2.0.so.0 + 0x9ff38)
                                                           #2  0x00007f85c4eeb221 g_main_context_iteration (libglib-2.0.so.0 + 0x51221)
                                                           #3  0x00007f85c64d2211 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x30b211)
                                                           #4  0x00007f85c647801c _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2b101c)
                                                           #5  0x00007f85c6293c32 _ZN7QThread4execEv (libQt5Core.so.5 + 0xccc32)
                                                           #6  0x00007f85c7498098 n/a (libQt5DBus.so.5 + 0x17098)
                                                           #7  0x00007f85c6294e0f n/a (libQt5Core.so.5 + 0xcde0f)
                                                           #8  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #9  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27910:
                                                           #0  0x00007f85c5df4e32 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xfe32)
                                                           #1  0x00007f85b15583bc n/a (iris_dri.so + 0x4ae3bc)
                                                           #2  0x00007f85b1556db8 n/a (iris_dri.so + 0x4acdb8)
                                                           #3  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #4  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27896:
                                                           #0  0x00007f85c5df5158 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0x10158)
                                                           #1  0x00007f85c629ace8 _ZN14QWaitCondition4waitEP6QMutex14QDeadlineTimer (libQt5Core.so.5 + 0xd3ce8)
                                                           #2  0x00007f85c6298fd4 n/a (libQt5Core.so.5 + 0xd1fd4)
                                                           #3  0x00007f85c6294e0f n/a (libQt5Core.so.5 + 0xcde0f)
                                                           #4  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #5  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27892:
                                                           #0  0x00007f85c5efc05f __poll (libc.so.6 + 0xf505f)
                                                           #1  0x00007f85c2ccd63b n/a (libxcb.so.1 + 0xc63b)
                                                           #2  0x00007f85c2ccf37b xcb_wait_for_event (libxcb.so.1 + 0xe37b)
                                                           #3  0x00007f85c285cc51 n/a (libQt5XcbQpa.so.5 + 0x5dc51)
                                                           #4  0x00007f85c6294e0f n/a (libQt5Core.so.5 + 0xcde0f)
                                                           #5  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #6  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27908:
                                                           #0  0x00007f85c5efc05f __poll (libc.so.6 + 0xf505f)
                                                           #1  0x00007f85c4f39f38 n/a (libglib-2.0.so.0 + 0x9ff38)
                                                           #2  0x00007f85c4eeb221 g_main_context_iteration (libglib-2.0.so.0 + 0x51221)
                                                           #3  0x00007f85c64d2211 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x30b211)
                                                           #4  0x00007f85c647801c _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2b101c)
                                                           #5  0x00007f85c6293c32 _ZN7QThread4execEv (libQt5Core.so.5 + 0xccc32)
                                                           #6  0x00007f85c6294e0f n/a (libQt5Core.so.5 + 0xcde0f)
                                                           #7  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #8  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27911:
                                                           #0  0x00007f85c5df4e32 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xfe32)
                                                           #1  0x00007f85b15583bc n/a (iris_dri.so + 0x4ae3bc)
                                                           #2  0x00007f85b1556db8 n/a (iris_dri.so + 0x4acdb8)
                                                           #3  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #4  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27912:
                                                           #0  0x00007f85c5df4e32 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xfe32)
                                                           #1  0x00007f85b15583bc n/a (iris_dri.so + 0x4ae3bc)
                                                           #2  0x00007f85b1556db8 n/a (iris_dri.so + 0x4acdb8)
                                                           #3  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #4  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)
                                                           
                                                           Stack trace of thread 27893:
                                                           #0  0x00007f85c5efc05f __poll (libc.so.6 + 0xf505f)
                                                           #1  0x00007f85c4f39f38 n/a (libglib-2.0.so.0 + 0x9ff38)
                                                           #2  0x00007f85c4eeb221 g_main_context_iteration (libglib-2.0.so.0 + 0x51221)
                                                           #3  0x00007f85c64d2211 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x30b211)
                                                           #4  0x00007f85c647801c _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2b101c)
                                                           #5  0x00007f85c6293c32 _ZN7QThread4execEv (libQt5Core.so.5 + 0xccc32)
                                                           #6  0x00007f85c6294e0f n/a (libQt5Core.so.5 + 0xcde0f)
                                                           #7  0x00007f85c5dee422 start_thread (libpthread.so.0 + 0x9422)
                                                           #8  0x00007f85c5f06bf3 __clone (libc.so.6 + 0xffbf3)

`

Attempting to play any song through the UI will just replay the current song

System information

**
ABI: x86_64-little_endian-lp64
App version: v3.3-dev (f732c50)
Current desktop: KDE
D-Bus support: Yes
Device: SpotifyDKubuntu (Speaker)
Kernel: linux 5.8.0-41-generic
Product: Ubuntu 20.10
Qt version: 5.9.5
**

Detailed information

Clicking (or hitting enter) on any song will just restart the current song. App launched from KDE shortcut on desktop, but the same happens when running via snap. If I start spotifyd from command line, I will see the same song being requested regardless of what's being selected

What happens?

Double click on any song, only the current playing song will be restarted

What should happen?

Play the song that is being clicked on

Workaround

My workaround for this is to right click a song and click 'Add to queue'

Use spotifyd service (or keyring)

I have spotifyd configured to use keyring, but I can't make spotify-qt use the spotifyd running as a --user in systemd.

When I open spotify-qt, it starts a new spotifyd process and asks for my spotify password. And this second process doesn't get killed when I exit spotify-qt.

Authentication `INVALID_CLIENT: Invalid redirect URI`

Hello! Interesting project! 👍

As subject points, I'm getting INVALID_CLIENT: Invalid redirect URI when trying to auth (with my personal client ids, etc). Didn't received any errors about tcp server via cli output though 🤔
Any hints what to check twice?

Failed to resume playback: Restricted device

When i am using spotify through alexa on a sonos speaker, i am unable to see the device listed in the app, and even though it displays what is currently being played, as well as the timeline, i cannot control anything getting errors such as

Failed to resume playback: Restricted device

The app is great, however being able to control my devices from it is very important feature for me, please help.

image

Can't play "Liked" playlist

In v2.8 (same as before, but as requested in a new ticket), I can't play liked songs. The error message is still a "restriction violated". Other playlists work just fine.

App version: | v2.8
Current desktop: | X-Cinnamon
LSB release: | Manjaro Linux
Linux version: | 5.7.12-1-MANJARO
Qt version: | 5.15.0

Happy to provide more data for debugging etc., just let me know what would help.

Allow user to change spotifyd backend

Currently, spotify-qt can spawn a spotifyd instance but will always supply the argument --backend pulseaudio if spotifyd has been built with pulseaudio support. For an ALSA user with a distribution maintained build of spotifyd that supports pulse, this is inconvenient and means that I can't use the feature.

Packaging spotify-qt for NetBSD

Hi,
Had a go at packaging it for NetBSD. It builds, installs and launches. Can't test further as I don't have a primium account.
Looks like an interesting addition to the repo.
Although, currently there are a lot of post-install steps to copy all icons to DESTDIR.
Are you planing to implement this on the source?
I mean adding something like

install(
    FILES icons/spotify-qt.svg
    DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps"
)

or

install(FILES
    ${DESKTOP_FILES}
    DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications"
    COMPONENT Runtime
)

and so on,
would make life easier for package maintainers.
Just a suggestion.
Thanks for making this software available.

[Question/Feature] Can't zoom in?

Hello, just tried out spotify-qt which I really enjoyed but I was wondering how I can zoom in, or if that feature is not support at all. For smaller screens like the one I have, I can hardly read the text.

Player command failed: Premium required

Upon attempting to make any action within the client, this error shows up at the bottom left of the interface. For example, when trying to play any song it states:
Failed to start playback: Player command failed: Premium required

edit: I can supply any information upon request.

Liked song

it's impossible to play a song into "Liked" is you double click

Can't start the 'liked songs' playlist

i'm starting a new issue because i don't think i'm able to re open #22 , but im still affected by this on v3.0.
also i don't know if this is related with #29 , but my library is 1400+ songs.
spotifyd throws the "No more tracks left in queue" message and sometimes it starts playing my top playlist instead

edit: log message and system info
[5:38 PM] [warn] Spotifyd/librespot was compiled without PulseAudio support

ABI: x86_64-little_endian-lp64
App version: v3.0
Current desktop: X-Cinnamon
Device: Spotifyd@Yamaguchi (Speaker)
Kernel: linux 5.9.1-1-default
Product: openSUSE Tumbleweed
Qt version: 5.15.1

Crash while messing around in the settings menu

#0  0x00007fbe13fbc97b in ?? () from /usr/lib/libQt5Widgets.so.5
#1  0x00007fbe13fc3213 in QMenu::internalDelayedPopup() () from /usr/lib/libQt5Widgets.so.5
#2  0x00007fbe133ca225 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#3  0x00007fbe13e78439 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#4  0x00007fbe13fc86cc in QMenu::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#5  0x00007fbe13e34362 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#6  0x00007fbe13e3d819 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#7  0x00007fbe1339ca12 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#8  0x00007fbe133f4462 in QTimerInfoList::activateTimers() () from /usr/lib/libQt5Core.so.5
#9  0x00007fbe133f4d02 in ?? () from /usr/lib/libQt5Core.so.5
#10 0x00007fbe11e989be in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#11 0x00007fbe11e9a831 in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007fbe11e9a871 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#13 0x00007fbe133f50d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQt5Core.so.5
#14 0x00007fbe1339b57c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/libQt5Core.so.5
#15 0x00007fbe13fc2c03 in QMenu::exec(QPoint const&, QAction*) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007fbe140262b4 in ?? () from /usr/lib/libQt5Widgets.so.5
#17 0x00007fbe133d2540 in ?? () from /usr/lib/libQt5Core.so.5
#18 0x00007fbe13f2ed7f in ?? () from /usr/lib/libQt5Widgets.so.5
#19 0x00007fbe13f2f48f in QAbstractButton::mousePressEvent(QMouseEvent*) () from /usr/lib/libQt5Widgets.so.5
#20 0x00007fbe14027028 in QToolButton::mousePressEvent(QMouseEvent*) () from /usr/lib/libQt5Widgets.so.5
#21 0x00007fbe13e784a9 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#22 0x00007fbe14027295 in QToolButton::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007fbe13e34362 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#24 0x00007fbe13e3da68 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#25 0x00007fbe1339ca12 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#26 0x00007fbe13e3cafb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007fbe13e93c41 in ?? () from /usr/lib/libQt5Widgets.so.5
#28 0x00007fbe13e96bc4 in ?? () from /usr/lib/libQt5Widgets.so.5
#29 0x00007fbe13e34362 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#30 0x00007fbe13e3d819 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5

Library issue

In the "Liked" is has just the last 20 music added. And the music is not in the "classic view" (playlist). There is 20 "Albums" too, but here the view work. And "No results" for "Artists"
image

Could not find or load the Qt platform plugin "wayland-egl" when installed as snap

System information

  • application version: v3.1
  • current desktop environment: wayland (sway)
  • operating system and version: Ubuntu 20.10
  • as well as Qt version: Doesn't apply since I installed spotify-qt as snap container

Detailed information

❯ spotify-qt 
This application failed to start because it could not find or load the Qt platform plugin "wayland-egl"
in "".

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Reinstalling the application may fix this problem.
[1]    33359 abort (core dumped)  spotify-qt

What happens?

I try to start spotify-qt but it crashes.

What should happen?

It shouldn't crash and it should support wayland out of the box when installed as snap.

Failing to find a default browser fails silently

Hi I compiled and runned the app on Haiku. But it fails to start, I dont know if our QT implementation is failing or its because I dont have a premium account.

I added my client-id and secret from the dashboard. And the spotify-qt compiles without any modifications.

Skärmavbild 2020-07-02 kl  10 07 14

Search sidebar suggestions

I have really enjoyed the performance and simplicity of spotify-qt, but there are a few usability issues with the search box that often have me switching to the web client (checked on gc402a01):

I have trouble reading things in the results list as it is not wide enough so it truncates things. It seems to not be possible to make bigger as dragging the boundary on it seems to not change its width. I'd also like to see album names as an optional column in the tracks list as it is hard to distinguish between songs both released as singles and as part of albums.

This image shows both of these:

image

New feature - Clicking progress bar

Coming from almost any other music player, I expect to be able to click the song progress bar to go to a point in the song.
In this player I have to drag the circle on the progress bar directly to move it, which is counter intuitive compared to most common players.

Everything else about the player is really nice, and I'm currently trying it out to be my new main player.

Not all "Liked Albums" listed

The list of "Liked Albums" in the spotify-qt client seems to be a small portion of the actual list... Not sure where to look to begin figuring out the issue.

Screenshot from 2021-02-21 22-24-21

MPRIS D-Bus Interface is buggy

Due to the poor implementation of the MPRIS D-Bus interface, media controlling is buggy and manual D-Bus commands (or something like playerctl) are needed to control the player.

Seems to be KDE specific. They also have a "proposed" MPRIS 3 specification that can be found here, but it doesn't seem to affect anything.

Scrap the Qt implementation and just use a common (glib based?) implementation instead, so it can be used with other user interfaces as well. Could be based on other implementations for example.

weird ordering of tracks when ordered by track number

System information

ABI: x86_64-little_endian-lp64
App version: v2.12
Current desktop: XFCE
Kernel: linux 5.4.67-1-MANJARO
Product: Manjaro Linux
Qt version: 5.15.1

Detailed information

when tracks are ordered by # the tracks [1000, 1009] come before 101, [1010, 1019] come before 102, etc. This doesn't happen with numbers under 100

Program segfaults when you attempt to shuffle play a playlist using the context menu

Steps to reproduce:

  1. Open spotify-qt
  2. Search for something
  3. Go to the Playlists tab
  4. Right-click on a playlist and choose Shuffle play

Expected behavior:

  • Songs from the chosen playlist start to play in a shuffled order without the program crashing.

Observed behavior:

  • The program segfaults, the GUI dies after around a second of waiting and nothing starts to play.

System info:

  • Arch Linux
  • Everything is fully up-to-date as of reporting this issue (spotifyd 0.2.2.24, soptify-qt 2.1, qt 5.15, ...)

Full crash log from journalctl:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.