Supprimer les publicités dans Spotify
Spotify, le service de musique en ligne très populaire en ce moment, possède le désagréable inconvénient de diffuser un peu trop de pubs entre les morceaux. Bien entendu, il est possible de les supprimer en souscrivant à un compte premium (10€/mois). Mais, comme c'est la crise et, que comme moi, vous n'avez pas les moyens de vous payer un tel luxe, sachez qu'il existe une autre solution bien moins onéreuse.
Elle nous vient de Nils Hamerlinck, qui a codé un petit script Python, qui permet de mettre en sourdine Spotify, quand une publicité est diffusée. Un tel système paraît même légal, car dans la vraie vie, rien ne vous empêche de baisser le son de vos enceintes à tout moment. Ici, le programme le fait à votre place automatiquement.
Pour utiliser ce script, commencez par installer Spotify sur Linux. Ouvrez ensuite un terminal en root et lancez les commandes suivantes pour une distribution à base de rpm :
yum install python python-alsaaudio gnome-python2-libwnck
Ou celle-ci pour une distribution à base de Debian :
sudo aptitude install python python-wnck python-alsaaudio
Ensuite, on récupère le script :
wget www.tux-planet.fr/public/dev/python/spotify-mute-audio-ads.py
Et on le lance une fois Spotify démarré :
python spotify-mute-audio-ads.py
Souscrire un compte premium restera quand même une solution avantageuse, étant donné le nombre de services qu'ils offrent en plus (possibilité d'écouter la musique off-line, application iPhone...).
31 Commentaires pour "Supprimer les publicités dans Spotify"
Flux des commentaires de cet article Ajouter un commentaireEncore une bonne raison de passer à Linux!
@ZePiplette: C'ést codé en Python, et Python tourne également sous Windows !
Pour Windows on peut faire quelle commande ?
Merci d'avance
Et encore mieux : Sous Mac OS, une équipe de hackers russe a réussi à modifier le code et faire une version premium du soft.... gratos
@Hamza @Tristan : python fonctionne peut-être sur Windows, je doute que le script anti-pub spotify y fonctionne aussi. En effet, il se base sur les librairies alsaaudio, propre à Linux.
10 Euros / mois, on peut quand même pas parler de "luxe"...
Il faudrait ajouter audio dans ton titre, "Supprimer les publicités audio dans Spotify".
C'est surtout les pubs visuelles qui sont chiantes en fait.
Enfin ça reste quand même bon à prendre
Le principe est : c'est gratuit, mais avec de la pub ( un message tout les quarts d'heure et une banderolle, c'est pas la mort). Avec ces pratiques, il leur sera impossible de dégager des revenus.
Venez pas vous plaindre après si les services de ce genre disparaissent...
@loulou : à mon avis quelque centaine voir 1000 personne qui connaise la manipe a faire pour enlevé la pub sur se logiciel ne va pas tuer le truc, surtout que bon contre 1 000 000 000 d'utilisateur potentiel sous windows.
Puis bon, c'est quand même plus agréable d'écoute de la musique sans entendre de pub.
@loulou @vincentpsp2 : perso, de la pub de temps en temps je suis pas contre. Ce qui me pousse à utiliser cette solution, c'est que la version gratuite de spotify diffuse une pub tous les 2 chansons et c'est à chaque fois la même. On dirait un lavage de cervaux au bout de quelques heures.
A chaque fois je baisse le volume manuellement, le script le fait pour moi maintenant.
Chez moi c'est plutot 4 ou 5 fois par heures.
Si effectivement c'est une pub toute les deux chansons chez certains, je suis d'accord, c'est trop.
Chez moi (debian sid 64bit) ça ne fonctionne pas
j'ai essayé en lançant d'abord spotify puis le script et inversement sans résultat.
Par contre il m'écrit dans le terminal le nom de chaque page internet sur laquel je vais. Normal ?
@mart : le coup des pages qui s'affichent dans le script, j'ai déjà eu le problème. Cela arrive quand tu lance le script avant de lancer spotify. Il faut faire le contraire pour que ça fonctionne bien.
Le script indiqué ici fonctionne très bien :
http://pastebin.com/f7caab6b8
On lance le script python, on map une touche raccourci dans gnome, et le tour est joué
Il faut vraiment être à la dèche pour vouloir pirater les pubs de Spotify... enfin, vous n'aurez pas la qualité de son de l'offre premium.
J'ai du changer le canal pour le canal Headphone. Couper le canal Master me mettait spotify en pause. Sinon c'est niquel.
Les commandes marchent sauf la dernière ...
Ca me dit
Import Error : no Module name wnck
Quelqu'un a connu ce probleme ?
Merci !!
@Alex : le message indique qu'il te manque un module pyhton. Essaye de lancer la commande yum / apt-get install python-wnck ...
mmh, c'est censé marcher aussi sous lucid ? parce que ça me filtre rien du tout là...
j'ai bien lancé le script après le soft.
en console à l'ouverture ça me donne :
** (spotify-mute-audio-ads.py:25834): WARNING **: Trying to register gtype 'WnckWindowMoveResizeMask' as enum when in fact it is of type 'GFlags'
pas forcement de quoi s'inquieter. mais ensuite à chaque titre :
(spotify-mute-audio-ads.py:25834): Wnck-WARNING **: Property _NET_WM_NAME contained invalid UTF-8
et les pubs spotify "internes" ("savez vous que", "spotify tout un monde en musique" etc etc) je me les tape toutes...
un indice ?
bon je continue mes investigations :
-pour mon probleme d'utf8 c'est reglé : j'ai sauvé le script en ut8 et maintenant j'ai les titres des morceaux dans le terminal a la place des warning utf8.
-pour les pubs, j'ai rajouté ce qu'il faut dans re-ads pour qu'il les détecte, pas de probleme, j'ai bien le AD qui apparait quand il les voit... MAIS je ne vois toujours pas comment le script peut fonctionner :
il coupe le son quand la pub arrive, soit, sauf que spotify est conçu pour se mettre en pause si on coupe le son pendant une pub justement... du coup ça reste en pause ad (!) vitam aeternam
j'ai raté un épisode ?
@totoro : bien chez moi, depuis que j'ai installé la dernière version de Spotify (celle qui gère facebook maintenant), ce script ne marche plus. Soptify se met également en pause lorsque le script tente de baisser le volume.
Je pense que les développeurs connaissent maintenant l'existence de cette technique. Reste plus qu'a trouver une nouvelle parade. Si quelqu'un trouve, n'hésitez pas à nous en faire part ici.
alors comme je suis breton donc tétu, j'ai pas laché le morceau
on sait que l'option mute n'est pas/plus valable, il faut donc trouver le volume le plus faible possible qui ne met pas spotify en pause pendant les pubs.
j'ai lancé alsamixer pour voir et en jouant avec les fleches sur le volume master, il semblerait que spotify bloque la lecture jusqu'à 1/4 du volume.
du coté alsa-utils,je vois qu'il y a une commande setvolume. il suffit donc de remplacer les 2 lignes
mixer.setmute(True) / mixer.setmute(False) par
mixer.setvolume(26) / mixer.setvolume(100)
et le tour est joué
le script devrait être ensuite amélioré sur 2 points mais j'ai jamais touché au python, donc ça se corse pour moi :
.le plus facile à priori : au lieu de remettre le volume à 100, idealement il faudrait le remettre au volume anterieur avant la pub. je vois qu'il y a aussi une commande getvolume dans alsautils, faudrait donc utiliser une variable pour stocker cette valeur juste avant de faire le mixer.setvolume(26) , et reinjecter la dite variable avec un mixer.setvolume(volumeanterieur) au lieu de mixer.setvolume(100)
.plus emmerdant : la detection marche avec la plupart des pubs spotify, celles qui sont sous la forme spotify - spotify - blablablah, mais le script bloque apparemment sur celle(s) qui est de la forme spotify - spotify - spotify (3 fois).
dans ce cas, on voit dans le terminal qu'au lieu d'avoir
spotify - spotify AD
on a d'abord
spotify - spotify - spotify AD
Puis une deuxieme ligne avec juste "spotify" (sans AD ni rien d'autre)
là je suppose que c'est la detection regex dans le script qui doit etre adaptée...
voila c'est tout pour ce matin (c'est déjà pas mal , hein
Ok, je progresse doucement mais surement.
Spotify a donc inséré une fenetre express "anti-script" pour ses propres messages (au moins certains). ca consiste a changer le titre de la fenetre avec un simple "spotify" instantanement apres le titre du message ET à checker le volume en meme temps. S'il est au minimum, ca reste en pause aussi. C'est des malins les suédois
Bref un if/else ne sera pas suffisant ici, il va falloir retester le titre de la fenetre juste apres que la pub soit detectee, si c'est juste "spotify" baisser le volume mais pas au minimum (genre 50) puis re-re-tester pour cette fois mettre vraiment au minimum (je suis passé de mon 26 approximé hier à 25, ca marche toujours) si la fenetre pub a retrouvé son titre normal.
Sur ce je vais lire les docs sur la syntaxe python pour pouvoir esperer transcrire ça.
@totoro : j'ai contacté l'auteur du script, voici ça réponse :
plusieurs choses :
-l'esound driver ne figure pas (plus ?) dans l'onglet audio de winecfg, meme en l'appelant par padsp.
je suis sous lucid ubuntu media studio. je suppose que le "probleme" c'est lucid ici, et qu'ESD doit etre à la retraite maintenant.
pour ce qui est de l'auteur du script, ben...il a raison
baisser le volume à 0 a toujours bloqué spotify, mais baisser au minimum audible suffisait avant, ce n'est plus tout à fait le cas à cause de ce satané nouveau titre qui s'incruste dans la fenetre si on baisse le volume directos (trop brusquement ?) sur la pub. il faut donc definir un cas supplémentaire (ziq , pub, et "anti-script")
pour ma part j'ai réécrit avec mes ressources quasi inexistantes en programmation (mais je suis bon imitateur, ça compense :), la section du script qui pose probleme sous cette forme :
RE_ADS = re.compile('Spotify - Spotify|Spotify - Sony Music|Spotify - Universal Music|Spotify - EMI|Spotify - Unicef|Spotify - In Beve|Spotify - Hoegaarden|Spotify - E.Leclerc')
mixer = alsaaudio.Mixer('Master')
muted = False
halfmute = False
def window_name_changed(window):
global muted,halfmute
name = window.get_name()
print name,
if RE_ADS.search(name): #Pub trouvée
print 'AD'
if not muted:
mixer.setvolume(25)
muted = True
halfmute = False
elif len(name) < 10: # Fenetre Spotify Anti-script
mixer.setvolume(50)
muted = False
halfmute = True
time.sleep(2)
else: #Musique
print
if (muted or halfmute):
mixer.setvolume(100)
muted = False
halfmute = False
---------------------------
faut rajouter un import time avant pour que le sleep marche.
apres y'a surement moyen de mieux ecrire la chose, ajuster le sleep, que sais-je, mais la base est là...
Il n'y a pas moyen de faire un script qui ferait ceci ?
- Quand la pub commence : pause
- Baisser le son au minimum
- Play
Comme ça on evite que ça se mette en pause parce qu'on baisse trop rapidement le son.
@Gonzague : tu peux m'en dire plus stp ! je cherche comment avoir une version gratuite
Merde alors et rien pour la version windows standalone ?
@Hamza_ : blockify pour windows
Sur Windows il existe effectivement Blockify en gratuit ou Shelblock en payant qui bloque aussi d'autres pubs
M'enfin il y a quand même mieux que Spotify (Nuclear) si vous ne voulez pas de Pubs et gratuit ! dispo sur WS et Linux, pas de pubs, belle interface, on peut même télécharger des vidéos, pourquoi s'emmerder à mettre un truc comme Spotify sur Linux ? comme Chrome sous Linux quel intérêt ? Utiliser un OS "libre" pour mettre dessus ces cochonneries fermées, j'comprendrai jamais...
a+
https://github.com/nukeop/nuclear/releases