涼風コンピュータblog

涼風 ・Rubyist, RubyやRuby on Railsに詳しくなっていきたいです

Rubyでツイキャスからコメントを取得してみた

はじめに

2014/01/01からひとりFluentdハッカソンをやっていました。インプットかアウトプットプラグインをなにしようかと思ったんですが、まず、ゲームの生放送するTwitch APIからチャットコメントを取得しようと思いました。ですが、1日のおわりにコメントが取得できないことに、やっと気づきいて、振り出しにもどりました。本日、目をつけたのがiPhone, Androidから生放送するツイキャス(TwitCasting)です。

そこでRubyからツイキャスからコメントを取得するGem TwitCasting-rbを作りました。

インストール

$ git clone https://github.com/suzukaze/Twicasting-rb
$ cd Twicasting-rb
$ rake build
$ gem install pkg/twicasting-x.x.x.gem
$ rbenv rehash # if you use rbenv.

ツイキャスからコメントを取得する

twitcasting.rbに以下の内容を保存してください。

require 'twitcasting'

# コメントを取得する
twitcast = TwitCasting::Client.new
comments = twitcast.get_comments({:movieid => '31846367'})

# コメントを表示する
puts "-" * 40
puts "date                 user   message"
puts "-" * 40
comments.each do |comment|
  time = Time.at(comment.created).strftime("%Y/%m/%d %H:%M:%S")
  puts "#{time}, #{comment.userid}, #{comment.message}"
end

コンソールから以下のコマンドを実行してください。:movieidが'31846367'の日付、ユーザーID、コメントを取得します。

$ ruby twicasting.rb
----------------------------------------
date                 user   message
----------------------------------------
2014/01/02 14:11:21, [user1], こういう道は吹き矢に気をつけてねw
2014/01/02 14:09:31, [user2], この辺も吹き矢に気をつけてねw
2014/01/02 12:31:03, [user3], 今日やってるバイク屋少なそう・・・
2014/01/02 12:26:25, [user4], 普通ボルト外れないぞ
2014/01/02 12:25:46, [user5], e
2014/01/02 12:14:46, [user6], もい
2014/01/02 12:14:44, [user7], 待機
2014/01/02 12:14:32, [user8], 食事中.....
2014/01/02 12:14:24, [user9], 来た道を戻って、一号線へ行って下さい!
----------------------------------------

TwitCasting::Client#get_comments({:user => 'user', :movieid => 'movieid'})はuserに指定したユーザーID, movieidは指定したムービーIDのコメントを取得します。

おわりに

TwitCasting APIのJSONを返すAPIはまだあるので、今後実装していきたいです。本来の目的はFluentdのインプットプラグインをつくることなので、次はツイキャスのコメントを取得するFluentdプラグインに取りかかりたいです。