Skip to content

SkelosJS/spotifade-linux

Repository files navigation

SpotiFade (Linux)

Trop de pub tue la pub.

🇬🇧 Read in English

logo

Coupe automatiquement le son des pubs Spotify sous Linux (Arch et toute autre distribution avec PulseAudio ou PipeWire-pulse). Le mute s'applique uniquement à Spotify — le reste du système continue de jouer normalement.

Comment ça marche

Un petit daemon Python écoute D-Bus directement via PyGObject (mainloop GLib, zéro polling) :

  • Détection — abonnement au signal PropertiesChanged sur l'interface MPRIS de Spotify (org.mpris.MediaPlayer2.spotify). Le mpris:trackid est inspecté ; les pubs ont un track-id contenant /ad/ ou commençant par spotify:ad:.
  • Mute — le sink-input audio de Spotify est trouvé via pactl, filtré par application.name, application.process.binary et les propriétés du client propriétaire. Couvre le client Linux natif ainsi que les variantes Flatpak / Snap. set-sink-input-mute est basculé à l'entrée et à la sortie de chaque pub.
  • Robustessepactl subscribe est aussi écouté pour qu'un nouveau sink-input apparaissant au milieu d'une pub (reconnexion du flux Spotify) soit muté immédiatement. NameOwnerChanged gère le démarrage / arrêt / redémarrage de Spotify. SIGINT et SIGTERM rétablissent le son sur tout ce qui a été muté avant de quitter.

Seuls les sink-inputs mutés par SpotiFade sont rétablis — un mute manuel de l'utilisateur n'est jamais écrasé.

Prérequis

  • Python 3.10+
  • python-gobject, pactl (paquet libpulse)
sudo pacman -S python-gobject libpulse

Installation

git clone https://github.com/SkelosJS/spotifade-linux.git
cd spotifade-linux

Test rapide :

python3 spotify_ad_mute.py

Service systemd (recommandé)

Pour lancer SpotiFade automatiquement à la connexion :

# 1. Placer le script dans un emplacement stable
mkdir -p ~/.local/bin
install -m 755 spotify_ad_mute.py ~/.local/bin/

# 2. Installer et activer le service utilisateur
mkdir -p ~/.config/systemd/user
install -m 644 spotify-ad-mute.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now spotify-ad-mute.service

Vérifier les logs :

journalctl --user -u spotify-ad-mute -f

Si le script est placé ailleurs que ~/.local/bin/spotify_ad_mute.py, adapter le ExecStart du fichier spotify-ad-mute.service avant de copier l'unité.

Licence

MIT — voir LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors