Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SCRIPT] Télécharger un album PicasaWeb
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Sun Jan 06, 2008 8:11 pm    Post subject: [SCRIPT] Télécharger un album PicasaWeb Reply with quote

[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. :D 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... :roll: ) 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 :lol: ) serait apprécié !


Last edited by Magic Banana on Wed Jan 16, 2008 9:49 pm; edited 2 times in total
Back to top
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 349

PostPosted: Wed Jan 09, 2008 3:47 pm    Post subject: Reply with quote

Un seul mot : Excellent !

Par contre, je n'ai pas testé sur un album privé...
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Wed Jan 09, 2008 8:48 pm    Post subject: Reply with quote

DidgeriDude wrote:
Un seul mot : Excellent !


Merci. :oops:
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Wed Jan 09, 2008 10:02 pm    Post subject: Reply with quote

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 ! :D
Back to top
View user's profile Send private message
gregool
Guru
Guru


Joined: 26 Nov 2007
Posts: 336
Location: Lille

PostPosted: Thu Jan 10, 2008 12:05 pm    Post subject: Reply with quote

excellent !

alors la c'est terrible ce truc!

merci a toi pour ce super boulot !
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Thu Jan 10, 2008 2:22 pm    Post subject: Reply with quote

De rien. :oops:

Ce n'est pas grand chose. Des wget, quelques grep et le tour était joué. :wink:
Back to top
View user's profile Send private message
Mickael
Advocate
Advocate


Joined: 05 Sep 2005
Posts: 2387
Location: ~Belfort! - France - EU

PostPosted: Fri Jan 11, 2008 8:08 am    Post subject: Reply with quote

C'est excellent banane, :wink: change ton nom en Magic bash :roll:
_________________
À 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
View user's profile Send private message
gregool
Guru
Guru


Joined: 26 Nov 2007
Posts: 336
Location: Lille

PostPosted: Fri Jan 11, 2008 8:45 am    Post subject: Reply with quote

j'ai testé plusieurs téléchargments d'album, aucun soucis, ça marche au poil !
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Fri Jan 11, 2008 1:27 pm    Post subject: Reply with quote

Merci encore pour vos compliments. :oops:
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Sat Jan 12, 2008 11:14 pm    Post subject: Reply with quote

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
View user's profile Send private message
math_roc
n00b
n00b


Joined: 07 Jan 2006
Posts: 65

PostPosted: Mon Jan 14, 2008 10:09 am    Post subject: Reply with quote

j'viens de tester sur l'album de kde, ça marche parfaitement ^^

thx ;)
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Wed Jan 16, 2008 10:40 pm    Post subject: Reply with quote

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
View user's profile Send private message
didzzzz
n00b
n00b


Joined: 01 May 2007
Posts: 9

PostPosted: Thu Oct 09, 2008 8:32 pm    Post subject: Reply with quote

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
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Thu Oct 09, 2008 9:20 pm    Post subject: Reply with quote

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). :lol:

Vous pensez que ça vaut la peine que je traduise en français le nouvel article pour ce forum ?
Back to top
View user's profile Send private message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Fri Oct 10, 2008 10:42 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum