Trop de pub tue la pub.
Coupe automatiquement le son des pubs Spotify sur Android. Aucun root requis.
Un NotificationListenerService se branche sur le MediaSessionManager
système et surveille les metadata de la session media de Spotify.
Lorsqu'une pub est détectée — via le flag METADATA_KEY_ADVERTISEMENT,
un mediaId contenant spotify:ad, ou un titre localisé (Annonce,
Advertisement, Werbung, 광고, …) — la session Spotify est mutée
via MediaController.setVolumeTo(0). Dès que la piste suivante démarre,
le volume précédent est rétabli.
Si la voie par session est indisponible (Android plus ancien, appareil
restreint), un fallback bascule sur AudioManager.adjustStreamVolume( ADJUST_MUTE) sur STREAM_MUSIC. Les deux chemins fonctionnent sans la
permission "Ne pas déranger".
- JDK 17
- Android SDK avec la plateforme 35 et build-tools 35
- Un appareil sous Android 8.0 (API 26) ou plus récent
git clone https://github.com/SkelosJS/spotifade-android.git
cd spotifade-android
./gradlew assembleDebug # APK debug : app/build/outputs/apk/debug/
./gradlew assembleRelease # APK release : app/build/outputs/apk/release/Le build release cherche un fichier keystore.properties à la racine du
projet (gitignoré). En son absence, il bascule automatiquement sur la
clé de debug — suffisant pour du sideload local, pas pour distribuer
publiquement.
Pour générer une clé de signature dédiée :
keytool -genkey -v \
-keystore release.jks \
-alias spotifade \
-keyalg RSA -keysize 2048 -validity 10000Puis créer keystore.properties à la racine :
storeFile=release.jks
storePassword=…
keyAlias=spotifade
keyPassword=…
⚠️ Ne jamais committerrelease.jksnikeystore.properties— ils sont déjà couverts par le.gitignoredu projet.
- Installer l'APK :
adb install -r app-release.apk(ou copier le fichier sur le téléphone et l'ouvrir). - Sur Android 13 et plus, autoriser d'abord les paramètres
restreints : Paramètres → Applications → SpotiFade, menu trois
points
⋮en haut à droite, puis « Autoriser les paramètres restreints ». Sans cette étape, le toggle d'accès aux notifications sera grisé (protection Android contre les apps sideloadées). - Lancer SpotiFade.
- Appuyer sur Accorder l'accès aux notifications et activer
SpotiFade dans la liste système. Cette permission est ce qui
débloque
MediaSessionManager.getActiveSessions— aucune notification n'est lue ni stockée. - La carte de statut passe au vert ("Actif"). L'app peut être fermée : le listener continue de tourner en arrière-plan, écran éteint inclus.
Sur les surcouches agressives en gestion de batterie (Xiaomi/MIUI, Huawei, OnePlus…), il peut être nécessaire de désactiver l'optimisation de batterie pour SpotiFade afin que le système ne tue pas le listener en veille.
adb logcat -s SpotifyAdMute:VLes logs verbeux par metadata sont retirés de l'APK release.
MIT — voir LICENSE.