Spotify: Difference between revisions

imported>Aaronpkelly
add info about spotifyd needing credentials when starting
Norude (talk | contribs)
Spotifyd: updated stale information about spotifyd
 
(10 intermediate revisions by 8 users not shown)
Line 1: Line 1:
== Spotify ==
{{tip/unfree}}


{{note|Spotify is [[FAQ/unfree|unfree]], its license prohibits distribution. See the [[FAQ/unfree]] page to install unfree software.}}
[https://spotify.com Spotify] is a commercial music streaming service.


=== Local discovery ===
== Installation ==
 
To install the standard Spotify desktop application, add to system packages:
 
  environment.systemPackages = with pkgs; [
    spotify
  ];
 
== Local discovery ==
To sync local tracks from your filesystem with mobile devices in the same network, you need to open port 57621 by adding the following line to your configuration.nix:
To sync local tracks from your filesystem with mobile devices in the same network, you need to open port 57621 by adding the following line to your configuration.nix:
<syntaxhighlight lang=nix>
<syntaxhighlight lang=nix>
networking.firewall.allowedTCPPorts = [ 57621 ];</syntaxhighlight>
networking.firewall.allowedTCPPorts = [ 57621 ];</syntaxhighlight>


=== spotifyd ===
In order to enable discovery of Google Cast devices (and possibly other Spotify Connect devices) in the same network by the Spotify app, you need to open UDP port 5353 by adding the following line to your configuration.nix:
<syntaxhighlight lang=nix>
networking.firewall.allowedUDPPorts = [ 5353 ];</syntaxhighlight>
 
== Spotifyd ==
The alternative client [https://github.com/Spotifyd/spotifyd spotifyd] is available as a package, [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/audio/spotifyd.nix nixos module], and [https://github.com/nix-community/home-manager/blob/master/modules/services/spotifyd.nix home-manager module].
The alternative client [https://github.com/Spotifyd/spotifyd spotifyd] is available as a package, [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/audio/spotifyd.nix nixos module], and [https://github.com/nix-community/home-manager/blob/master/modules/services/spotifyd.nix home-manager module].


spotifyd must have your credentials when it starts, otherwise it will not be able to authenticate with Spotify, and will not show up as a device. If installing spotifyd as a package, give it credentials when starting, e.g.:
spotifyd can either act as a spotify-connect device and the local LAN without the need to authenticate.<ref>https://docs.spotifyd.rs/configuration/auth.html#discovery-on-lan</ref> It can also run through a manual login using oauth<ref>https://docs.spotifyd.rs/configuration/auth.html#discovery-on-lan</ref> If installing spotifyd as a package or as a systemd service via home-manager, give it oauth credentials using:
 
spotifyd auth
 
The authentication codes are stored in the cache directory for spotifyd.


spotifyd --username <USER> --password <PASS>
spotifyd connects to spotify as a spotify-connect device. It offers no controls of its own, but can be controlled via [https://github.com/altdesktop/playerctl playerctl]  or [https://github.com/LargeModGames/spotatui spotatui].


If installing spotifyd via home-manager, you can supply your credentials via options. Example home-manager config:
=== Troubleshooting ===


  services.spotifyd = {
If you get: <code>libcurl-gnutls.so.4: no version information</code>, clear your Spotify cache: <code>rm -rf ~/.cache/spotify</code>
    enable = true;
    settings =
      {
        global = {
          username = "Alex";
          password = "foo";
        };
      }
    ;
  }


spotifyd connects to spotify as a spotify-connect device. It offers no controls of its own, but can be controlled via [https://github.com/altdesktop/playerctl playerctl] or [https://github.com/Rigellute/spotify-tui spotify-tui].
[[Category:Applications]]