⏱️ 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
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.
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.
| Cliente | Cuándo usarlo | Ventaja | Limitación |
|---|---|---|---|
| Fastpotify | Escritorio Linux, macOS o Windows con interfaz gráfica | Nativo en Rust, bajo consumo de RAM, Winamp y MilkDrop | Requiere cuenta Premium para reproducción completa vía Spotify Connect |
| Spotify oficial | Uso general sin preocuparse por configuración | Soporte oficial y todas las funciones sociales | Mayor consumo de memoria por el motor de navegador embebido |
| spotifyd | Servidores headless, Raspberry Pi, altavoces DIY | Sin interfaz gráfica, mínimo consumo de recursos | No tiene GUI ni navegación de biblioteca propia |
| ncspot / spotify-tui | Terminal, uso remoto por SSH | Ligero, controlable por teclado | Sin 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.
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
0 Comentarios