View previous topic :: View next topic |
Author |
Message |
Magic Banana Veteran
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Sun Jan 06, 2008 8:11 pm Post subject: [SCRIPT] Télécharger un album PicasaWeb |
|
|
[malife]
J'ai réussi à faire comprendre à ma mère qu'il existe des manières plus propres de partager ses photos de Noël que de remplir les boîtes mail de ses contacts. Elle a donc maintenant une "galerie" PicasaWeb qu'elle alimente via F-Spot. Elle a tellement eu de succès avec sa "nouvelle" approche que le reste de la famille s'y est mis aussi. Maintenant elle voudrait pouvoir télécharger l'ensemble des photos d'un album sans avoir à les regarder une à une.
[/malife]
Google restreint le téléchargement d'albums entiers aux utilisateurs de son logiciel propriétaire (et uniquement disponible sous Windows) Picasa. Après une petite recherche, j'ai découvert que d'autres utilisateurs se sont penchés sur ce problème avant moi. J'ai ainsi déniché un script bash incorrect qui nécessite un parseur XML en dépendance (bin voyons... ) et un programme en C# (il y a des claques qui se perdent) qui, malgré certains problèmes (impossible de télécharger un album "privé"), semble fonctionner dans l'environnement Mono. Rien qui ne me satisfasse vraiment en somme ! En outre, tous deux prennent en entrée l'adresse du fil RSS (plutôt que directement l'adresse de l'album) et ne permettent pas de télécharger d'un coup tous les albums publiques d'un utilisateurs.
Je me suis donc penché sur le code des pages PicasaWeb et ai vite compris qu'il n'allait pas être bien compliqué de faire tout cela en quelques lignes de bash et sans aucune dépendances (les commandes les plus compliquées que j'utilise sont wget et grep !). Voilà le résultat :
/usr/bin/picasaweb-download: | #!/bin/bash
# Distributed under the terms of the GNU General Public License v3 or later
# AUTHOR: Loïc Cerf
# e-mail: magicbanana@gmail.com
WGET_OPT="-q -T 180 -t 3 -c"
EX_USAGE=64
EX_NOHOST=68
if [ -z "$1" -o "$1" = "--help" -o "$1" = "-h" ]
then
echo "Usage: $0 url [destination]"
exit
fi
page=${1#*picasaweb.google.*/}
if [ "$page" = "$1" ]
then
echo "\"$1\" is not the URL of a PicasaWeb album or gallery" 1>&2
exit $EX_USAGE
fi
temp=`mktemp`
if wget $WGET_OPT -O $temp "$1"
then
finalPage=${page#*/}
if [ -z "$finalPage" -o "$finalPage" = "$page" ]
then
# $temp is a gallery
if [ -z "$2" ]
then
destination=`grep -m 1 "^var _user" $temp`
destination=${destination##*nickname:\"}
set "$1" "${destination%%\"*}"
fi
mkdir -p "$2"
cd "$2"
grep -E -o "$1"[/]?[[:alnum:]:.%~_-]+ $temp | sort | uniq |
while read album
do
"$0" $album &
done
else
# $temp is an album
if [ -z "$2" ]
then
destination=`grep -m 1 "^var _album" $temp`
destination=${destination##*title:\"}
set "$1" "${destination%%\"*}"
fi
grep -E -o {id:\"[0-9]+\",s:\"[[:alnum:]:\\.%~_-]+ $temp |
while read picture
do
picture=${picture##*\"}
picture=${picture/\x2Fs144/}
wget $WGET_OPT -P "$2" ${picture//\x2F//} &
done
fi
else
exit $EX_NOHOST
fi
rm $temp
|
L'utilisation de ce script est très simple : picasaweb-download URL [destination]
L'URL peut être soit celle d'un album (du type http://picasaweb.google.com/UTILISATEUR/ALBUM ou http://picasaweb.google.com/UTILISATEUR/ALBUM?authkey=XXXXXXXXXXX) soit celle d'une galerie entière (du type http://picasaweb.google.com/UTILISATEUR).
La destination est un nom de répertoire (existant ou non) facultatif. Si elle est absente, l'album (respectivement la galerie) sera téléchargé dans un répertoire portant son titre (respectivement le nom de l'auteur). Dans le cas d'une galerie, chaque album est téléchargé dans un sous-répertoire portant son nom.
Il est indispensable que ce script soit dans un répertoire de la variable PATH (typiquement /usr/bin) pour le téléchargement d'une galerie.
Obtenez les permissions root :
Obtenir les permissions root: | $ su |
Ouvrez votre éditeur de texte préféré (ici gedit) sur un nouveau fichier dans un répertoire de la variable PATH (ici /usr/bin) :
Éditer /usr/bin/picasaweb-download: | # gedit /usr/bin/picasaweb-download |
Copier-coller le code du script dans votre éditeur de texte. Fermez-le, puis rendez le script exécutable :
Rendre /usr/bin/picasaweb-download exécutable: | # chmod 755 /usr/bin/picasaweb-download |
Tout retour d'expérience (même positif ) serait apprécié !
Last edited by Magic Banana on Wed Jan 16, 2008 9:49 pm; edited 2 times in total |
|
Back to top |
|
|
DidgeriDude Guru
Joined: 30 Jan 2005 Posts: 349
|
Posted: Wed Jan 09, 2008 3:47 pm Post subject: |
|
|
Un seul mot : Excellent !
Par contre, je n'ai pas testé sur un album privé... |
|
Back to top |
|
|
Magic Banana Veteran
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Wed Jan 09, 2008 8:48 pm Post subject: |
|
|
DidgeriDude wrote: | Un seul mot : Excellent ! |
Merci. |
|
Back to top |
|
|
Magic Banana Veteran
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Wed Jan 09, 2008 10:02 pm Post subject: |
|
|
Un album PicasaWeb qui intéressera les fans de KDE :
Télécharger l'album PicasaWeb KDE 4.0.0: | $ picasaweb-download http://picasaweb.google.com/mmauder/KDE400 |
Les images de cet album sont en 1600x1000. Les charger une à une dans son navigateur prend une petite éternité. Une raison supplémentaire d'utiliser picasaweb-download : télécharge maintenant et fait toi plus tard un diaporama dans d'excellentes conditions ! |
|
Back to top |
|
|
gregool Guru
Joined: 26 Nov 2007 Posts: 336 Location: Lille
|
Posted: Thu Jan 10, 2008 12:05 pm Post subject: |
|
|
excellent !
alors la c'est terrible ce truc!
merci a toi pour ce super boulot ! |
|
Back to top |
|
|
Magic Banana Veteran
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Thu Jan 10, 2008 2:22 pm Post subject: |
|
|
De rien.
Ce n'est pas grand chose. Des wget, quelques grep et le tour était joué. |
|
Back to top |
|
|
Mickael Advocate
Joined: 05 Sep 2005 Posts: 2387 Location: ~Belfort! - France - EU
|
Posted: Fri Jan 11, 2008 8:08 am Post subject: |
|
|
C'est excellent banane, change ton nom en Magic bash _________________ À LIRE : COMMENT POSTER ET OBTENIR DE L'AIDE ?
Qui suis-je ? Bon j'ai relu, comme d'habitude, je suis bon a rien le vendredi
Qui suis-je ? Je ne serai jamais modo |
|
Back to top |
|
|
gregool Guru
Joined: 26 Nov 2007 Posts: 336 Location: Lille
|
Posted: Fri Jan 11, 2008 8:45 am Post subject: |
|
|
j'ai testé plusieurs téléchargments d'album, aucun soucis, ça marche au poil ! |
|
Back to top |
|
|
Magic Banana Veteran
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Fri Jan 11, 2008 1:27 pm Post subject: |
|
|
Merci encore pour vos compliments. |
|
Back to top |
|
|
Magic Banana Veteran
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Sat Jan 12, 2008 11:14 pm Post subject: |
|
|
Je me suis permis d'apporter quelques modifications à mon script en éditant directement le premier message de ce thread. Il y avait en effet deux problèmes mineurs dans la version précédente :
* Le téléchargement d'une galerie complète ne fonctionnait pas si l'URL était donnée avec un / final. C'est corrigé.
* Les titres d'album (et probablement aussi les noms d'utilisateur) trop longs était tronqué dans le champ <title>. J'utilise maintenant les variables _user et _album. Plus de problème.
Je serai content d'avoir de nouveaux retours. |
|
Back to top |
|
|
math_roc n00b
Joined: 07 Jan 2006 Posts: 65
|
Posted: Mon Jan 14, 2008 10:09 am Post subject: |
|
|
j'viens de tester sur l'album de kde, ça marche parfaitement ^^
thx |
|
Back to top |
|
|
Magic Banana Veteran
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Wed Jan 16, 2008 10:40 pm Post subject: |
|
|
Le Logiciel Libre c'est le Bien ! Un utilisateur, nommé Peter Woulfenberg, vient de m'envoyer un e-mail pour me suggérer une amélioration à la fois simple et très maligne. Elle tient en un caractère : '&'. Placé en fin de la ligne téléchargeant une photo, il lance cette commande en arrière plan. Ainsi, le script continue et commence le téléchargement des photos restantes. En suivant la même idée, j'ai fait la même modification pour télécharger plusieurs albums en parallèle. Le script est maintenant plus rapide que l'éclair. Remerciez Peter pour ces performances. Remercier aussi le Logiciel Libre. En effet, si ce logiciel était propriétaire, vous seriez condamné à des performance médiocres.
Essayez seulement la nouvelle version et vous comprendrez ! J'ai directement fait les modifications sur le premier message de ce thread.
Je ne suis pas trop sûr mais je pense que le script est maintenant soumis à une limite liée au nombre maximum de processus par utilisateur (il peut y en avoir autant que de photos à télécharger). Toute information à ce propos serait la bienvenue. |
|
Back to top |
|
|
didzzzz n00b
Joined: 01 May 2007 Posts: 9
|
Posted: Thu Oct 09, 2008 8:32 pm Post subject: |
|
|
Bonjour,
Le téléchargement des photos provenant de Picasa est une tache fastidieuse que j'avais remise à plus tard. Mais en trouvant cette astuce, il me fallait essayé.
J'ai donc tenté de récupérer l'album photo de kde4, malheureusement sans succès. Le script tourne en boucle pendant un court instant mais rien ne se produit. Malgré la simplicité d'installation, j'ai certainement oublié quelque chose. |
|
Back to top |
|
|
Magic Banana Veteran
Joined: 13 Dec 2005 Posts: 1912 Location: Belo Horizonte, Minas Gerais, Brasil
|
Posted: Thu Oct 09, 2008 9:20 pm Post subject: |
|
|
Dans les dernières semaines, Google a changé par deux fois le format des pages PicasaWeb. J'ai adapté ce script pour qu'il puisse fonctionner sur le nouveau format... et j'en ai profité pour ajouter de nouvelles fonctionnalités. Pour tout savoir (et pour télécharger la nouvelle version) : ça se passe dans cet article sur Blue GNU (en anglais).
C'est fou le succès de ce script (plus de 10000 lecteurs de l'article, sur Blue GNU, qui présentait la version précédente. Personellement, je n'utilise pas PicasaWeb (j'ai, au départ, écrit ce script pour ma mère).
Vous pensez que ça vaut la peine que je traduise en français le nouvel article pour ce forum ? |
|
Back to top |
|
|
kwenspc Advocate
Joined: 21 Sep 2003 Posts: 4954
|
Posted: Fri Oct 10, 2008 10:42 am Post subject: |
|
|
Magic Banana wrote: |
Vous pensez que ça vaut la peine que je traduise en français le nouvel article pour ce forum ? |
Oui, même pas besoin de poser la question _________________ membre officieux du SAV Ati GEntoo |
|
Back to top |
|
|
|