Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/10/2012, à 21:36

Zakhar

[dlfree] Téléchargez facilement avec dl.free.fr (aussi sur NAS)

Je fais un post à part, bien que j'aie déjà posté dans des discussions ailleurs.

J'ai réalisé un "petit" script qui permet de télécharger des listes de fichiers depuis dl.free.fr

Cas d'usage : votre cousin vous envoie ses vidéos HD de ses vacances, découpées (rar) en 10 fichiers de 1G, stockés sur dl.free.fr

Bien sûr, il y a d'autres outils qui font cela, ou vous pouvez passer du temps à cliquer sur les liens un par un...

Mais le script vous facilitera la vie !..

Entre autres fonctions :
- Vérification des liens
- Téléchargements sur la Freebox revolution (seedbox) -même si la Freebox est à distance !-
- Renommer/Récupérer des fichiers téléchargés sur la Freebox
- Fonctionne en parallèle
- **NOUVEAU** (à partir de la 2.5) Fonctionne sur un NAS (par ex. Synology, testé sur DS413j) pourvu que vous ayez bien sûr installé les coreutils et curl (voir post #3).
- ...

La documentation complète est là.

Le script est ici en version 2.5.

Installation :
-1) faire un clic droit sur le lien (script) ci-dessus, et le télécharger, par exemple sous le nom dlfree
-2) le rendre exécutable :

chmod +x dlfree

Usage :
dlfree [Options] Lien_dl_free
ou : dlfree [Options] Lien_Page_Web
ou : dlfree [Options] Fichier_de_liens
ou : dlfree -m|-p [Options] [Répertoire [Fichier_ou_Lien]]
ou : dlfree -r [Options] [Fichier_ou_Lien]
(voir aide)
P.S.: si vous avez simplement mis le fichier dans votre /home (donc pas un répertoire dans le PATH), on lance avec ./dlfree

DésInstallation :
Supprimez simplement le fichier téléchargé.

Dernière modification par Zakhar (Le 20/04/2013, à 10:42)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#2 Le 05/01/2013, à 16:35

Zakhar

Re : [dlfree] Téléchargez facilement avec dl.free.fr (aussi sur NAS)

Ce que le script ne fait pas :

- Il ne résout pas le captcha.
Les captchas ont été mis en place par Free pour préserver un peu de bande passante à ses propres clients.
Comme nous sommes dans un script, donc en mode texte, on ne sait rien faire de cette image.

... quand bien même cela serait possible de faire un automatisme, je me garderais bien de rendre publique la chose !..
Je suis client de Free, et je trouve naturel d'avoir une débit un peu plus gros que ceux qui sont abonnés ailleurs.

Et donc, comme le script ne peut pas traiter le captcha, lorsqu'il détecte cela il s'arrête avec un message disant que ce script n'est pas adapté si vous n'êtes pas client Free. Dans ce cas, utilisez simplement votre navigateur !


- Il ne permet pas d'aller "plus vite" qu'un téléchargement standard.

Le script ne fait rien de plus que votre navigateur lorsque vous cliquez sur le lien. Il a donc très exactement la même performance en terme de débit, le seul mérite est d'automatiser les choses et de vous éviter à avoir à rester planté devant l'écran et cliquer sur les liens 1 à 1.

Mais en aucun cas il ne permet d'aller "plus vite"  en terme de débit.

... quand bien même une telle chose serait possible, pour la même raison que ci-dessus vous ne pensez pas que je la rendrais publique !..
Précisément Free a bloqué ce genre de possibilité en limitant, pour un fichier donné, et une IP donnée à 1 seul téléchargement pour éviter les "accélérateurs" de download.

Par contre bien sûr, si vous avez une liste à télécharger, rien ne vous empêche de lancer plusieurs fois le script avec la même liste. A ce moment là, chaque terminal téléchargera un fichier différent (dans la limite prévue par Free). Cela n'est pas "tricher" puisque c'est exactement pareil que si vous cliquez successivement sur plusieurs lien sans attendre que leurs téléchargements soient finis.


- ce n'est pas une dll.
Réveillez vous, ici on est sur Linux !
Le nom du script vient du nom du site de free : dlfree

Avec un seul "L", et "dl" comme dans "DownLoad".

Donc à ceux qui me mettent des MP en parlant de dll... passez votre chemin ! tongue

Bien sûr, il est possible que mon script fonctionne sur Cygwin, mais je n'ai pas testé et ne compte pas le faire. Donc si c'est le cas... c'est un pur hasard... ou alors c'est peut-être qu'après tout il n'est pas si mal écrit, mais en tout cas je ne fournis aucun "support" sur Cygwin !

Par contre, si vous voulez le faire tourner sur un Synology, ou un truc du genre, je peux aider (à condition que vous vouliez bien mettre les mains dans le cambouis, parce que je n'ai aucun Synology pour tester).

Dernière modification par Zakhar (Le 24/01/2013, à 23:25)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#3 Le 05/01/2013, à 16:35

Zakhar

Re : [dlfree] Téléchargez facilement avec dl.free.fr (aussi sur NAS)

Fonctionnement sur Synology

L'intérêt de faire fonctionner le script sur le NAS est que celui-ci est allumé 24/24.
Cela vous permet donc de télécharger un ensemble de fichiers sans avoir à laisser votre PC allumé. Ca économise à la fois votre PC et de l'électricité !..

L'autre intérêt est que les fichiers résultat se trouvent déjà sur le NAS, pas besoin de les y transférer.
S'il s'agit d'une suite de .rar, vous pouvez directement les assembler sur le NAS.


Préparation
Pour que notre script fonctionne, il vous faut 2 paquets supplémentaires : les utilitaires GNU (coreutils) et le programme curl (libcurl).

Si vous ne l'avez pas déjà fait, il faut donc installer ipkg. Voir la page de la documentation Synology à ce propos.

Une fois ipkg installé selon la documentation ci-dessus et en fonction du type de processeur de votre NAS, vous devez installer les deux paquets supplémentaires.
Connectez-vous à votre NAS en root et faites:

ipkg install coreutils libcurl

Contournement d'un bug Synology
Depuis les récentes versions du système, ash ne parvient pas à détacher les commandes, même avec nohup et &
La conséquence est que si vous lancez le script (celui-ci ou un autre) puis qu'ensuite vous éteignez votre PC, le NAS va détecter que la session SSH a été fermée et va arrêter le script à la fin de la commande en cours.

Si votre téléchargement ne comporte qu'un seul fichier, ça ne pose pas de problème, mais si c'est une liste de fichiers... eh bien vous n'aurez en fait que le premier et pas les autres.
Si vous êtes souvent dans ce cas, la solution la plus simple (et offrant d'autres avantages) est d'utiliser screen.

Connectez-vous à votre NAS en root et faites:

ipkg install screen

Utilisation avec screen

Connectez-vous en SSH à votre NAS.
lancez screen.

screen

Lancez ensuite votre dlfree avec les options qui vous conviennent.
Une fois qu'il tourne, on détache screen avec la séquence de touches Ctrl-A suivi de D
Vous aurez un message que screen a été détaché.
Maintenant vous pouvez quitter votre SSH:

exit

... puis éteindre votre PC et aller vaquer à d'autres occupations, le NAS va s'occuper de tout !..

Lorsque vous revenez sur le NAS, vous pouvez récupérer votre session screen détachée ainsi :

screen -r

Vous verrez alors où il en est, si tout s'est bien terminé, ou dans le cas contraire un message d'erreur produit par le script.

Bonus avec screen

screen vous permet d'avoir plusieurs terminaux sans avoir à lancer autant de sessions SSH. Je vous laisse regarder l'ensemble des raccourcis pour cela.
Pour dlfree, cela nous permet par exemple de lancer celui-ci en parallèle (ça fonctionne aussi sur NAS !) de façon à faire plusieurs téléchargements en même temps si vous avez demandé à télécharger une liste de fichiers.

Pour cela, la manipulation de base consiste à ouvrir un autre terminal sous screen par la séquence : Ctrl-A suivi de C
Dans ce nouveau terminal, vous pouvez lancer la même commande que dans le premier terminal, auquel cas dlfree vous mettra un message sur les fichiers déjà en cours de téléchargement, et commencera à charger le suivant dans la liste.

Vous basculez d'une fenêtre de screen à l'autre avec Ctrl-A suivi du numéro de la fenêtre (0 à 9).

Dernière modification par Zakhar (Le 20/04/2013, à 10:31)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#4 Le 05/01/2013, à 16:35

Zakhar

Re : [dlfree] Téléchargez facilement avec dl.free.fr (aussi sur NAS)

Merci de ton retour netbja.

(cf ici http://forum.ubuntu-fr.org/viewtopic.ph … #p12093101)

L'idée d'utiliser les "escape" était la première façon de faire, mais c'est encore moins bien supporté que tput de ce que j'ai pu en tester.

Tu as peut-être vu/modifié le script, et constaté qu'il avait déjà un test pour savoir si on peut utiliser tput ou pas.
Lignes 164 à 177:

# --------------------------------------------------------------------------------------
# Contournement permettant par exemple d'utiliser le script via phpshell qui lance     |
# un terminal "basique" ne supportant pas tput.                                        |
# --------------------------------------------------------------------------------------
if tput sgr0 2>/dev/null; then 
  TPUT="tput"
else
  TPUT="nop"
fi

nop()
{
  :
}

Je vais tester avec SSH et screen pour voir ce que ça donne.

Par contre si le "bug" que tu remontes vient de putty, là je ne pourrais pas grand chose car je n'ai plus aucun Windows sous la main, et aucunement l'intention d'en réinstaller un... désolé !

Dernière modification par Zakhar (Le 05/01/2013, à 16:39)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#5 Le 05/01/2013, à 17:27

Zakhar

Re : [dlfree] Téléchargez facilement avec dl.free.fr (aussi sur NAS)

Le script est corrigé, il y avait bien un bug lors de l'utilisation avec screen.

Le lien dans le premier post pointe sur la version corrigée (2.2)

Cela dit netbja, je te conseille byobu (si tant est que putty ne casse pas son fonctionnement !), il est plus sympa que screen d'où il est issu. Notamment tu peux passer d'une console à l'autre avec F3/F4, sans avoir à revenir au script parent qui a lancé screen.

PS. : la correction consiste à détecter screen/byobu et à utiliser alors le "fallback" qui consiste à afficher en monochrome (ça marche partout !). Donc bien sûr, si tu préfères garder les couleurs, tu peux conserver ta propre modification, c'est l'intérêt du libre/open source... et je l'ai rendu "encore plus libre" en changeant de licence pour une WTFPL V2. wink

-----------------------------------------------
Changelog Version 2.2

  • Licence changée en WTFPL V2

  • Signalement d'un bug par netbja lors d'une utilisation avec screen
       (http://forum.ubuntu-fr.org/viewtopic.ph … #p12093101)
       Désormais, lancé avec screen ou byobu, le script fonctionne correctement
       les ecritures à l'écran se font en monochrome.

Dernière modification par Zakhar (Le 05/01/2013, à 17:28)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#6 Le 05/04/2013, à 21:24

Zakhar

Re : [dlfree] Téléchargez facilement avec dl.free.fr (aussi sur NAS)

Le script n'avait pas été mis à jour pour le firmware 1.1.9 ayant rajouté les CSRF, voila qui est donc fait.

-----------------------------------------------
Changelog Version 2.4

  • Rajout du CSRF (firmware 1.1.9) pour téléchargement par la Freebox.

  • La mention "Fichier déjà en cours de téléchargement" est réservée au téléchargement sur le PC lui-même. On ne l'affiche pas lorsqu'on vérifie où en est la Freebox (ie avec -rc ou -pc ou -mc)

-----------------------------------------------
Changelog Version 2.3

  • La taille du fichier à télécharger est désormais indiquée lorsqu'on utilise l'option -c. Cela permet, lors de la vérification, d'éviter d'entamer un téléchargement si certains fichiers de la liste sont soupçonnés "incomplets".

Dernière modification par Zakhar (Le 05/04/2013, à 22:54)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#7 Le 20/04/2013, à 10:23

Zakhar

Re : [dlfree] Téléchargez facilement avec dl.free.fr (aussi sur NAS)

Version majeure pour adaptation sur Synology (testé sur DS413j).

-----------------------------------------------
Changelog Version 2.5

  • Affichage plus "propre" sous screen

  • Adaptations pour ne pas planter si les commandes iconv et/ou file ne sont pas détectées. En effet, sur Synology iconv n'est pas packagé, et file existe dans les packages mais il provoque un segfault.

Dernière modification par Zakhar (Le 20/04/2013, à 10:25)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne