Sobre o projeto
Music Player é um daemon, servidor e cliente de música extensível escrito em Rust, distribuído como um único binário sem dependências de runtime. Foi projetado no espírito do MPD e do Mopidy.
A reprodução é alimentada pelo motor de áudio do firmware Rockbox (por meio dos crates rockbox-playback, rockbox-dsp e rockbox-metadata), com suporte a mais de 40 formatos, incluindo MP3, FLAC, Vorbis, Opus, MP4/AAC/ALAC, WavPack, APE, WMA e chiptunes. A cadeia de DSP oferece presets de EQ, crossfade e ReplayGain, com buffering de nível gapless e streaming HTTP nativo.
O daemon indexa a biblioteca de músicas no SQLite com busca de texto completo FTS5, mantida em sincronia automaticamente por triggers do banco de dados. Ele expõe a biblioteca via gRPC (tonic, com grpc-web habilitado), GraphQL (com GraphiQL), eventos WebSocket e uma interface web. O mesmo binário atua tanto como servidor quanto como cliente — a primeira invocação inicia o daemon, as seguintes se conectam a ele.
As interfaces de usuário incluem:
- Uma interface de terminal (ratatui) com um localizador difuso estilo fzf, linha de status inspirada no neovim e sobreposição de ajuda.
- Uma interface web (React 19, TanStack Query, Jotai, Tailwind v4) com posição de reprodução ao vivo via assinaturas GraphQL, responsiva até a largura de um telefone.
- Um aplicativo desktop Slint com skins, com um daemon embutido, compartilhando as mesmas skins, fontes e componentes da interface web.
Recursos adicionais:
- Navegar e transmitir de servidores Subsonic/Navidrome e Jellyfin.
- Fazer cast para Chromecast e renderizadores UPnP/DLNA, ou controlar outro daemon music-player.
- Busca e navegação de rádio pela internet (Radio Browser + TuneIn) com favoritos e uma visualização em tela cheia do que está tocando.
- Scrobbling no Rocksky via AT Protocol.
- Sincronização via AT Protocol para favoritos de rádio e músicas curtidas entre dispositivos.
- Impressão digital acústica via Chromaprint, identificando arquivos pelo áudio e nomeando os mal etiquetados a partir do AcoustID/MusicBrainz.
- Análises de audição alimentadas pelo DuckDB, importando histórico do Spotify, Last.fm e Rocksky (deduplicado entre fontes) para análise de sessões, pulos e deriva de gostos.
- Saída de áudio flexível: dispositivo do sistema (cpal), stdout, FIFO, socket Unix ou socket TCP.
A instalação está disponível via script de instalação curl, npm, Homebrew (incluindo um cask para macOS do aplicativo desktop), repositórios APT e DNF, AUR, Nix flakes e binários pré-compilados para macOS (arm64/x86_64) e Linux (amd64/arm64). A configuração fica em ~/.config/music-player/settings.toml, com cada chave podendo ser sobrescrita por variáveis de ambiente MUSIC_PLAYER_*.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.