かずぽんブログ
コマンドでごにょごにょっとTumblrに投稿する

markdown で書いたブログ記事をコマンドでごにょごにょっと Tumblr にポストできないツールないかなあと探していたら、tumblr-rb っていう Ruby で作られたツールがあった。

ツールが公開されたのは2010年なので、何を今さらっていう感じかもしれないけど、自分みたいなターミナル上でエディタを起動して、markdown でブログ記事を書く人にとっては、こういうコマンドがあると便利だと思うので、ブログのネタも兼ねてせっかくなんで紹介しようと思う。

事前準備

説明する必要もないかと思うんですけど、tumblr-rb は Ruby で書かれたツールなんで、これを動かすには Ruby と RubyGems が必要。なければ、自分の環境に合わせてインストールしておくこと。

ちなみに、Ruby のバージョン動作状況はちょっと不明。自分の環境ではバージョンは 1.8.7 だったので、それ以降のバージョンでは動作すると思う。

インストール

事前準備が整ったらターミナルを起動して tumblr-rb を以下のコマンドでインストールを実行してみよう。

$ gem install tumblr-rb

そうすると、tumblr-rb が依存するモジュールがなければ、それらもいっしょにインストールされ、そして tumblr-rb もインストールされるはず。 問題なければ、

$ tumblr --help

っていうコマンドをたたくと、問題がなければ正常にヘルプが表示されるはず。 自分の場合は、ここ のページにあるような事象が起きて、そこに書いてある対処をして動作するようになった。

使い方

テキストファイルをテキスト投稿する

プレーンなテキストファイルをテキスト投稿したい場合は、

$ tumblr hoge.txt

とコマンドを実行する。そうすると、

Email Address: tumblr-user@foobarmail.com
Password:   

のようにメールアドレスとパスワードを聞かれてくるので、入力が完了後、投稿が正常に発行されると

Published to Tumblr. The ID for this post is: 123456789

と表示されて、投稿した記事の Post ID が表示される。

パイプを使ってテキスト投稿もできる。

$ echo 'Hello world.' | tumblr -a user@tumblr.com:xxxxxxxxxxxxxxxx

リンク投稿する

リンク投稿する場合は、

$ tumblr http://blog.kazupon.jp

とリンクURL を指定して実行するだけ。

動画投稿する

Youtube の動画URL を指定することで動画投稿することができる。

$ tumblr http://www.youtube.com/watch?v=CW0DUg63lqU

tumblr --help を指定すると、投稿を下書きにしたり、投稿先のブログを指定するオプションを確認することができるので、ぜひ確認しておきましょう!

ファイルによる投稿の詳細

ファイルを指定して投稿する場合、YAML フォーマット でファイル先頭にパラメータを指定することで、Tumblr の投稿内容をコントロールできます。

テキスト投稿

---
type: regular
tags: sns
format: markdown
title: SNS list
---

# famous sorcial network service
SNS will be the following famous.

- [twittej][twitter]
- [facebook][facebook]
- [google+][google]

[twitter]: http://twitter.com
[facebook]: http://www.facebook.com
[google]: http://www.google.com/intl/en/+/learnmore/

リンク投稿

---
type: link
tags: tumblr
name: タンプラー
url: http://tumblr.com
description: タンプラーとはブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスです。
---

引用投稿

---
type: quote
source: <a href="http://internet.watch.impress.co.jp/docs/event/smw2012/20120216_512225.html">「リブログ」が生み出す巨大なチャンスとは、Tumblrの26歳創業者が来日</a>
tags: tumblr, sorcial media
---
"「Twitter、YouTube、Facebook。どれもユーザーのページは同じ見た目だ。そこは変えようがない。でもTumblrなら表現の自由を開花させられるはずだ。写真や動画といったいろいろなコンテンツを扱うことができ、そしてそれらを自由にレイアウトできるというプレゼンテーション面。この点にTumblrの無限の表現性がある。」"

チャット投稿

---
type: conversation
tags: chat
title: tumblrについて
---

A: tumblr ってどう?
B: リブログサイコー!

写真投稿

---
type: photo
tags: tumblr
caption: tumblr
source: http://assets.tumblr.com/images/logo.png
click-through-url: http://tumblr.com
---

音声投稿

---
type: audio
caption: This mp3 audio is used html5 audio tag demo.
externally-hosted-url: http://randallagordon.com/jaraoke/audio/discipline_mixdown-nvocal.mp3
---

動画投稿

---
type: video
tags: apple
embed: http://www.youtube.com/embed/55tKIjyoHkY
caption: iPhone4
---

いかがでしたでしょうか? コマンドでこのツールを使うと、markdown でテキストで記事の内容を投稿できるので、例えば、gist でメモした内容とか、simplenoteでメモした内容を手軽に投稿できるので、かなり便利だと思います。

気になる点

このツールの気になる点としては、

  1. Tumblr API v1 のサービス停止した場合は動かなくなる
  2. パスワード情報が生で流れる
  3. 画像、音声、動画ファイルといった生ファイルをアップロードできない

といったところでしょうか。 AP1 v1 を使って実装されてるみたいのなので、v1 の API が停止した場合は、このツールが使えなくなるので API v2 の対応が望まれるところ。 パスワードも API v1 は https ではないので、ネットワーク上実質、生のテキストで流れているので、セキュリティ的にちょっと不安。 画像、動画といったファイルをアップロードできて、アップロード結果としてそれらの URL がレスポンスとして分かれば、便利かもなあと。

リファレンス

man ページが web 上にあるので、載せておきます。

  1. talkaboutaklaswadからリブログしました
  2. tabasouak47からリブログしました
  3. dotthxak47からリブログしました
  4. atm09tdattripからリブログしました
  5. aklaswadak47からリブログしました
  6. nun156848ak47からリブログしました
  7. jackbagiiak47からリブログしました
  8. ak47naotakeからリブログしました
  9. naotakeattripからリブログしました
  10. attripkazupon-blogからリブログしました
  11. kazuponkazupon-blogからリブログしました
  12. kazupon-blogの投稿です