• このエントリーをはてなブックマークに追加

ブログの画像はPicasaで管理しているので、コマンドラインからサクッと画像をアップロードできないかなと調べていたらいいものを発見した。

GoogleCL

環境

  • Windows 7
  • Python 2.7.3

GoogleCLとは

GoogleCLとは、コマンドラインからGoogleのサービスを利用するためのツール。

インストール

以下の3つが必要。

  • python 2.6
  • gdata-python-client(Google Data APIs Python Client Library)
  • googelcl(Command line tools for the Google Data APIs)

pythonのインストールは省略。

gdata python Clientのインストール

サイトから最新版をダウンロードしてきます。

  • https://code.google.com/p/gdata-python-client/
    • gdata-2.0.18.tar.gz

解凍してインストールする。

 $ tar zvxf gdata-2.0.18.tar.gz
 $ cd gdata-2.0.18
 $ python setup.py install

googleclのインストール

サイトから最新版をダウンロードしてきます。

  • https://code.google.com/p/googlecl/
    • googlecl-0.9.13.tar.gz

解凍してインストールする。

$ tar zvxf googlecl-0.9.13.tar.gz
$ cd googlecl-0.9.13
$ python setup.py install

とりあえず使ってみる

使い方はここに書いてある。

https://code.google.com/p/googlecl/wiki/Manual

サンプルで、google Calenderを利用してみる。コマンドプロンプトから

>python "C:\Python26\Scripts\google" calendar add "Lunch with Jim at noon tomorrow"

エラーした。無念。。。

Traceback (most recent call last):
  File "C:\Python26\Scripts\google", line 5, in <module>
    pkg_resources.run_script('googlecl==0.9.13', 'google')
  File "C:\Python26\lib\site-packages\setuptools-0.6c11-py2.6.egg\pkg_resources.py", line 489, in run_script
  File "C:\Python26\lib\site-packages\setuptools-0.6c11-py2.6.egg\pkg_resources.py", line 1207, in run_script
  File "c:\python26\lib\site-packages\googlecl-0.9.13-py2.6.egg\EGG-INFO\scripts\google", line 849, in <module>
    main()
  File "c:\python26\lib\site-packages\googlecl-0.9.13-py2.6.egg\EGG-INFO\scripts\google", line 835, in main
    run_once(options, args)
  File "c:\python26\lib\site-packages\googlecl-0.9.13-py2.6.egg\EGG-INFO\scripts\google", line 588, in run_once
    setattr(options, attr_name, safe_decode(attr, googlecl.TERMINAL_ENCODING))
  File "C:\Python26\lib\site-packages\googlecl-0.9.13-py2.6.egg\googlecl\__init__.py", line 261, in safe_decode
    return string.decode(current_encoding, errors)
LookupError: unknown encoding: cp65001

コマンドプロンプトのエンコードをUTF-8からShift-JISにしてみる。

chcp 932

これでうまくいく。

初回時、ブラウザが立ち上がり認証画面がでる。認証して、コマンドプロンプトに戻ってEnter.

Googleカレンダーで見てみると・・・。

おお!

Google Picasa に写真をアップロード

目的のGoogle Picasa に写真をアップロードする。 アップロードするためのコマンドは、”google picasa post”

# Futurismo アルバムに SnapCrab_NoName_2013-7-6_20-0-17_No-00.pngファイルをアップロード
 python "C:\Python26\Scripts\google" picasa post Futurismo SnapCrab_NoName_2013-7-6_20-0-17_No-00.png

やったー!成功だー  \(^o^)/

 batにまとめる

バッチスクリプトにすれば、もっとラクチンになるはず。ディレクトリ配下の画像をドラック&ドロップで送信。

@echo off
chcp 932
python "C:\Python26\Scripts\google" picasa post Futurismo "%*"

投稿したURLを取得するには、以下。

python "C:\Python26\Scripts\google" picasa list --fields=url-direct --query "SnapCrab_NoName_2013-7-6_20-0-17_No-00.png"

これを組み合わせて、投稿した画像をブログ用URLに変換する。

@echo off

chcp 932
set file=%*

rem Picasaに投稿
python "C:\Python26\Scripts\google" picasa post Futurismo "%file%"

rem URL取得
for /f "usebackq tokens=*" %%a in (`python "C:\Python26\Scripts\google" picasa list --fields=url-direct --query "%file:C:\Users\TSUNEMICHI\Desktop\=%"`) do @set x=%%a

rem 変換
echo "<img src="%x%" />"

pause

追記: 画像を投稿してから、しばらく時間が立たないと、URLの取得ができないようだ。正確な時間はまだわからない。

参考