neděle 27. ledna 2008

Jak uložit celou Picasa Web galerii

Nedávno nám známá poslala fotky z oslav narozenin naší dcery. Poslala neni to správné slovo, prostě nám příšel link na soukromou fotogalerii v jejím prostoru na Picase. Příjemné na prohlížení, nesnestielné na stahování. Google totiž do galerií zatím neimplementoval možnost stahnout všechny fotky naráz. Naštěstí ale řešení existuje. Přišel s ním Loïc Cerf v příspěvku A Bash Script to Quickly Download Entire PicasaWeb Albums na webu Blue GNU. Stažení za vás obstará kratičký script spustitelný z příkazové řádky.


Script má tuto podobu


#!/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="-nv -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

Jeho použití je velice snadné.


$ picasaweb-download http://picasaweb.google.com/adresa-vsech-galerii/



stahne všechny galerie.


$ picasaweb-download http://picasaweb.google.com/adresa-vsech-galerii/album/



stáhne konkrétní album.

Před spuštěním nazapomeňte nastavit práva souboru na spouštění a zápis. Uživatelé Windows mohou script spustit v prostředí Cygwin.

Žádné komentáře: