Spotify (Español)

Esta traducción de
Spotify
fue revisada el
2020-02-19
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Spotify
es un servicio de streaming de música de tipo freemium. Este artículo trata principalmente sobre el cliente semioficial y privativo
Spotify para Linux
, que es desarrollado por los ingenieros de Spotify en su tiempo libre y no cuenta con el apoyo activo de Spotify.
[1]
Alternativamente, hay un
reproductor web
y un puñado de
clientes de terceros
de código libre.
Clientes de terceros
Clementine
— Es capaz de reproducir desde Spotify con una cuenta premium después de activar (descargar) un complemento en la configuración.
https://www.clementine-player.org/
||
clementine
AUR
Librespot
— Una biblioteca-cliente de código abierto para Spotify. Permite a las aplicaciones usar el servicio de Spotify (streaming) sin usar el código privativo de
libspotify
.
https://github.com/librespot-org/librespot
||
librespot-git
AUR
Mopidy
— Una alternativa basada en
Music Player Daemon
que es capaz de reproducir desde Spotify con una extensión.
https://mopidy.com/
||
mopidy
+
mopidy-spotify
AUR
ncspot
— Cliente ncurses multiplataforma escrito en Rust, inspirado por ncmpc y similares.
https://github.com/hrkfdn/ncspot
||
ncspot
ncspot-git
AUR
Spotifyd
— Un cliente de Spotify de código abierto que se ejecuta como daemon UNIX. Spotifyd reproduce música como el cliente oficial, pero es más liviano y está disponible en más plataformas. Spotifyd también admite el protocolo Spotify Connect, que lo hace aparecer como un dispositivo que se puede controlar desde los clientes oficiales.
https://github.com/Spotifyd/spotifyd
||
spotifyd
spotify-tui
— Un cliente de Spotify para la terminal escrito en Rust.
https://github.com/Rigellute/spotify-tui
||
spotify-tui
AUR
[
enlace roto
: package not found]
Tizonia
— Reproductor de música en la nube de línea de comandos para Linux con soporte para Spotify, Google Play Music, YouTube, SoundCloud, servidores Plex y dispositivos Chromecast..
https://tizonia.org/docs/spotify/
||
tizonia-all
AUR
[
enlace roto
: package not found]
Tomahawk
—  Un reproductor de música escrito en C ++ / Qt.
Ya no se desarrolla activamente
https://github.com/tomahawk-player/tomahawk
||
tomahawk-git
AUR
[
enlace roto
: package not found]
Consejos y trucos
Limitar el almacenamiento
Spotify maneja automáticamente un tamaño determinado de caché. Sim embargo, tal vez quieras limitarlo para que tu sistema de archivos no se llene.
Agrega
storage.size
(en MB) a
/home/
user
/.config/spotify/prefs
. Por ejemplo, para un tamaño de 3072MB:
~/.config/spotify/prefs
storage.size=3072
Atajos de teclado
Sugerencia
Muchos
entornos de escritorio
vienen con atajos de teclado que funcionan con el cliente de Spotify por defecto. (Por ejemplo, en
Cinnamon
). Con (Preferencias -> Teclado -> Atajos -> Sonido y Medios) se establecen varios enlaces por defecto para controlar el reproductor y estos pueden ser fácilmente manejados presionando las teclas preferidas.
Para los entornos en los que el control de Spotify a través del teclado no funciona de forma automática, el cliente oficial de Linux tiene soporte para teclas multimedia como
XF86AudioPlay
. Podemos usar en este caso
xbindkeys
para captar los atajos de teclado y luego reenviarlas a Spotify utilizando uno de los métodos siguientes. Si utilizas xbindkeys, asegúrate de que Spotify se reinicie después de la instalación y configuración de teclas, de lo contrario no se capturarán correctamente las pulsaciones.
MPRIS
El cliente de Spotify implementa la interfaz D-Bus
MPRIS2
que permite un control externo.
Playerctl
La utilidad
playerctl
proporciona una herramienta de línea de comandos para enviar comandos a los clientes de MPRIS. Los únicos comandos que probablemente necesites vincular globalmente son
play-pause
,
next
y
previous
$ playerctl play-pause
$ playerctl next
$ playerctl previous
Playerctl enviará el comando al primer reproductor que encuentre, por lo que este método también funcionará con otros reproductores como
vlc
. Para ignorar a otros reproductores, pon
--player=spotify
como argumento.
Bluetooth
Un
Auricular Bluetooth#Controles
y dispositivos similares pueden ser reenviados a mpris2 para que trabajen con spotify.
D-Bus
Una alternativa a lo anterior es utilizar manualmente el
D-Bus
, que debería estar disponible por defecto ya que es una dependencia de
systemd
.
Utiliza los siguientes comandos para controlar Spotify:
$ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
$ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
$ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous
$ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop
Puedes vincularlos a las teclas multimedia. Visita
Atajos de teclado
para más detalles.
pactl (pulseaudio)
Como habrás notado, los comandos del protocolo MPRIS no incluyen control de volumen. Esto se rompe dentro del mismo Spotify, que ignora las peticiones de cambio de volumen. Sin embargo, existe la posibilidad de controlar el volumen a través del sink de entrada de pulseaudio:
$ pactl set-sink-input-volume "$current_sink_num" +1% #volume up by 1%
$ pactl set-sink-input-volume "$current_sink_num" -1% #volume down by 1%
$ pactl set-sink-input-mute "$current_sink_num" toggle #mute toggler
El número sink para "$current_sink_num" se puede encontrar en el resultado de este comando:
$ pactl list sink-inputs
Sink Input #
3
<< here
Driver: protocol-native.c
[...]
application.name = "Spotify"
Puedes crear un guión para cambiar el volumen y vincularlo, por ejemplo, a un atajo de teclado a través de la configuración
entornos de escritorio
o la xdotool descrita en la siguiente sección. Aquí hay algunos ejemplos:
Bash:
#!/bin/bash
LANGUAGE="en_US"
app_name="Spotify"
current_sink_num=
sink_num_check=
app_name_check=
pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
            if [ "$app_name_check" = "$app_name" ]; then
                pactl set-sink-input-volume "$current_sink_num" +1%
            fi
    fi
done
Este script fue hecho por el usuario
Mikołak
en
este post
.
Desafortunadamente este script no es la solución más rápida y si lo ejecutas varias veces a través del atajo del teclado, puede ser un poco lento.
Más rápido (como 10 veces) es el código escrito en Python (requiere al menos Python 3.7 para ser instalado):
#!/usr/bin/env python3
#Author: Marcin Kocur, attribution license:
https://creativecommons.org/licenses/by/4.0/
import subprocess
import os
x=0
y=0
env = os.environ
env['LANG'] = 'en_US'
app = '"Spotify"'
pactl = subprocess.check_output(['pactl', 'list', 'sink-inputs'], env=env).decode().strip().split()
if app in pactl:
    for e in pactl:
        x += 1
        if e == app:
            break
    for i in pactl[0 : x -1 ]:
        y += 1
        if i == 'Sink' and pactl[y] == 'Input' and '#' in pactl[y + 1]:
            sink_id = pactl[y+1]
        if i == 'Volume:' and '%' in pactl[y + 3]:
            volume = pactl[y + 3]
    sink_id = sink_id[1: ]
    volume = volume[ : -1 ]
    if int(volume) < 100:
        subprocess.run(['pactl', 'set-sink-input-volume', sink_id, '+1%'])
Puedes guardarlo en un archivo .py. La última línea hace el trabajo, así que puedes ajustar el comando para bajar el volumen o silenciar.
Deshabilitar las notificaciones de cambio de canción
Después de la versión 0.9.10, las notificaciones de cambio de canción estaban habilitadas por defecto. Pueden ser bastante intrusivas. Para deshabilitarlas, añade la siguiente línea a
~/.config/spotify/Users/<spotifylogin>-user/prefs
ui.track_notifications_enabled=false
También es posible lanzar Spotify con la opción
--ui.track_notifications_enabled=false
Mostrar notificaciones de pista
No es específico de Spotify.
playerctl
provee una biblioteca que puedes usar con python-gobject y un daemon de notificación como
dunst
para mostrar el artista y el título en una notificación cuando la canción cambie.
#!/usr/bin/env python3

from gi.repository import Playerctl, GLib
from subprocess import Popen

player = Playerctl.Player()

def on_track_change(player, e):
    track_info = '{artist} - {title}'.format(artist=player.get_artist(), title=player.get_title())
    Popen(['notify-send', track_info])

player.on('metadata', on_track_change)

GLib.MainLoop().run()
Saltar las pistas de radio que han sido reproducidas muchas veces
No es específico de Spotify.
Otro uso de la biblioteca de
playerctl
es saltarse las pistas que se reproducen demasiado en la radio cuando no necesariamente quieres bajar la calificación de estas porque puede que quieras volver a escucharlas más tarde en esa emisora.
#!/usr/bin/env python3

from gi.repository import Playerctl, GLib

player = Playerctl.Player()

played_out = ['Zu Fuss', 'Walk And Talk', 'Neuland']

def on_track_change(player, e):
    if player.get_title() in played_out:
        player.next()

player.on('metadata', on_track_change)

GLib.MainLoop().run()
Bloquear anuncios
Advertencia
Bloquear anuncios no está soportado por Spotify y puede resultar en un baneo temporal
[2]
spotblock
spotblock
(
spotblock-git
AUR
) es un bloqueador de anuncios eficiente en cuanto a recursos que se ejecuta como un daemon.
Spotify-AdKiller
Spotify-AdKiller
(
spotify-adkiller-git
AUR
) es otra alternativa para bloquear los anuncios de Spotify.
Archivo de hosts
También puedes añadir las siguientes líneas a tu archivo de hosts para bloquear anuncios en Spotify :
/etc/hosts
# Block spotify ads
127.0.0.1 media-match.com
127.0.0.1 adclick.g.doublecklick.net
127.0.0.1 www.googleadservices.com
127.0.0.1 open.spotify.com
127.0.0.1 pagead2.googlesyndication.com
127.0.0.1 desktop.spotify.com
127.0.0.1 googleads.g.doubleclick.net
127.0.0.1 pubads.g.doubleclick.net
127.0.0.1 audio2.spotify.com
127.0.0.1 www.omaze.com
127.0.0.1 omaze.com
127.0.0.1 bounceexchange.com
#127.0.0.1 spclient.wg.spotify.com
127.0.0.1 securepubads.g.doubleclick.net
127.0.0.1 8.126.154.104.bc.googleusercontent.com
127.0.0.1 104.154.126.8
spclient.wg.spotify.com ahora parece bloquear la radio y los daily mixes, así como las canciones recién reproducidas.
Control remoto
Enviar comandos a través de SSH
Si configuras ssh en el servidor, puedes enviar los controles de un cliente a una instancia remota de Spotify con
$ ssh user@host
yourcommand
donde
yourcommand
puede ser
spotifycmd
que instalaste en el servidor, o un script dbus para la versión de linux, como se describe arriba.
Intercepta la ventana de Spotify a través de SSH
Además de interceptar todo el escritorio con TeamViewer o VNC para controlar remotamente tu servidor, también puedes hacer lo mismo con la ventana de Spotify del servidor a tu cliente.
Para ello necesitas configurar sshd en tu servidor e instalar x11vnc tanto en el servidor como en el cliente, así como tigervnc en el cliente. Luego puedes usar estos scripts para tomar el dektop completo o solo la ventana de Spotify, lo que esencialmente te da un comportamiento similar al de un cliente de la interfaz gráfica de usuario como con el MPD.
#!/bin/bash
# vncget.sh

if [[ $1 == all ]];then
  ssh -f -t -L 5900:localhost:5900 user@host "x11vnc -q -display :0 -auth .Xauthority"
else
  ssh -f -t -L 5900:localhost:5900 user@host ".bin/vncgetspotify.sh"
fi

for i in {1..4}; do
  sleep 2
  if vncviewer localhost:0; then break; fi
done
#!/bin/bash
# vncgetspotify.sh

export DISPLAY=:0

id=$(wmctrl -lx | awk '/spotify.exe.Wine/ {print $1}')
[[ -z $id ]] && id=$(wmctrl -lx | awk '/spotify.Spotify/ {print $1}')

x11vnc -sid $id -display :0 -auth .Xauthority
Necesitarás copiar el segundo script a ~/.bin/vncgetspotify.sh en el servidor y el primer script a cualquier lugar de tu cliente.
Finalmente, para interceptar Spotify, corre:
$ sh vncget.sh
o para el escritorio entero:
$ sh vncget.sh all
Modo HiDPI
Como el actual build de Spotify no detecta DPI, la cantidad por la que se puede escalar la interfaz se puede especificar usando el siguiente comando:
$ spotify --force-device-scale-factor='
X
donde X es la cantidad para escalar la interfaz por. Por ejemplo, 2.
Este cambio puede ser añadido al archivo
spotify.desktop
para aplicar la escala cuando se lanza desde el escritorio.
Para asegurarse de que el archivo no se sobrescribe cuando se actualiza el paquete, cópielo en su carpeta de aplicaciones locales:
$ cp /usr/share/applications/spotify.desktop ~/.local/share/applications/
Ahora edita
~/.local/share/applications/spotify.desktop
y añade la opción
--force-device-scale-factor
:
spotify.desktop
[Desktop Entry]
Name=Spotify
GenericName=Music Player
Comment=Spotify streaming music client
Icon=spotify-client
Exec=spotify
--force-device-scale-factor=2
%U
TryExec=spotify
Terminal=false
Type=Application
Categories=Audio;Music;Player;AudioVideo
MimeType=x-scheme-handler/spotify
Es posible que tengas que relanzar tu Desktop Manager antes de que estos cambios se hagan efectivos.
Solución de problemas
El entorno de escritio silencia Spotify
Comente "module-role-cork" en el archivo de configuración de pulseaudio.
Abre
/etc/pulse/default.pa
con tu editor de texto y coméntalo:
load-module module-role-cork
O simplemente desactivalo con:
pactl unload-module module-role-cork
El buscador hace que toda la interfaz parpadee y luego se cuelgue
Spotify utiliza una versión antigua de Chromium Embedded Framework y genera un error que hace que se cuelgue repetidamente al intentar utilizar la búsqueda. Esto se puede solucionar usando la siguiente opción de línea de comandos:
--force-device-scale-factor=1.0000001
Imágenes parpadeantes y renderización defectuosa mientras se usa Spotify Linux con DWM
Ejecuta spotify como una ventana flotante.
Puedes añadir esta regla en tu
config.h
:
"Spotify", NULL, NULL, 2, True, -1 },
Esto le dirá a dwm que ejecute spotify como una ventana flotante asociada a la etiqueta "2" sin importar el modo de ventana en el que se encuentre. Recompila e instala el dwm para aplicar tu nueva configuración.
Búsqueda, navegación o radio sin funcionar
Spotify
informe de errores
en relación con los locales no ingleses.
Si varias pestañas como la de navegación sólo muestran una pantalla en blanco, el campo de búsqueda no parece hacer nada o la página de radio no funciona (atascada al iniciar y sin respuesta al teclado o mouse), puede que estés usando un locale personalizado.
Intenta configurar la variable de entorno
LC_NUMERIC
a
en_US.utf8
antes de iniciar Spotify.
Punto muerto en la interfaz
Puede ocurrir en los gestores de ventanas tiling, como Awesome, cuando se hace doble clic en una nueva canción o lista de reproducción. Edita el archivo
~/.config/spotify/Users/[1-9]*-user/prefs
para añadir o cambiar lo siguiente:
ui.track_notifications_enabled=false
Reinicia Spotify. Ten en cuenta que parecen existir varias causas para este problema, y esta solución en particular sólo se aplica a algunas versiones del cliente de Spotify, i3 y Awesome, y puede ser que existan causas adicionales de raíz para los usuarios de Debian y Ubuntu que informen de este problema. Observado con Spotify 0.9.17.1.g9b85d436 y Awesome 3.4.15 y i3-gaps 4.13-2 y Spotify 1.0.64.407.g9bd02c2d.
Nota
En Spotify 1.0.17.75-2,
ui.track_notifications_enabled=false
parece ser ignorado. Por otro lado, algunos usuarios reportan que ya no experimentan el bloqueo desde la versión 3.5.6 de Awesome. Los bloqueos podrían ser causados por los scripts llamados por Awesome, que se basan en las propiedades de Spotify dbus. Ver
[3]
.
Note:
Este número tiene causas múltiples, así que mantén un registro de lo que cambias mientras investigas esto. Actualiza esta sección con escenarios adicionales y correcciones.
Las portadas de los álbumes y las imágenes han desaparecido; aparecen como cuadros vacíos
Salte de Spotify, luego abre las preferencias de Spotify
~/.config/spotify/prefs
Cambia @https a @http:
network.proxy.addr="your-proxy.com:80
@http
"
 network.proxy.mode=2
Ver el post del formulario original
aquí
.
Nota
A partir del 1.0.17 parece que reemplazar https con http como se sugiere arriba puede resultar en pérdida de conectividad. Si esto sucede, una solución alternativa es establecer 'no proxy' en la GUI y usar
proxychains-ng
para forzar toda la conexión TCP proveniente de la aplicación a través de un proxy. Incluso con proxies HTTP que rechazan conexiones en el puerto 80 (y sólo funcionan para el puerto 443) esto funciona de forma fiable.
Spotify no detecta otros dispositivos en la red local
Si hay un cortafuegos, abre los puertos 57621 para UDP y TCP. Si utilizan una variante de las
iptables
Un simple cortafuegos con estado
, haz lo siguiente:
iptables -A TCP -p tcp --dport 57621 -j ACCEPT -m comment --comment spotify
iptables -A UDP -p udp --dport 57621 -j ACCEPT -m comment --comment spotify
También es posible restringir la fuente y el destino a la red local.
Si utilizas Spotify Connect para reproducir música en un altavoz inalámbrico o en un AVR, tu cortafuegos debe estar configurado para la búsqueda de mDNS de Spotify. Lamentablemente, utiliza un puerto aleatorio sin privilegios
[4]
lo que hace que estas reglas del cortafuegos sean bastante engorrosas. Afortunadamente, puedes restringir las reglas al puerto de origen 1900 o 5353.
iptables -A UDP -p udp --sport 1900 --dport 1025:65535 -j ACCEPT -m comment --comment spotify
iptables -A UDP -p udp --sport 5353 --dport 1025:65535 -j ACCEPT -m comment --comment spotify
El texto de la barra de búsqueda es invisible cuando se usa un tema oscuro
El texto de la barra de búsqueda parece estar codificado en blanco, lo que lo hace invisible cuando se utiliza un tema Qt oscuro. Para arreglar esto, necesitarás anularlo.
Primero, crea un archivo css en algún lugar donde tu cuenta tenga permiso para leer/escribir (como tu carpeta de inicio). Llámalo como quieras (por ejemplo,
spotify-override.css
).
Abre el archivo css recién creado y añade lo siguiente:
QLineEdit { color: #000 }
Guarda el archivo y ciérralo. A continuación, tienes que añadir lo siguiente al final de tu lanzador de Spotify (sustituye la ruta por la ruta real de tu archivo css):
-stylesheet=/home/user/spotify-overide.css
Tu ruta de ejecución completa debería verse algo así:
/usr/share/spotify/spotify-client/spotify -stylesheet=/home/user/spotify-override.css
Spotify no hace caso a las reglas de ventana
Los gestores de ventanas que intentan aplicar reglas específicas, como iniciarlo en un espacio de trabajo determinado o maximizarlo al inicio, no tienen ningún efecto, ya que Spotify no establece la propiedad
WM_CLASS
antes de crear la ventana, violando las especificaciones del ICCCM. Una solución es usar
spotifywm-git
AUR
.
La interfaz gráfica se cuelga mientras suena la música
También los botones de la pista anterior y la siguiente actúan con un retraso de 10 a 40 segundos. Spotify por defecto intenta enviar una notificación sobre la siguiente pista. Si no tienes un demonio de notificación instalado, la interfaz gráfica de Spotify se cuelga.
La solución es desactivar las notificaciones en la configuración o instalar un daemon de notificación desde notificaciones de escritorio.
Los bordes de la interfaz no aparecen y la aplicación ocupa toda la pantalla sobre el panel de Cinnamon
Si tiene problemas con la desaparición de los bordes de la ventana y la aplicación se pone en pantalla completa pero no puedes arrastrar la ventana o cambiar su tamaño, eso puede ser causado por las preferencias localizadas por defecto en el archivo de texto
/home/yourusername/.config/Spotify/Users/yourusername-user/prefs
configs:
app.window.position.width=1366
app.window.position.height=768
Lo que probablemente ocurre es que cuando ambas resoluciones coinciden con los valores de resolución de tu monitor "principal" o superiores. Esto puede ocurrir al pasar de dos monitores a uno solo. Como solución, cierra Spotify, edita el archivo
prefs
para eliminar las dos configuraciones anteriores, guárdalo y vuelve a ejecutar Spotify.
No se puede abrir la configuración en Wayland
Cuando se usa Wayland, al hacer clic en el botón 'Settings' no pasa nada. Usar el teclado en su lugar funcionará (flechas e intro). Ver
[5]
Véase también
playerctl
— Un programa de línea de comandos para controlar varios reproductores
Spotify for Linux
— Página principal del cliente Linux de Spotify