⏱️ Lectura: 12 min

Fastpotify arranca en menos de un segundo y consume entre 100 y 250 MB de RAM: así se presenta la alternativa nativa en Rust al cliente oficial de Spotify, disponible para Linux, macOS y Windows.

📑 En este artículo
  1. TL;DR
  2. Introducción
  3. Qué pasó con Fastpotify
  4. Contexto e historia
  5. Detalles técnicos y rendimiento de Fastpotify
  6. Cómo empezar
  7. Impacto y análisis
  8. Qué sigue
  9. Preguntas frecuentes
    1. ¿Qué es Fastpotify?
    2. ¿Necesito una cuenta Spotify Premium para usarlo?
    3. ¿Fastpotify reemplaza al dispositivo donde estoy escuchando música?
    4. ¿Qué es el modo Winamp de Fastpotify?
    5. ¿Fastpotify es gratuito y de código abierto?
    6. ¿Funciona en Raspberry Pi u otros sistemas embebidos?
  10. Referencias

El proyecto es open source bajo licencia MIT y reemplaza el motor de navegador embebido de Electron por una interfaz construida con egui, la biblioteca gráfica inmediata de Rust, y librespot, la implementación abierta del protocolo Spotify Connect.

TL;DR

  • Fastpotify es un cliente nativo de Spotify escrito en Rust, sin motor de navegador embebido.
  • Arranca en menos de un segundo y consume entre 100 y 250 MB de RAM según el sitio oficial.
  • Reproduce localmente en gapless y hasta 320 kbps usando librespot.
  • Soporta Spotify Connect: controla altavoces, teléfonos o TVs desde la misma ventana.
  • Incluye un mini reproductor estilo Winamp (Ctrl+M) compatible con skins clásicas de Winamp 2.
  • Suma un visualizador MilkDrop basado en projectM, con fullscreen y preset packs.
  • Es open source bajo licencia MIT, construido con los frameworks egui y librespot.
  • Disponible para Linux, macOS y Windows, con integración MPRIS y bandeja del sistema en Linux.

Introducción

El cliente de escritorio oficial de Spotify usa un motor de navegador embebido, lo mismo que hacen Slack, Discord o Visual Studio Code con Electron. Esa arquitectura facilita compartir código con la versión web, pero cobra un precio en consumo de memoria y tiempo de arranque. Fastpotify ataca ese problema directamente: es un binario nativo sin motor de navegador, escrito enteramente en Rust.

La propuesta no es nueva en el ecosistema: proyectos como spotifyd, ncspot o spotify-tui ya ofrecen clientes ligeros para Spotify desde hace años. Lo distinto de Fastpotify es que apunta a una interfaz gráfica completa, con biblioteca, búsqueda, temas visuales y hasta un modo retro inspirado en Winamp, sin renunciar al bajo consumo de recursos típico de los clientes de terminal.

Qué pasó con Fastpotify

El sitio oficial del proyecto, fastpotify.rocks, presenta a Fastpotify como una aplicación de escritorio con reproducción local, acceso a biblioteca y controles de Spotify Connect. La app permite reproducir música de forma local en modo gapless y hasta 320 kbps, o bien usar la misma ventana para controlar la reproducción en un altavoz, un teléfono o una TV conectados a la cuenta de Spotify del usuario.

Entre las funciones anunciadas están la navegación de playlists, canciones marcadas como favoritas (Liked Songs), álbumes, artistas y pódcast, además de búsqueda en el catálogo completo y edición de las playlists propias. También incluye temas claro, oscuro y automático según el sistema operativo, con la opción de que tanto las páginas como la barra del reproductor tomen su paleta de color de la portada del álbum en reproducción.

Dos funciones destacan por lo inusual en un cliente de streaming moderno: un mini reproductor estilo Winamp, activable con el atajo Ctrl+M, compatible con skins clásicas de Winamp 2 y con analizador de espectro, ecualizador y lista de reproducción propios; y un visualizador MilkDrop basado en el motor projectM, que corre en su propia ventana con modo pantalla completa, paquetes de presets y control por teclado.

Interfaz de Fastpotify mostrando biblioteca y reproductor de Spotify
Fastpotify reproduce hasta 320 kbps en modo gapless, según el sitio oficial. Foto de Logan Gutierrez en Unsplash

Contexto e historia

Fastpotify se apoya en dos piezas de software libre con trayectoria propia. La primera es librespot, una reimplementación en Rust del protocolo cerrado de Spotify Connect que arrancó como proyecto comunitario hace más de una década y hoy sostiene a decenas de clientes alternativos, entre ellos spotifyd (para correr como demonio en Raspberry Pi y sistemas embebidos) y librespot-java. La segunda es egui, la biblioteca de interfaz gráfica inmediata para Rust, pensada para dibujar la UI directamente sobre la GPU sin depender de un motor de navegador ni de los widgets nativos del sistema operativo.

La combinación no es casual: egui permite compilar la misma base de código para Windows, macOS y Linux con muy pocos cambios, mientras que librespot resuelve la parte más compleja, autenticarse y transmitir audio como si fuera un dispositivo Spotify Connect legítimo, sin exponer las credenciales del usuario a un servidor de terceros.

El fenómeno de clientes nativos livianos frente a apps basadas en Electron no es exclusivo de Spotify. Editores y terminales escritos en Rust compitieron con las mismas armas: renderizado por GPU, sin motor Chromium, con tiempos de arranque medidos en milisegundos en lugar de segundos.

Detalles técnicos y rendimiento de Fastpotify

El propio proyecto ubica el consumo de memoria de Fastpotify entre 100 y 250 MB de RAM en uso típico, muy por debajo de los varios cientos de megabytes que suelen reportar los usuarios de clientes de escritorio basados en un motor de navegador completo. El arranque, según la misma fuente, se completa en bien menos de un segundo.

Para la reproducción local, Fastpotify soporta audio gapless (sin silencios entre pista y pista) y streaming a hasta 320 kbps, la máxima calidad que ofrece Spotify Premium. Cuando se usa como controlador de Spotify Connect en lugar de reproductor local, el audio no pasa por la máquina que corre Fastpotify: la app solo envía comandos de reproducción al dispositivo de salida, ya sea un parlante inteligente, un Chromecast compatible, un teléfono o una smart TV.

En Linux, la integración incluye soporte para MPRIS (Media Player Remote Interfacing Specification), el estándar de D-Bus que permite controlar la reproducción desde widgets del entorno de escritorio, teclas multimedia del teclado o applets de GNOME y KDE. También ofrece una opción de bandeja del sistema para mantener la música sonando después de cerrar la ventana principal.

ClienteCuándo usarloVentajaLimitación
FastpotifyEscritorio Linux, macOS o Windows con interfaz gráficaNativo en Rust, bajo consumo de RAM, Winamp y MilkDropRequiere cuenta Premium para reproducción completa vía Spotify Connect
Spotify oficialUso general sin preocuparse por configuraciónSoporte oficial y todas las funciones socialesMayor consumo de memoria por el motor de navegador embebido
spotifydServidores headless, Raspberry Pi, altavoces DIYSin interfaz gráfica, mínimo consumo de recursosNo tiene GUI ni navegación de biblioteca propia
ncspot / spotify-tuiTerminal, uso remoto por SSHLigero, controlable por tecladoSin visualizaciones ni temas gráficos

Para quien quiera entender qué hace por dentro una app como Fastpotify, así se ve, a grandes rasgos, autenticar una sesión con librespot desde Rust:

use librespot::core::session::Session;
use librespot::core::config::SessionConfig;
use librespot::discovery::Credentials;

#[tokio::main]
async fn main() {
    let session_config = SessionConfig::default();
    let credentials = Credentials::with_password("usuario_spotify", "contrasena_secreta");

    let session = Session::connect(session_config, credentials, None, false)
        .await
        .expect("no se pudo autenticar con Spotify Connect");

    println!("Sesion establecida: {:?}", session.session_id());
}

Este fragmento no reproduce el código fuente de Fastpotify, sino que ilustra de forma genérica cómo cualquier cliente construido sobre librespot resuelve la autenticación: crea una sesión, provee credenciales y obtiene un identificador de sesión activo antes de empezar a transmitir.

Cómo empezar

Fastpotify se distribuye como binario nativo descargable desde el sitio oficial del proyecto, con builds separados para Linux, macOS y Windows. Al ser un proyecto bajo licencia MIT, la alternativa para quien prefiera compilar desde la fuente es clonar el repositorio indicado en el enlace “Read the source” del sitio oficial y compilarlo con el toolchain de Rust:

# Linux y macOS: instalar el toolchain de Rust (una sola vez)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# clonar el repositorio (URL exacta en fastpotify.rocks, seccion "Read the source")
git clone URL_DEL_REPOSITORIO_OFICIAL
cd fastpotify
cargo build --release

# Linux / macOS: ejecutar el binario compilado
./target/release/fastpotify

# Windows (PowerShell, con rustup ya instalado)
cargo build --release
.\target\release\fastpotify.exe

El atajo Ctrl+M abre el mini reproductor estilo Winamp una vez que Fastpotify ya está corriendo y autenticado contra una cuenta de Spotify. Para confirmar que la sesión de Spotify Connect está activa, basta con abrir la app oficial de Spotify en otro dispositivo y verificar que Fastpotify aparece listado como salida de audio disponible en el selector de dispositivos Connect.

💡 Tip: si solo necesitás controlar otro dispositivo (un parlante o una TV) y no reproducir audio en la misma máquina, Fastpotify funciona igual sin que el equipo local procese el stream de audio.
⚠️ Ojo: como cualquier cliente basado en librespot, Fastpotify necesita una cuenta Spotify Premium para reproducción completa vía Spotify Connect; es una restricción del protocolo de Spotify, no de la aplicación.

Impacto y análisis

El interés por clientes nativos y livianos no es un capricho estético. Un motor de navegador completo se reutiliza por cada aplicación que lo usa, lo que multiplica el consumo de RAM cuando varias apps de ese tipo corren a la vez. Un usuario con varias de esas apps abiertas puede acumular fácilmente varios gigabytes de RAM solo en interfaces gráficas, incluso en equipos con recursos limitados.

Fastpotify no es la primera respuesta a ese problema ni será la última: la comunidad de Rust acumula alternativas nativas a herramientas tradicionalmente basadas en motores de navegador, desde editores hasta terminales. Lo que distingue a este proyecto es apuntar específicamente a Spotify, un servicio cuyo cliente oficial rara vez recibe críticas por su interfaz pero sí por su huella de recursos y por la ausencia de opciones profundas de personalización visual.

El componente Winamp merece un párrafo aparte por motivos que van más allá de la nostalgia. Winamp 2 mantiene una comunidad activa de creadores de skins que sigue produciendo diseños nuevos décadas después del lanzamiento original del reproductor. Que Fastpotify sea compatible con esas skins clásicas le da un uso práctico otra vez a ese archivo de diseños, en su mayoría abandonado desde la consolidación del streaming.

Modo mini reproductor estilo Winamp de Fastpotify con skins clasicas
El atajo Ctrl+M abre el modo Winamp con skins clásicas de Winamp 2. Foto de CDC en Unsplash
flowchart TD
A["Interfaz egui (Fastpotify)"] --> B["Sesion librespot"]
B --> C["Protocolo Spotify Connect"]
C --> D[("Servidores de Spotify")]
C --> E["Altavoz, TV o telefono"]
subgraph Cliente local
A
B
end

Qué sigue

El research disponible sobre Fastpotify no incluye una hoja de ruta pública ni cifras de descargas que permitan medir su adopción real. Tampoco hay confirmación de planes para sumar funciones sociales, como comentarios o feeds de actividad de amigos, que sí tiene el cliente oficial: dado que apunta a un perfil de usuario técnico, es razonable esperar que la prioridad siga siendo el rendimiento antes que la paridad de funciones con Spotify.

Como con cualquier cliente construido sobre librespot, la principal amenaza a mediano plazo no depende del propio proyecto sino de Spotify: la empresa no publica una API oficial para Spotify Connect y el protocolo que usa librespot es resultado de ingeniería inversa. Un cambio en ese protocolo por parte de Spotify podría romper la compatibilidad de golpe, algo que ya afectó antes a otros clientes basados en librespot.

📖 Resumen en Telegram: Ver resumen

Probalo vos: descargá el binario para tu sistema operativo desde fastpotify.rocks o compilalo con cargo build –release y abrí Ctrl+M para ver el modo Winamp en acción hoy mismo.

Preguntas frecuentes

¿Qué es Fastpotify?

Es un cliente de escritorio nativo para Spotify, escrito en Rust con las bibliotecas egui y librespot, sin motor de navegador embebido, disponible para Linux, macOS y Windows.

¿Necesito una cuenta Spotify Premium para usarlo?

Sí. Como ocurre con cualquier cliente basado en librespot, la reproducción completa vía Spotify Connect requiere una cuenta Premium; es una restricción del protocolo de Spotify, no de la aplicación.

¿Fastpotify reemplaza al dispositivo donde estoy escuchando música?

No necesariamente. Fastpotify puede reproducir audio en el equipo donde corre, o simplemente enviar comandos de reproducción a otro dispositivo Spotify Connect, como un parlante, una TV o un teléfono, sin procesar el audio en sí.

¿Qué es el modo Winamp de Fastpotify?

Es un mini reproductor que se abre con el atajo Ctrl+M, compatible con skins clásicas de Winamp 2, con analizador de espectro, ecualizador y lista de reproducción propios.

¿Fastpotify es gratuito y de código abierto?

Sí, se distribuye bajo licencia MIT, lo que permite usar, modificar y redistribuir el código libremente, siempre que se mantenga el aviso de licencia original.

¿Funciona en Raspberry Pi u otros sistemas embebidos?

El proyecto está pensado para escritorio (Linux, macOS y Windows) con interfaz gráfica completa; para sistemas embebidos sin pantalla, proyectos como spotifyd, también basado en librespot, son la opción más habitual.

Referencias

  • Fastpotify: sitio oficial del proyecto, con la lista de funciones y enlaces de descarga.
  • librespot: implementación abierta en Rust del protocolo Spotify Connect que usa Fastpotify.
  • egui: biblioteca de interfaz gráfica inmediata para Rust utilizada para construir la app.
  • Winamp: historia del reproductor y su formato de skins, con el que Fastpotify es compatible en su modo mini reproductor.

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.

Imagen destacada: Foto de Kevin Canlas en Unsplash


Andrés Morales

Desarrollador e investigador en inteligencia artificial. Escribe sobre modelos de lenguaje, frameworks, herramientas para devs y lanzamientos open source. Cubre papers de ML, ecosistema de startups tech y tendencias de programación.

0 Comentarios

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.