Alors comme personne ne semble daigner le faire... et puisque finalement c'était pas si dur, voici un petit script pour télécharger directement sur votre Freebox V6.
Cas d'usage :
- Cousin Antoine a fait un film de vacance.
- Il vous l'a sympathiquement découpé avec
rar en morceaux de 1G qu'il a mis sur dl.free
- Il vous a donné les liens qu'il a mis dans un joli fichier texte
- contenu de
liens_film_vacances_Antoine.txt
http://dl.free.fr/film_part1
http://dl.free.fr/film_part2
http://dl.free.fr/film_part3
http://dl.free.fr/film_part4
- Comme vous savez que ça va durer longtemps, vous voulez bien sûr profiter à fond de votre Freebox V6 et mettre les liens sur la Freebox de façon à pouvoir éteindre votre PC pendant que ça charge.
A- Méthode "bourrin qui sait pas se servir de la ligne de commande"
- Ouverture du fichier texte envoyé par cousin Antoine
- Ouverture du navigateur
- Lancement de
http://mafreebox.freebox.fr
- Connexion
- Navigation vers la page de téléchargement
- Copier ligne 1 du fichier
- Coller dans le navigateur
- Clic sur "Ajouter"
- Bascule vers fichier texte
- Copie ligne 2
- Bascule navigateur
- Coller
- Clic ajouter
- ... (etc)
- jusqu'à la dernière ligne du fichier !..
... en admettant que vous ne vous êtes pas trompé et n'en avez pas oublié en route avec toutes ces manipulations !.. :lol:
B- Méthode "élégante en ligne de commande"
Une fois pour toutes :
- Créez le script de téléchargement sur la freebox, par exemple
downFreebox.sh
#! /bin/bash
. freePasswd.sh
if [ -z "$1" ]; then
echo "Erreur : indiquez un fichier à télécharger"
exit 1
else
cookieFile=$( mktemp )
curl -c $cookieFile -d "login=freebox&passwd=$password" http://mafreebox.freebox.fr/login.php -o /dev/null -s || { err=$?; echo "Erreur connexion"; exit $err; }
curl -b $cookieFile -d "url=$1&user=freebox&method=download.http_add" http://mafreebox.freebox.fr/download.cgi -H 'X-Requested-With: XMLHttpRequest' -s || { err=$?; echo "Erreur download"; exit $err; }
rm $cookieFile 2>/dev/null
fi
Vous devez aussi créer un fichier contenant votre mot de passe de connexion et nommé
freePasswd.sh
password="Votre_mot_de_passe"
- Rendez les deux fichiers exécutables et sécurisez le fichier contenant le mot de passe (vous seul peut le lire/exécuter) :
chmod +x downFreebox.sh
chmod 500 freePasswd.sh
Et voila, maintenant vous avez un superbe script qui permet de donner des fichiers à télécharger à votre Freebox.
Ca marche comme ça :
./downFreebox.sh http://dl.free.fr/abcdefgh
Si cela réussit, vous aurez un code erreur 0 et un message du genre {"return":14}
(car c'est en fait du JSON)
Dans le cas contraire, vous aurez un code erreur non nul et un message d'erreur.
Et comme vous êtes un as de la ligne de commande, maintenant il ne vous reste plus qu'à faire un truc du genre :
for file in $(cat liens_film_vacances_Antoine.txt); do ./downFreebox.sh $file; done
... et voila, tout est sur votre Freebox
en une seule ligne de commande, vous pouvez éteindre votre PC et reprendre une activité normale !
Autre cas d'usage :
En réalité je fais ça pour ma mère, pour pouvoir lui envoyer plus facilement mes "films de vacance".
Au démarrage de son PC, elle récupère la liste des fichiers (par un autre moyen, par exemple un fichier partagé Ubuntu One).
Si la liste de fichiers est non vide, on lance le script ci-dessus.
Tout cela est dans un script un peu plus complet qui envoie aussi des notifications sur ce qu'il fait et qui rassemble automatiquement les fichiers si la Freebox a fini un téléchargement précédent.
Bien sûr ce cas d'usage là disparaîtra si Free ouvre la Freebox depuis l'extérieur et qu'on peut lui "uploader" des fichiers...
Mais cela étant une opération "risquée"... si Free ouvre la possibilité j'espère qu'ils sécuriseront suffisamment : contrôle d'accès, quota de disque, limite de bande passante, ban d'IP, etc...
Désinstallation :
Il vous suffit de supprimer le script et le fichier contenant votre mot de passe de connexion Freebox.
rm -f downFreebox.sh freePasswd.sh