2012/06/14(木) [n年前の日記]
#2 [web] Picasaウェブアルバムにアップロードした画像をローカルにダウンロードしようとしてハマる
Picasaウェブアルバムにアップロードした画像を、アルバム単位(フォルダ単位)でダウンロードしようとしたら、方法が分からなくて困ったり。1ファイルずつ表示してダウンロードすることはできるらしいが…。何十枚もあったら、とてもやってられない。
調べたところ、Picasa (Picasaウェブアルバムじゃなくて、ローカルで動作するPicasaというアプリのほう) をインストールしないと、アルバム単位でダウンロードできないようで。…何だその仕様。呆れた。
たしか以前、Picasaをインストールした際は、バックグラウンドでゴソゴソとファイル検索してるから処理は重くなるわ、監視しないでほしいフォルダも平気で監視対象にするわで、ウンザリした記憶もあり。だから、できればインストールしたくない。しかし、それしか手が無いのでは仕方ない。
インストールして、アルバム単位でダウンロードしてみたが、ファイル名を見て目が点に。日本語ファイル名が全部文字化け。というか、おそらくはURLエンコードされた状態になっている。英語圏で作られているソフトだろうから、仕方ないのかなあ…。
解決策を調べてみたが見当たらず。1年前にバグ報告されているのにガン無視っぽい。ダメだこりゃ…。サービスもダメなら、ソフトもダメだ…。
仕方ないので、ファイル名を変換するRubyスクリプトを書いた。
とりあえず、今後は、Picasaウェブアルバムも、Picasaも、使わないことにしたい。アップロードはすんなり出来るけど、ダウンロードは面倒臭いなんて、性質が悪いように思う。まるでブラックホールじゃないか。
調べたところ、Picasa (Picasaウェブアルバムじゃなくて、ローカルで動作するPicasaというアプリのほう) をインストールしないと、アルバム単位でダウンロードできないようで。…何だその仕様。呆れた。
たしか以前、Picasaをインストールした際は、バックグラウンドでゴソゴソとファイル検索してるから処理は重くなるわ、監視しないでほしいフォルダも平気で監視対象にするわで、ウンザリした記憶もあり。だから、できればインストールしたくない。しかし、それしか手が無いのでは仕方ない。
インストールして、アルバム単位でダウンロードしてみたが、ファイル名を見て目が点に。日本語ファイル名が全部文字化け。というか、おそらくはURLエンコードされた状態になっている。英語圏で作られているソフトだろうから、仕方ないのかなあ…。
解決策を調べてみたが見当たらず。1年前にバグ報告されているのにガン無視っぽい。ダメだこりゃ…。サービスもダメなら、ソフトもダメだ…。
仕方ないので、ファイル名を変換するRubyスクリプトを書いた。
#!/usr/bin/ruby -Ks
#
# Picasaでアルバムダウンロードした際に
# 文字化けしてしまったファイル名を
# 元に戻すRubyスクリプト.
#
# * 元に戻しきれない場合もある.
# * 場合によっては、リネーム後のファイル名が衝突して途中で止まるかも
require 'cgi'
require 'kconv'
flist = Array.new
Dir::foreach('.') {|f|
next if File::ftype(f) != "file"
next unless f =~ /\.(gif|png|jpg)$/
if f.index("%") != nil
# 文字化けしてそうなファイル名
flist.push(f)
end
}
flist.each {|f|
fn = CGI.unescape(CGI.unescape(f))
fn = fn.tosjis
errfg = FALSE
begin
errfg = File.exist?(fn)
rescue
errfg = TRUE
end
if errfg
# 既にリネーム後のファイル名が存在するか、存在チェックすらできなかった
puts "Error : " + fn
else
File.rename(f, fn)
puts fn
end
}
カレントフォルダ内の gif,png,jpgファイルに対して、URLデコード(?)してファイル名をリネームするスクリプト。しかし、ある程度はそれらしくリネームできたけど、一部のファイル名が正しいファイル名に戻ってくれない。かなりあてにならない。が、手作業で全部直すよりマシかなと。おかしなファイル名だけ、手作業でリネームして済ませた。とりあえず、今後は、Picasaウェブアルバムも、Picasaも、使わないことにしたい。アップロードはすんなり出来るけど、ダウンロードは面倒臭いなんて、性質が悪いように思う。まるでブラックホールじゃないか。
[ ツッコむ ]
以上です。