[Mac] Apple Scriptを使って、FC2ブログに複数の画像ファイルを一括アップロードする方法

FC2 gazouupload applescript 01

Macから、FC2ブログに複数の画像ファイルを一括アップロードするには、Apple Scriptを使うと簡単です。

ファイルのアップロード速度もWindows用ツールのFC2Uploadと比べてかなり速く、ブログエディタからXML-RPCを通じてアップロードできない状況でも、複数の画像ファイルを比較的効率的にアップロードすることができます。

まず、Spotlightに「script」と入力してスクリプトエディタを起動。
以下のスクリプトをコピペします。




--管理画面のURL
property myURL : "http://admin.blog.fc2.com/control.php"

--ユーザ名、もしくは登録しているメールアドレスを入れる ※必ず書き換えてください
property myID : "メールアドレス"

--アップロード時に自動的にサムネイルを作成するか(offの場合は""にする)
property createThumb : "on"

--アップロード時に作成されるサムネイルのサイズ(幅・高さ)
property thumbWidth : 300
property thumbHeight : 400

--同名のファイルが既にある場合、上書きするかどうか
-- 上書きする場合は"force" 別名で保存する場合は"rename"にする
property overwrite : "force"


property msg2 : "終了しました。" as Unicode text
property msg3 : "ログインに失敗しました。" as Unicode text
property cookiePath : " ~/Library/Cookies/fc2uploader_cookie.txt" ----保存するcookieのパス

on open drop
	activate me
	set myPass to "ログインパスワード"
	
	----ログイン処理&Cookie保存
	set loginScript to "curl -d \"id=" & myID & "&pass=" & myPass & "&mode=admin&mode=logging&process=in\" -c " & cookiePath & " -L " & myURL & " | tail -n 300"
	set response_login to do shell script loginScript as string
	----パスワードの入力フォームがレスポンスに含まれていた場合、ログイン失敗と判定(ちょっとこのへんが微妙…)
	if response_login contains "input type=\"password\"" then
		beep
		display dialog msg3 with icon 0 buttons "OK" default button 1
		error number -128
	end if
	
	--POST時に送信するCRCの値を取得(コード中にタブ記号が含まれています)
	set getCrcScript to "curl -b " & cookiePath & " -d \"mode=control&process=upload\" -L " & myURL & " | grep 'name=\"crc\"' | sed 's/	*<input.*value=\"//' | sed 's/\".*'//"
	set returnedCrc to 1st paragraph of (do shell script getCrcScript as string)
	
	----メインループ
	repeat with theFile in drop
		tell application "Finder"
			set fPath to POSIX path of theFile as Unicode text
			set uploadScript to "curl -b " & cookiePath & " -F \"upfile[0]=@" & fPath & "\" -F thumb=" & createThumb
			set uploadScript to uploadScript & " -F width=" & thumbWidth & " -F height=" & thumbHeight & " -F overwrite=" & overwrite
			set uploadScript to uploadScript & " -F mode=control -F process=upload -F type=upload -F crc=" & returnedCrc & " -F insert=\"\" -L " & myURL
			do shell script uploadScript
		end tell
	end repeat
	beep
	display dialog msg2 default button 1 buttons "OK"
end open



以下のスクリプトはこちらで公開されているものを少し改変して、自動ログインするようにしたものです。

property myID : “メールアドレス”
set myPass to “ログインパスワード”

の部分を自分のFC2 IDに変更して下さい。

FC2 gazouupload applescript 02

ログイン情報を入力したら、アプリケーションとして保存します。
ファイルはアプリケーションフォルダに保存されるので、それをDockにドラッグ&ドロップ。

ファイルのアップロード方法

先程Dockに追加したアプリのアイコンに、アップロードしたファイルをドラッグ&ドロップするだけです。アップロードが完了すると、以下のポップアップが出現します。

FC2 gazouupload applescript 03

参考サイト