gget
Encore un de mes petits outils. Les Windowsiens ne savent pas combien la ligne de commande peut être rapide et puissante comparé aux cliquodrômes graphiques ! Depuis que j'ai découvert "wget" (téléchargement en ligne de commande) il y a quelques années, je ne peux plus m'en passer. Principalement pour une bonne raison : la reprise après arrêt. Comme Firefox en son temps, il permet de stopper le téléchargement et de le reprendre après (surtout en cas d'échec ou de coupure réseau). wget (comme curl) supporte plein de protocoles et d'options (http, https, ftp, login...), mais il y a une fonctionnalité manquante : le téléchargement en parallèle.
Certains sites limitent la bande passante par connexion, mais pas par IP, donc si on utilise plusieurs connexions, on augmente la bande passante totale !
J'aurais aimé implémenter cette fonctionnalité directement dans wget et/ou curl, mais ils sont vraiment gros et c'est une modification assez intrusive. Donc, j'ai créé gget. gget est assez petit (~500 C loc), il est basé sur libcurl et supporte seulement HTTP sans authentification. Les principales fonctionnalités sont :
- Téléchargement en parallèle (3 connexions par défaut)
- Reprise après arrêt (par défaut)
- Limitation de la bande passante (optionnelle)
- Possibilité de définir son "user agent" (identification du navigateur)
Le code source est disponible sur ma forge sous licence GPLv3. Il y a une version compilée pour Linux.
J'ai ajouté le support pour Windows, il compile parfaitement avec mingw64, mais plante à l'exécution... J'ai abandonné après m'être battu plusieurs jours sous Windows avec CodeBlocks et DevCPP. C'est un système détestable pour faire du développement hors Visual C++ !! Si quelqu'un souhaite proposer un correctif, il est le bienvenu !