Sobre o projeto

Tide é um cliente de música para desktop Linux construído com Python, PySide6 (Qt6) e mpv, sem Electron. Ele agrega múltiplas fontes de música em uma única biblioteca e fila: YouTube Music, Spotify, Subsonic/Navidrome, arquivos locais, SoundCloud, Bandcamp e Mixcloud. Um modo de busca federada consulta todas as fontes habilitadas de uma vez e rotula cada resultado pela origem; faixas de diferentes serviços podem ficar na mesma fila e tocar pelo backend apropriado. Desde a versão 2.0, o aplicativo oferece duas personalidades de interface distintas que compartilham uma biblioteca e fila. "Brutalist" é um player monoespaçado, de bordas duras e sem animações, com botões de colchetes e medidores de bloco. "Modern" usa cantos suaves, ícones, controles deslizantes elásticos com encaixes magnéticos e um fundo que pega cor da arte do álbum e reage aos graves. Cada personalidade mantém seu próprio tema, layout, movimento, cantos, ícones de navegação, glifos, fundos e personalizações de forma independente. Um seletor aparece em instalações novas ou após atualizar para 2.0; instalações 1.x existentes mantêm sua aparência. Dezesseis temas inclusos estão disponíveis (cinco brutalistas, onze modernos), cada um definindo suas próprias fontes, capitalização de texto, raio de canto, variantes de widgets, marcadores de lista e visualizador padrão. Temas personalizados podem ser adicionados via arquivos theme.toml e theme.qss em ~/.config/tide/themes/, ou criados por um editor de temas no aplicativo que pré-visualiza mudanças ao vivo e os salva como temas reais. Ferramentas de poder adicionais incluem um construtor de faixas para a barra do player, um editor de mapa de teclas para reatribuir atalhos e um editor de glifos para símbolos de transporte. O suporte a fontes varia: YouTube Music oferece busca além de playlists, músicas, álbuns, artistas, inscrições, início, paradas, humores e histórico da conta, exigindo importação de cookies; Spotify suporta busca e biblioteca, mas a reprodução está atualmente silenciosa devido a uma mudança de segurança na plataforma que afeta a descriptografia do librespot; Subsonic/Navidrome precisa de URL do servidor e login; arquivos locais precisam de um diretório de música; SoundCloud, Bandcamp e Mixcloud suportam apenas busca. Recursos do dia a dia incluem fila com reprodução automática por rádio, letras sincronizadas com modo karaokê (timings do YouTube primeiro, fallback do LRClib), visualização de histórico, timer de sono, botão de curtir, retomada ao iniciar, pré-busca de stream, comportamento de instância única, mini player, modo tela cheia e página de música com contagens de visualizações/curtidas, créditos, músicas relacionadas e comentários encadeados do YouTube com timestamps clicáveis. Relatório opcional de reprodução para YouTube Music fica desativado por padrão e é perguntado explicitamente na configuração. Um rack de efeitos (Ctrl+8) fornece EQ de 10 bandas, presets de reverb, prateleiras de graves/agudos, normalização de volume, largura estéreo, compressor e efeitos como chorus, flanger, phaser, tremolo, exciter, crossfeed de fone e lofi. A velocidade de reprodução varia de 0,5x a 2x com mudança de tom por padrão e um alternador de preservação de tom. Dez renderizadores de visualizador usam captura PipeWire. Acento adaptativo e fundo reativo a graves são padrões modernos; o pulso de graves aprende cada faixa gravando a saída do detector e reproduzindo-a contra o relógio do player em reproduções subsequentes. A integração com o sistema inclui MPRIS2 para teclas de mídia e painéis do desktop, bandeja com ocultar ao fechar, presença rica opcional no Discord com modo de letra ao vivo, scrobbling opcional no ListenBrainz e verificação diária de atualizações contra releases do GitHub. A instalação é via AUR (yay -S tide) no Arch, um Flatpak em revisão, ou build manual com makepkg. O Flatpak roda no runtime KDE 6.11 com seu próprio libmpv e requer overrides para acesso a cookies do navegador e pastas de música extras. O login depende da importação de cookies do navegador (família Chromium ou Firefox, incluindo instalações Flatpak/Snap), pois o Google bloqueia OAuth para endpoints do YouTube Music; um refresh de um clique reimporta quando as sessões expiram. As raízes de config e cache são 0700, arquivos de credenciais 0600 e as gravações são atômicas. Licenciado sob GPL-3.0-or-later.