À propos du projet

Tide est un client musical de bureau Linux construit avec Python, PySide6 (Qt6) et mpv, sans Electron. Il agrège plusieurs sources musicales en une bibliothèque et une file uniques : YouTube Music, Spotify, Subsonic/Navidrome, fichiers locaux, SoundCloud, Bandcamp et Mixcloud. Un mode de recherche fédérée interroge toutes les sources activées à la fois et étiquette chaque résultat par origine ; des pistes de différents services peuvent coexister dans la même file et être lues via le backend approprié. Depuis la version 2.0, l'application propose deux personnalités d'interface distinctes partageant une bibliothèque et une file. « Brutalist » est un lecteur monospace, aux angles durs, sans animation, avec des boutons à crochets et des mètres en blocs. « Modern » utilise des coins arrondis, des icônes, des curseurs souples avec détentes magnétiques, et un arrière-plan qui prend la couleur de la pochette d'album et réagit aux basses. Chaque personnalité conserve indépendamment son thème, sa mise en page, ses animations, ses coins, ses icônes de navigation, ses glyphes, ses arrière-plans et ses personnalisations. Un sélecteur apparaît lors des nouvelles installations ou après une mise à niveau vers 2.0 ; les installations 1.x existantes conservent leur apparence. Seize thèmes inclus sont fournis (cinq brutalistes, onze modernes), chacun définissant ses propres polices, casse de texte, rayon de coins, variantes de widgets, marqueurs de liste et visualiseur par défaut. Des thèmes personnalisés peuvent être ajoutés via des fichiers theme.toml et theme.qss dans ~/.config/tide/themes/, ou créés via un éditeur de thèmes intégré qui prévisualise les changements en direct et les enregistre en tant que vrais thèmes. Des outils supplémentaires incluent un constructeur de bande pour la barre du lecteur, un éditeur de mappage de touches pour redéfinir les raccourcis, et un éditeur de glyphes pour les symboles de transport. Le support des sources varie : YouTube Music offre la recherche ainsi que les playlists, chansons, albums, artistes, abonnements, accueil, classements, humeurs et historique du compte, nécessitant l'importation de cookies ; Spotify prend en charge la recherche et la bibliothèque, mais la lecture est actuellement silencieuse en raison d'un changement de sécurité de la plateforme affectant le décryptage librespot ; Subsonic/Navidrome nécessite une URL de serveur et un identifiant ; les fichiers locaux nécessitent un répertoire musical ; SoundCloud, Bandcamp et Mixcloud ne prennent en charge que la recherche. Les fonctionnalités quotidiennes incluent une file avec lecture automatique radio, des paroles synchronisées avec mode karaoké (timings YouTube d'abord, repli LRClib), une vue d'historique, une minuterie de sommeil, un bouton j'aime, la reprise au lancement, la prélecture de flux, un comportement à instance unique, un mini-lecteur, un mode plein écran, et une page de chanson avec compteurs de vues/j'aime, crédits, chansons liées et commentaires YouTube filés avec horodatages cliquables. Le rapport de lecture facultatif à YouTube Music est désactivé par défaut et demandé explicitement lors de la configuration. Un rack FX (Ctrl+8) fournit un égaliseur 10 bandes, des préréglages de réverbération, des étagères basses/aigus, une normalisation du volume, une largeur stéréo, un compresseur, et des effets tels que chorus, flanger, phaser, trémolo, exciter, crossfeed casque et lofi. La vitesse de lecture varie de 0,5x à 2x avec changement de hauteur par défaut et une bascule de préservation de la hauteur. Dix rendus de visualiseur utilisent la capture PipeWire. Un accent adaptatif et un arrière-plan réactif aux basses sont les défauts modernes ; l'impulsion de basse apprend chaque piste en enregistrant la sortie du détecteur et en la rejouant contre l'horloge du lecteur lors des lectures suivantes. L'intégration système inclut MPRIS2 pour les touches multimédia et les panneaux de bureau, un plateau avec masquage à la fermeture, une présence Discord riche facultative avec mode paroles en direct, un scrobbling ListenBrainz facultatif, et une vérification quotidienne des mises à jour contre les versions GitHub. L'installation se fait via AUR (yay -S tide) sur Arch, une soumission Flatpak en cours de révision, ou une construction manuelle avec makepkg. Le Flatpak fonctionne sur le runtime KDE 6.11 avec son propre libmpv et nécessite des overrides pour l'accès aux cookies du navigateur et des dossiers musicaux supplémentaires. La connexion repose sur l'importation de cookies du navigateur (famille Chromium ou Firefox, y compris les installations Flatpak/Snap) car Google bloque OAuth pour les endpoints YouTube Music ; un rafraîchissement en un clic réimporte lorsque les sessions expirent. Les racines de configuration et de cache sont en 0700, les fichiers d'identifiants en 0600, et les écritures sont atomiques. Licence GPL-3.0-or-later.