2014年07月02日

RAINBOWSTREAM - コマンドラインで楽しむ Twitter ストリーミング・クライアント

今日ご紹介するのは CLI ベースの Twitter クライアント。 ええ、確かにこの手のツールはこれまでにも沢山ありましたが RAINBOWSTREAM はその名前の通り、川の流れのように僕達の目の前をフローしていく世界中の Tweet たちをカラフル・ストリーミングで楽しめるのが特徴。 そうそう、CLI ベースなのにイメージ表示をサポートしているところもユニーク&クールですよ。

rainbowstream twitter client

RAINBOWSTREAM のインストールと設定


プロジェクト・ページはこちら。 GitHub のページを見る限り作者の Orakaro (@dtvd88)さんは AKB ファンみたい。

Rainbowstream


RAINBOWSTREAM は Python で記述されたアプリケーションで pip パッケージ・マネージャーを使ってインストールします。

まずは、僕の Ubuntu (Mac OS でもOK)へ pip 環境と、

ubuntu $ sudo apt-get install python-pip python-dev


画像処理系など依存するパッケージもインストールしておきましょう。

ubuntu $ sudo apt-get install libjpeg-dev zlib1g-dev libpng12-dev libsqlite3-dev


準備が出来たら rainbowstream をインストール。

ubuntu $ sudo pip install rainbowstream
    --- snip ---
    ------------------------------------------------------------
    version      Pillow 2.4.0
    platform     linux2 2.7.3 (default, Feb 27 2014, 20:00:17)
                 [GCC 4.6.3]
    ------------------------------------------------------------
    *** TKINTER support not available
    --- JPEG support available
    *** OPENJPEG (JPEG2000) support not available
    --- ZLIB (PNG/ZIP) support available
    *** LIBTIFF support not available
    *** FREETYPE2 support not available
    *** LITTLECMS2 support not available
    *** WEBP support not available
    *** WEBPMUX support not available
    ------------------------------------------------------------

この時 JPEG, ZLIB が support available になっていないと端末(ターミナル)上で画像表示は出来ません。

もし、not available になってしまう場合には次のコマンドで libjpeg.so、libz.so の場所を確認して、

ubuntu $ find /usr/lib/  | egrep 'libjpeg.so|libz.so'


/usr/lib 下にリンクを作っておきます。
 
ubuntu $ sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
ubuntu $ sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib


こうしてから PIL (Python Imaging Library)だけ再インストールすると available ステータスになるはずです。

ubuntu $ sudo pip uninstall PIL
ubuntu $ sudo pip install PIL --upgrade


これでインストールはおしまい。 次のコマンドで rainbowstream を起動してみましょう。

ubuntu $ rainbow
Hi there! We're gonna get you all set up to use Rainbow Stream.
In the web browser window that opens please choose to Allow
access. Copy the PIN number that appears on the next page and paste or
type it here:

Opening: https://api.twitter.com/oauth/authorize?oauth_token=....

Please enter the PIN: ***********


既定のブラウザが立ち上がるので Twitter にログインして PIN コードを入手、端末(ターミナル)へ入力すると rainbowstream が貴方のタイムラインに接続出来るようになるはずです。

twitter application auth page


RAINBOWSTREAM で Twitter ストリーミングを楽しむ


起動すると自動で貴方のタイムライン・ストリーミングが始まります。 もし、更新を待てなければ能動的にツイートを取得していみましょう。 これには home と入力した後に取得する件数を指定します。

[@netbuffalo]: home 10


ツイートするならこう。 勿論日本語だって大丈夫ですよ。

[@netbuffalo]: t tweeting via rainbowstream


リツイート、お気に入りなど一通りの操作をサポートしています。 詳しくは h と入力して表示されるヘルプをどうぞ。

さて、何と言っても RAINBOWSTREAM 一番の魅力はハッシュタグを指定したストリーミング。 例えばダルビッシュ投手が後一人でパーフェクト・ゲーム達成という試合がありましたよね。 生中継を見ることができない僕にリアルタイムに情報を伝えてくれたのはツイッターだったんですけど、もしその時に RAINBOWSTREAM を知っていれば #mlbjp 辺りのハッシュタグでストリーミング、vim でコーディングしながらみんなと一緒に試合観戦・熱狂出来たでしょうね!

ハッシュタグでみんなのストリーミングにバインディングするにはこうします。

[@netbuffalo]: switch public #mlbjp


これでストリーミングが #mlbjp にスイッチしました。

switch public streaming


もし、ツイートに含まれる URL から画像を取得して端末に表示するならば q と入力して一度 rainbowstream を止め、-iot オプションで再起動しましょう。

ubuntu $ rainbow -iot


すると、端末のカラー・パレットを使って”画像のように”イメージ変換してくれます(クール!)。

rainbowstream enable image view


今一番の急流であろう #worldcup をストリーミングしている動画がこちら。 さすがに流れが速すぎて溺れそう・・・・。



ちなみにイメージ変換を有効にしている最中にリンク切れなど変換できない URL を踏んでしまい、IOError が発生すると except 先が無いのでアプリケーションが異常停止してしまいます。 これを防ぐには rainbow.py (僕の環境では /usr/local/lib/python2.7/dist-packages/rainbowstream/ 下)の 160 〜 170 行あたりで例外をキャッチしてあげるようのが良さそうです。

 164     # Display Image
 165     if iot and media_url:
 166         for mu in media_url:
 167             response = requests.get(mu)
 168             try:
 169                 image_to_display(StringIO(response.content))
 170             except IOError:
 171                  print "Oops! IOError occurred."

※こちら開発者の dtvd88 さんが、v0.3.1 で対応してくれました!

もし、ユーザ情報を初期化するならホーム・ディレクトリ下にある .rainbow_oauth を削除すればよし。

ubuntu $ rm ~/.rainbow_oauth


それでは、よりクールな CLI + Twitter ライフを。

ツイッター創業物語 金と権力、友情、そして裏切り
ニック・ビルトン
日本経済新聞出版社
売り上げランキング: 9,998

UNIXという考え方―その設計思想と哲学
Mike Gancarz
オーム社
売り上げランキング: 13,219

Posted by netbuffalo at 21:00│Comments(2)TrackBack(0)Linux | ユーティリティ


この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/netbuffalo/4814863
この記事へのコメント
Rainbow Stream の開発者です。この記事見つけた時にビックリしました。
紹介を書いてくれてありがとうございました!

発見して頂いたバグが現時点のv0.3.1バージョンに修正されました。
さらにthemesサポート、Python3,Twitter listの対応も入っています。
ぜひ一度更新してください!

今後も宜しくお願い致します。
Posted by dtvd88 at 2014年07月13日 19:18
dtvd88さん

コメントありがとうございます。
Rainbow Stream のようなクールなプロダクトは何時か必ず誰かが紹介していたと思います。新しいバージョンも試してみますね。
これからも楽しみにしています。頑張って下さい。
Posted by netbuffalo at 2014年07月14日 10:48

コメントする

名前
URL
 
  絵文字