blog.textfile.org結城浩のブログ

blog.textfile.org

スクリーンショットの瞬間共有サービスGyazoを自サイトに設置

Gyazoとは

Gyazoは瞬間的にスクリーンショットを共有するサービス。

サーバとクライアントが両方オープンソースになっているので、自前のサーバに設置することもできる。

ソースコードは以下。

https://github.com/gyazo/

サーバ側 upload.cgi は以下。

https://github.com/gyazo/Gyazo/blob/master/Server/upload.cgi

クライアント側のスクリプトは以下。私はこれを gyazo.rb にリネームして改造して使っている。

https://github.com/gyazo/Gyazo/blob/master/Gyazo/script

処理の流れ

まずサーバ側では、CGIとしてupload.cgiを設置しておく。

クライアント側(Mac)でgyazo.rbを動かすと、 スクリーンショットを撮るモードにカーソルが変わるので画面を選択。

キャプチャした画像は自動的にGyazoのサーバにアップロードされる。 サーバのURLはgyazo.rbの中に書かれている。

サーバ側では、受け取った画像のMD5ハッシュ値を元にPNGのURLが作られ、 クライアント側にHTTPのレスポンスとして送り返す。

クライアント側は、そのレスポンスから共有される画像のURLを受け取り、 ブラウザで表示する。

あとはそのURLを使ってメールに送るなりブログに入れるなり、 ツイートするなりすればいい。

もう少しカスタマイズ

画像をアップロードする前に、編集したいこともある。

そこで、キャプチャしたものはいったん保留し、編集してからアップロードするようにgyazo.rbを改造した。 瞬間共有じゃなくなっちゃうけど。

$ gyazo       (キャプチャ)
$ gyazo edit  (キャプチャしたものを編集)
$ gyazo view  (アップロードされるものを確認)
$ gyazo up    (アップロード)

というイメージ。