Sobre o projeto

Limusic é um cliente desktop nativo para o YouTube Music, construído com Tauri 2, Rust e uma interface de página única em SvelteKit. Ele se comunica diretamente com a API interna do YouTube e reproduz áudio através do libmpv, portanto não há runtime de navegador embutido, nem servidor backend, nem Electron. O projeto começou como uma reconstrução para desktop do motor de reprodução por trás do Metrolist, um cliente Android do YouTube Music. Reprodução e biblioteca Os streams vêm da API do YouTube e os anúncios não são reproduzidos. A busca e a navegação cobrem músicas, álbuns, artistas, playlists e o feed inicial do YouTube Music, com resultados sendo pré-visualizados conforme você digita. Os usuários podem entrar com uma conta do YouTube Music por meio do login do Google no aplicativo ou colando cookies, e podem manter várias contas ao mesmo tempo com troca entre elas. A visualização da biblioteca expõe playlists, músicas curtidas, álbuns e artistas salvos, uploads e ações de escrita como curtir, adicionar a playlists, criar, editar e excluir playlists incluindo a arte da capa, inscrever-se e salvar na biblioteca. O histórico de reprodução é mantido nos próprios agrupamentos diários do YouTube Music. A reprodução sem intervalos com normalização de volume é tratada pelo libmpv, e a fila suporta continuação por rádio/automix, arrastar para reordenar e restauração entre reinicializações. Arquivos de áudio locais também podem ser reproduzidos com seus metadados intactos. Interface e integrações Letras sincronizadas aparecem em um painel lateral com rolagem automática e clique para pular, palavra por palavra onde a fonte fornece os tempos, com traduções sob cada linha. As letras são obtidas primeiro do Boidu, depois do LRCLIB, das letras cronometradas do YouTube Music, Netease, QQ Music e Kugou, com fallback para texto simples, e os resultados são armazenados em cache localmente. Vídeos musicais opcionais são reproduzidos onde fica a arte da capa. Um mini player e o modo teatro estão disponíveis. O scrobbling do Last.fm conecta-se a partir da barra de título e registra no ponto intermediário ou aos quatro minutos, o que ocorrer primeiro. O Discord Rich Presence mostra a faixa, o artista, a arte da capa e uma barra de progresso. As teclas de mídia do sistema operacional e a integração de reprodução atual são suportadas via MPRIS no Linux e SMTC no Windows, além dos botões de pré-visualização na barra de tarefas. Uma bandeja do sistema mantém a reprodução ativa quando a janela é fechada, com controles de reproduzir/pausar e pular e início opcional no login. O Listen Together oferece salas de audição sincronizada por meio de um pequeno relay auto-hospedado; cada participante transmite seu próprio áudio enquanto a sala retransmite reproduzir/pausar, avanços, mudanças de faixa e a fila, com códigos de entrada e aprovação do anfitrião. Os atalhos de teclado incluem Ctrl+K para busca e Ctrl+H para a lista de atalhos, e Ctrl com a roda do mouse amplia a interface. Personalização e idiomas O aplicativo oferece paletas de destaque, cores personalizadas, fontes personalizadas, arredondamento de cantos, um ícone de aplicativo personalizado e um tema adaptativo que se recolore a partir da capa em reprodução. Seis idiomas são fornecidos hoje: inglês, espanhol, francês, turco, português brasileiro e indonésio, com mais em andamento. As traduções são gerenciadas no Weblate em vez de por meio de pull requests. Plataformas e empacotamento Builds estão disponíveis para Windows (setup.exe com autoatualização, ou .msi), Linux (AppImage com autoatualização e libmpv embutido, .deb, .rpm) e macOS Apple Silicon (.dmg, não assinado). Builds para macOS Intel são feitas a partir do código-fonte. Pacotes mantidos pela comunidade existem para Arch AUR, Fedora COPR e openSUSE Tumbleweed. Compilar a partir do código-fonte requer os pacotes de desenvolvimento do libmpv e do webkit2gtk, pnpm para a interface e Cargo/Tauri para o lado Rust. A integração com o Last.fm ao compilar a partir do código-fonte precisa da própria chave de API e do segredo do desenvolvedor em src-tauri/lastfm.keys; sem esse arquivo, o restante ainda compila e executa. Notas de arquitetura Um crate Rust puro fala com a API InnerTube do YouTube, personificando várias identidades oficiais de cliente e alternando entre elas. As URLs de stream são protegidas por JavaScript ofuscado (cifra de assinatura e o parâmetro n) e atestação BotGuard; o Limusic executa esse JavaScript em um webview real oculto, isolado do processo da interface. O áudio passa pelo libmpv com um cache em disco. A interface SvelteKit apenas se comunica com o núcleo Rust e nunca contata o YouTube diretamente. O projeto é licenciado sob GPL-3.0 e declara não ser afiliado ao YouTube ou ao Google.