Plusieurs lecteurs m’ont fait part d’un problème ennuyeux lors d’un téléchargement derrière un VPN (Réseau privé virtuel). En effet, si ce dernier venait à se couper, leur logiciel de téléchargement continuait quant à lui son travail ce qui engendrait un risque probable de se faire cueillir par les gentils emmerdeurs d’Hadopi.
C’est à ce moment là que j’ai eu l’idée de faire un petit script en AppleScript, qui permet de continuer à télécharger en toute sécurité.
Le Script FuckHadopi (un joli nom n’est ce pas?) propose les fonctions suivantes :
1) Plus besoin de lancer le VPN
2) Plus besoin de lancer l’application de Téléchargement (Transmission, etc..)
3) Le script se met directement dans la barre de menu du Mac…
4) Un click sur le script Start_FuckHadopi… il lance le VPN, puis le logiciel de téléchargement
5) Si le VPN se coupe pour X raisons, le logiciel de téléchargement se coupe également (il quitte car sinon il continuera a « communiquer » avec les trackers)
6) Le script check l’état du VPN… une fois ce dernier revenu… il relance l’application de téléchargement..
7) Pour tout quitter (VPN + logiciel de téléchargement), il suffit simplement de cliquer sur Stop_FuckHadopi..
Configuration du VPN
Avant de commencer le script, il faut d’abord configurer son VPN. Pour cela, je vous invite à lire le billet de Klakinoumi qui est fort bien fait.
Introduction
Nous aurons besoin de deux scripts distincts :
1 – Le script Start_FuckHadopi qui permet de lancer le VPN puis le logiciel de téléchargement
2 – Le script Stop_FuckHadopi qui permet de tout couper (VPN + logiciel de téléchargement)
PARTIE 1 : L’éditeur AppleScript
Nous allons écrire ce script avec l’éditeur AppleScript que vous trouverez dans « Applications/Utilitaires/ ».
Vous pouvez également passer par « Spotlight » comme ci-dessous.
Une fois l’application « Editeur AppleScript » lancé, allez dans les préférences
Allez dans l’Onglet « Général », puis cliquez sur la case indiquée comme ci-dessous.
Cette opération vous permet d’afficher l’icone AppleScript dans la barre de menu de votre Mac (Nous y reviendrons ultérieurement).
Voilà ce que vous devez avoir dans votre barre de menu.
Voilà, c’en est terminé pour la configuration de l’Editeur AppleScript. Passons aux choses sérieuses.
PARTIE 2 : Le Script Start_FuckHadopi
Dans l’éditeur AppleScript tapez le code suivant:
Partie 2.1 : Explication du code du script Start_FuckHadopi
1 – Les deux instructions Tell appellent les éléments du système puis les préférences réseaux
2 – Set VpnConnexion to the service « Giganews » (Nous stockons le nom du service VPN dans la variable VpnConnexion)
Remplacez « Giganews » par le nom EXACTE de votre réseau VPN, si vous avez un doute, allez voir le nom de votre VPN dans vos préférences réseaux. (par exemple « iPredator » si le nom de votre VPN s’appelle ainsi)

1 – Nous allons stocker dans la variable « DownLoadSoftIsRunning » tous les processus liés à notre logiciel de téléchargement.
2 – le ‘>0′ indique qu’il doit y avoir au moins 1 processus lancé et lié au logiciel
Exemple : « Transmission »
1 – Si le VPN n’est pas connecté (VpnConnexion is not connected) et si le logiciel de téléchargement est lancé (DownLoadSoftIsRunning=true) alors nous appelons l’application « SABnzbd » à quitter. Puis nous nous connectons au VPN (connect VpnConnexion).
Exemple : « Transmission »
1 – Si le VPN est connecté (VpnConnexion is connected) et si l’application de téléchargement n’est pas lancée (DownLoadSoftIsRunning = false) alors on appelle l’application de téléchargement à se connecter. Nous recommençons l’opération 10 fois (return 10).
Exemple : « Transmission »
Partie 2.2 : Enregistrement du script Start_FuckHadopi
Une fois que vous avez taper votre code, il faut sauvegarder votre script, mais pas n’importe comment !
Enregistrez le Script sur votre bureau dans en premier temps, en faisant « Enregistrer Sous » (donnez lui le nom Start_FuckHadopi puis sélectionner « Application » pour le format de fichier, et cochez l’option « Rester en arrière-plan ».
Vous devez obtenir quelque chose comme ça
Cliquez sur « Enregistrer ».
Le script Start_FuckHadopi se trouve maintenant sur votre bureau. Si vous lancez l’application, vous verrez l’icône apparaitre dans le Dock. Toutefois, pour des raisons pratiques et esthétiques, l’apparition de cet icône AppleScript n’est pas génial.
Cela serait certainement plus sympa que l’icône disparaisse du Dock, pour cela, c’est très simple.
1 – Faites un click droit sur le script Start_FuckHadopi placé sur votre bureau, puis cliquez sur « Afficher le contenu du paquet ».

2 - Une fenêtre apparait et affiche le contenu du paquet. Maintenant, faites un click droit sur le fichier info.plist puis « Ouvrir avec » et choisissez un éditeur de texte comme TextEdit par exemple.
Le fichier info.plist est maintenant ouvert, profitons en pour ajouter deux lignes en toute fin de code.
<string>1</string>
Ces lignes ajoutées permettent de supprimer l’affichage de l’icone du script dans le Dock.
PARTIE 3 : Le Script Stop_FuckHadopi
Dans l’éditeur AppleScript tapez le code suivant:
Partie 3.1 : Explication du code du script Stop_FuckHadopi
1 – Le script vérifie ici si le processus lié à notre premier script Start_FuckHadopi est bien lancé. Si tel est le cas, on quitte Start_FuckHadopi.
1 – Si le processus du logiciel de téléchargement existe (« SABnzbd » ou « Transmissions » par exemple) alors on quitte le logiciel de téléchargement.
2 – On stock le nom du VPN (« Giganews » dans mon exemple) dans la variable VpnConnexion.
3 – Si le VPN est connecté alors on le quitte.
Partie 3.2 : Enregistrement du script Stop_FuckHadopi
Une fois que vous avez taper votre code, il faut sauvegarder votre script, mais pas n’importe comment !
Enregistrez le Script sur votre bureau dans en premier temps, en faisant « Enregistrer Sous » (donnez lui le nom Stop_FuckHadopi puis sélectionner « Application » pour le format de fichier. Ne cochez AUCUNE option.
Vous devez obtenir quelque chose comme ça
Cliquez sur »Enregistrer ».
FIN : Déplacez les deux scripts dans le bon répertoire
Maintenant, nous allons déplacer les deux scripts « Start_FuckHadopi » et « Stop_FuckHadopi » qui se trouvent sur le bureau, vers le répertoire de destination « Macintosh HD / Utilisateurs / votrecompte / Bibliothèque / Scripts ».
VOILA C’EST FINI !
Taille : Environ 50 kb
Ouvrez les deux fichiers avec l’Editeur AppleScript et remplacez tous les éléments comme indiqué dans le tuto ci-dessus (Sabnzbd et Giganews)
[quicktime width="600" height="400"]http://www.geekunivers.com/wp-content/Video/fuckhadopi.mov[/quicktime]

























Tout simplement énorme ce tuto ! 0_0 En plus j’ai tout compris !
Merci
Haaaaaa c’te truc de malade ! j’imagine meme pas le temps que tu as mis pour faire un tuto pareil. Les mots me manquent pour te remercier. c’est trop bon ! Yiiiihaaaaa tu m’as trop donné envie de mettre à apple script. Ca déchire.
@+ pikachu
Je ne trouve tout simplement pas les mots pour exprimer ma gratitude! à diffuser très largement car vraiment d’utilité publique! Fuck_Hadopi forever!!!!
Sympa comme tout ! Fonctionne tres bien également avec ipjetable.net.
En revanche un scirpt pour les VPN telque vpntunnel.se (connection au VPN via une Application tierce serait la bienvenue !
Merci à tous pour vos gentils mots. ^^ J’espère que ce script vous sera d’une grande utilité.
@wuming Ouais pourquoi pas. Si j’ai le temps je ferai une application en cocoa pour gérer tout le truc en quelques clics.
Le nom « giganews » on le remplace par le nom de la configuration des prefs réseau ou par le nom figurant dans l’adresse du serveur ? j’ai un doute!! Super truc en tout cas. Merci
@Janyer Tu remplaces « Giganews » par le nom de ton VPN que tu as choisi dans tes préférences systemes.
Va dans.. « Préférences système »… puis « Réseau ».. Dans la liste de gauche tu trouveras « Ethernet », « PPPOE », « Airport »..etc.. regarde le nom que tu as choisi pour ton VPN à cet endroit.. Surtout vérifie bien la casse.. exemple: « MonVPN ».. c’est différent de « monvpn »..
Voila
OK ! c’est bon. Encore merci .
salut ludo,
merci ton tuto très précis. Mais j’ai un énorme problème. Quand j’active ton script, l’application transmission revient tout le temps au premier plan. Je pas travailler correctement du coup
il y aurait pas quelques lignes à ajouter ?
Salut Dylan et merci pour l’intérêt que tu portes à mon petit script !
Pour répondre à ta question, je te conseille de regarder la vidéo de klakinoumi au sujet de ce script.
http://www.klakinoumi.com/2010/11/08/un-script-pour-la-reconnexion-et-le-monitoring-dune-connexion-vpn/
En fait il faut copier/coller le code dans une nouvelle fenêtre Applescript comme l’explique klaki. Si tu as toujours le problème, je regarderai à modifier le script pour virer ce problème.
Bonjour et merci pour ce script qui correspond bien à ce que je cherchais. Mon problème est que je n’ai pas fait de réglage réseau spécifique (et aucun besoin d’en faire) avec le logiciel que j’utilise (TunnelBlick), je garde mon IP fourni par mon routeur pour les connexions en local et j’ai bien une IP fournie par mon serveur Openvpn pour les échanges sur le web, la seule trace de VPN que je trouve dans mes préférences réseau est le DNS qui est changé. Pourrais-tu m’aider ? merci d’avance
Bonjour christian ! Je n’ai pas testé le script avec un logiciel VPN en particulier. Cependant tu peux regarder de son côté pour voir s’il donne un nom à la connexion VPN. Si c’est le cas, ajoute ce nom là dans le script en suivant le tuto.
Au pire, tu peux reprendre les données indiquées par ton soft VPN (login, password et port) et les mettre dans une nouvelle connexion VPN dans les préférences réseaux de ton Mac.
De mon côté, je vais regarder si je peux modifier le script afin d’utiliser un logiciel tiers pour les connexions VPN.
Merci pour ta réponse. J’ai testé tout ça, résultat pas terrible a) modification du script ; je ne suis pas arrivé a grand-chose, voici les modifs que j’ai essayées : tell application « System Events »
tell application « Tunnelblick.app »
set VpnConnexion to the service « Psilo-EUR-P2P » AppleScript me répond « fin de ligne prévue, mais » » » trouvée. D’autre part, peut-on récupérer l’état d’un logiciel si aucun dictionnaire Apple script n’est disponible ?
b) connexion réseau ; je me suis battu avec cette possibilité et j’ai bloqué sur les certificats fournis par mon VPN qui refusent d’apparaître dans « mes certificats » au niveau du trousseau, malgré des modifications dans tous les sens.
Je vais continuer à chercher, merci
@Christian L’état du soft est bel et bien récupéré, le dico apple Script est par défaut sur le système. Par contre, lorsque j’ai fait le script j’ai remarqué que l’éditeur AppleScript m’avertissait d’erreurs qui étaient inexistantes ! Tout cela parce que j’avais installé XCODE. Une fois ce dernier viré de mon Mac, il n’y avait plus d’erreur.
Dans ta solution A, tu fais appel à l’application Tunnelblick, saches qu’en faisant cela, tu devras modifier en profondeur le script (chose que je suis en train de faire en ce moment) afin que le soft de Téléchargement coupe si le VPN tombe (service ou crash du soft). Tu appelles une 2ème application (tunnelblick) alors que dans mon script j’en appelais qu’une seule (soft de téléchargement)
Dans ton exemple « Psilo-EUR-P2P » est-il le nom du VPN une fois TunnelBlick lancé ou est-ce le nom de ta connexion VPN que tu as créé dans les préfs système ?
Ludo « Psilo-EUR-P2P » est la seule chose qui pourrait ressembler à un nom au niveau de TunnelBlick. Je fatigue un peu et comme je voie que tu travailles là-dessus, je crois que je vais laisser faire ceux qui savent et attendre des news de ton blog. À bientôt
Sympa et très bien pour le 10.6, malheureusement en ce moment je n’ai plus qu’un PBG4 sous 10.4.11, l’autre est parti en réparation. L’ennui il est impossible à utiliser sous 10.4.x ;_;
Auriez-vous des connaissances pour les modifier et qu’ils soient utilisable sous cet excellent système. Merci
@Jean Bonjour, malheureusement je ne peux te dire si cela fonctionne sous 10.4.x car je n’ai aucune machine sous cette version de Mac OS. Toutefois, le code est distribué librement, tu peux donc, si tu le souhaites le modifier à tes souhaits.
Il n’y a aucune licence sur ce code, tu peux donc le triturer, l’améliorer, le distribuer, bref tout ce que tu veux. ^^
En ce moment, je suis en train de réfléchir à une amélioration du script, notamment sur Mac OSX Lion que j’ai installé il y a qq jours. Avec un peu de temps, peut-être en ferais-je une application à part entière.. qui sait..
Bonjour Ludo, en modifiant un autre script et grâce à un contributeur de MacBidouille, j’ai une application qui marche sans trop de problème sous 10.4. Sous 10.6, j’ai fait un script avec des bouts de code ramassés à droite et à gauche et de l’aide. Tout d’abord c’est une application Applescript qui a la particularité de se reposer ( 15′, 30′ ou 1h) toutes les 4 à 6 coupures d’affilées, ce qui arrivent assez souvent avec mon VPN. Comme c’est une application, on peut la quitter dans le dock sans problème et elle peut faire marcher 2 logiciels en même temps. Si cela t’intéresse ?
le script marche très bien chez moi sur Lion. merci pour ce que tu fais pour nous. j’adore tes tutos.. continue comme ça Angelo
Bonsoir Ludo,
Tout d’abord merci pour ce script qui est très bien pensé ! Tout comme Christian, j’utilise l’application Tunnelblick car c’est uniquement ce que fournit VPNTunnel. Tu disais bosser sur une 2ème version du script, typiquement pour ces applications externes, l’aurais tu s’il te plaît terminée ?
Merci par avance et à bientôt
Merci
@Jay Je n’ai pas encore développé la 2eme version du script, mais j’ai déjà noté les choses que j’allais modifier/refaire. Comme tu as pu le lire dans mon dernier billet, je vais suivre 2 formations fin septembre et début octobre (Formation Objective-C et développement iphone/ipad). J’ai pour idée de transformer le script en véritable application (gratuite) avec notamment la possibilité de notification par mail (push).
@Giorgio7000 Mais de rien
Parfait Ludo, j’attends donc cela avec impatience. Merci pour ta réactivité ! A très bientôt
B r a v o !!! C’est juste parfait.
Merci
Excellementissime!!
Merci beaucoup pour ce tuto super complet! Tu mériterais presque un bisous sur la fesse gauche!
@Calitof et @Francisandlili Merci beaucoup ! C’est trop, je vais rougir
Ravi de voir que le script correspond à votre attente, mais sachez qu’il y aura bientôt des modifications car je compte le transformer en application (gratuite) sur Mac.
Par contre, cela va me demander un peu plus de temps car je vais faire une formation Objective-C et développement iPhone/iPad à la fin de ce mois
Petite information, je suis en train de transformer le script en véritable petite application..
En cours de développement…
Bonjour. Merci pour ce tuto.
2 questions : 1) est-ce qu’on peut e servir de ce script avec safari juste pour surfer anonymement ? Si oui, quelle est la syntaxe à utiliser pour « appeler » safari dans le script ? 2) est ce que le VPN est vraiment utile pour les newsgroup si on utilise une connexion crypter en SSL comme celle de Giganews Diamond ? (au pire on verra que notre IP télécharge, mais on ne saura pas quoi) Merci.
Petite précision : j’ai remarqué qu’après une mise en veille, l’icone du VPN semblait toujours active, or ca n’était plus le cas. Quelques secondes plus tard, l’icône se met à jour et indique que la connexion VPN a sauté. Est-ce que le script prend en compte cela pendant ce petit laps de temps ? N’y a t il pas un risque de renvoyer notre vrai IP à cet instant ?
@starsys Merci d’être passé par mon Blog !
Bon je vais tâcher de bien répondre à tes questions.
1) Pas besoin de script pour naviguer en mode sécurisé sur le net. En fait dès que tu lances le petit script que j’ai proposé, le VPN se lance..ainsi que le soft de téléchargement. Il suffit de mettre tes téléchargements en pause afin de surfer confortablement sur le net de manière sécurisée. Ou alors, il suffit simplement que tu baisses le débit de téléchargement dans les préférences de ton logiciel de téléchargement. Aujourd’hui, quasi tous les softs de téléchargements proposent cette fonctionnalité
2) Oui c’est utile pour les Newsgroups mais pas nécessaire. Personnellement je préconise l’utilisation du SSL + VPN.. 2 sécurités valent mieux qu’une
Question 3) celle de ton 2eme commentaire Il n’y pas de risque d’envoyer l’IP en clair, car en fait qd le VPN est désactivé (pourtant l’icone peut sembler dire le contraire), cela coupe le téléchargement. Il n’y a pas donc pas de risque. Toutefois, je suis en train de mettre à jour le script, car j’ai recu 1 ou 2 mails de personnes qui avaient des soucis sous Mac OS Lion.
La mise à jour du tuto est pour bientôt, en fait, cela ne sera plus un script mais une application à part entière.. Encore un peu de patience donc..
J’espère que j’ai bien répondu à tes questions, si tu en as d’autres, n’hésites pas à poster un commentaire ici
Merci pour tes réponses. Je suis d’accord avec toi pour l’aspect « téléchargement ». Par contre, je suis surtout intéressé par ton script pour surfer anonymement. Je suis sous Mac OS X Lion et j’aimerai empêcher toute navigation internet tant que le VPN n’est pas actif. Est-ce possible avec ton script ? Le soucis que j’ai actuellement, c’est qu’après chaque mise en veille le VPN se déconnecte et si je ne fais pas attention et que je surfe sans prendre garde au statut du VPN, j’ai le risque de démarrer ma navigation avec mon IP privée.
@Starsys Oui c’est possible en modifiant légèrement le script. Il suffit de remplacer le nom du logiciel de téléchargement par le nom de ton navigateur (ex: Safari), et le tour est joué.
Si l’ordinateur est en veille, c’est que tu n’es pas devant. Il suffit donc de fermer le script avant de partir. Dès que tu reviens sur l’ordi, ce dernier sort de sa mise en veille, il te suffira alors de lancer simplement Safari pour que le VPN se lance automatiquement.
Toutefois, je vais tenter de modifier le script pour la mise en veille. Mais je ne pourrais pas faire cela cette semaine car j’ai énormément de boulot. Si tu es pressé, tu peux essayer de le faire par toi-même. Le script est ouvert et libre, j’autorise toutes modifications et diffusions, tu en fais ce que tu veux.
Ok merci.
je suis tout nouveau sous Mac donc je ne vais m’aventurer tout de suite dans la rédaction de scripts ! J’ai bien d’autres choses à découvrir avant. Merci.
hello et merci pour ce super script ! où en est le dev de ton application ? je passe aussi par tunnelblick et j’ai pas les compétences pour adapter ton script…
Salut,
j’utilise ton script depuis maintenant 1 semaine et je te félicite, ça simplifie pas mal la gestion des connections, encore bravo !
Par contre, comme un utilisateur l’avait déjà remonté il y a un bout de temps, il est vrai que parfois, lorsqu’on lance le script de Stop, 10 secondes après le Start se relance tout seul, ce qui peut être un peu agaçant.
De mon côté ce que j’ai fait:
Vu que tu as mis un return de 10 dans le start, j’ai rajouté un return de 15 à la fin du Stop;
et dans le Start j’ai rajouté au début le code suivant:
Je ne sais pas si à la base le problème était que j’avais plusieurs Start lancés en même temps, mais maintenant le Stop coupe la connec et elle ne se relance pas toute seule.
En espérant que ça aide quelqu’un,
encore merci !
Top ce script ! est ce que c’est possible que je le rajoute sur mon site http://vpngratuit.fr ? merci
@Burt Oui c’est en cours.. mais vu le boulot que j’ai en ce moment il faudra être encore un peu patient..
@Cous Très sympa l’ajout de code que tu as fait. Bravo !
@Alex Pas de problème, le script est là pour aider, vous pouvez le modifier, le trifouiller, etc. Si tu pouvais ajouter un lien vers mon billet lorsque tu le placeras sur ton site, ça serait sympa
Merci beaucoup pour ce script!! Je viens de recevoir le 2eme avertissement de nos amis de chez HADOPI, j’espere que ça pourra m’éviter de recevoir le 3eme et dernier….. En tout cas merci encore de ton aide En attendant ton appli
@Stef Mais de rien ! J’espère également qu’ils te foutront la paix !