Supprimer les publicités dans Spotify


Spotify sous Linux
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.

Supprimer les publicités dans Spotify

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...).


29 Commentaires pour "Supprimer les publicités dans Spotify"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Encore une bonne raison de passer à Linux! ;)

    RépondreRépondre
    ZePiplette , le 28 octobre 2009 à 17:42
  •  

    @ZePiplette: C'ést codé en Python, et Python tourne également sous Windows !

    RépondreRépondre
    Tristan , le 28 octobre 2009 à 18:28
  •  

    Pour Windows on peut faire quelle commande ?
    Merci d'avance

    RépondreRépondre
    Hamza_ , le 28 octobre 2009 à 18:38
  •  

    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 :-D

    RépondreRépondre
    Gonzague , le 28 octobre 2009 à 19:34
  •  

    @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.

    RépondreRépondre
    pti-seb , le 28 octobre 2009 à 19:55
  •  

    10 Euros / mois, on peut quand même pas parler de "luxe"...

    RépondreRépondre
    kwyxz , le 29 octobre 2009 à 00:58
  •  

    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 :)

    RépondreRépondre
    lhooq , le 29 octobre 2009 à 01:37
  •  

    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...

    RépondreRépondre
    loulou , le 30 octobre 2009 à 15:12
  •  

    @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.

    RépondreRépondre
    vincentpsp2 , le 30 octobre 2009 à 15:53
  •  

    @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.

    RépondreRépondre
    pti-seb , le 30 octobre 2009 à 16:24
  •  

    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. ;)

    RépondreRépondre
    loulou , le 30 octobre 2009 à 17:28
  •  

    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 ?

    RépondreRépondre
    mart , le 3 novembre 2009 à 17:40
  •  

    @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.

    RépondreRépondre
    pti-seb , le 3 novembre 2009 à 18:27
  •  

    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é :)

    RépondreRépondre
    Orphee , le 15 novembre 2009 à 02:15
  •  

    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.

    RépondreRépondre
    halford , le 22 décembre 2009 à 18:40
  •  

    J'ai du changer le canal pour le canal Headphone. Couper le canal Master me mettait spotify en pause. Sinon c'est niquel.

    RépondreRépondre
    erdnaxeli , le 16 mars 2010 à 20:22
  •  

    Les commandes marchent sauf la dernière ...
    Ca me dit
    Import Error : no Module name wnck

    Quelqu'un a connu ce probleme ?

    Merci !!

    RépondreRépondre
    Alex , le 21 avril 2010 à 14:47
  •  

    @Alex : le message indique qu'il te manque un module pyhton. Essaye de lancer la commande yum / apt-get install python-wnck ...

    RépondreRépondre
    pti-seb , le 22 avril 2010 à 10:32
  •  

    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 ?

    RépondreRépondre
    totoro , le 5 mai 2010 à 23:11
  •  

    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 ?

    RépondreRépondre
    totoro , le 6 mai 2010 à 01:43
  •  

    @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.

    RépondreRépondre
    pti-seb , le 6 mai 2010 à 08:23
  •  

    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 :)

    RépondreRépondre
    totoro , le 6 mai 2010 à 10:13
  •  

    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.

    RépondreRépondre
    totoro , le 6 mai 2010 à 14:09
  •  

    @totoro : j'ai contacté l'auteur du script, voici ça réponse :

    Bonjour,
    
    > Depuis la dernière version de Spotify, cela ne fonctionne plus car spotify
    > se met en pause si on baisse le volume.
    
    C'était déja le cas à l'époque.
    
    En fait, l'astuce consiste à "isoler" wine du reste du système pour
    que Spotify ne puisse détecter la mise en sourdine du son.
    
    Concrêtement, avec Pulse Audio :
    $ padsp winecfg -> Audio Tab | esound driver
    $ padsp wine spotify.exe
    
    Je regarderai la nouvelle version de Spotify plus en détails ce soir
    et mettrai à jour le script si besoin.
    
    Je te tiens au courant,
    
    Nils
    
    RépondreRépondre
    pti-seb , le 6 mai 2010 à 18:17
  •  

    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à...

    RépondreRépondre
    totoro , le 6 mai 2010 à 22:07
  •  

    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.

    RépondreRépondre
    Ced , le 2 juin 2010 à 09:46
  •  

    @Gonzague : tu peux m'en dire plus stp ! je cherche comment avoir une version gratuite

    RépondreRépondre
    Anonyme , le 3 septembre 2010 à 12:47
  •  

    Merde alors et rien pour la version windows standalone ?

    RépondreRépondre
    mr.bryce , le 11 décembre 2010 à 21:11
  •  

    @Hamza_ : blockify pour windows

    RépondreRépondre
    Anonyme , le 11 février 2013 à 17:59
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité red hat redhat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum