異聞録

いま盛り上がっているテレビ番組をオススメするテレビジン(http://tvz.in)、いまTwitter上で何が話題になっているかをランキングする Twitty(http://twitty.jp/) を開発していたりします。

2012年10月

Twitter検索API v1.1を調査したらスゴすぎて世界が広がった

Twitterが今年の8月にAPIについてのルールを変更した上で、
API v1.1をリリースしました。

Twitter API v1.1でのAPI利用ルールの変更について

実際にv1.0がなくなるのは来年の3月くらいだと思いますので、
まだ時間がありますが、リスクも含めて、
早めに知りたかったので、実際に触ってみました。

で、今までAPIの変更をネガティブに捉えていたのですが、
検索APIに関しては、かなり良くなっており、Twitterでつぶやいていましたが、
より多くの人に共有したいと思い、ブログにまとめたいと思います。

以下の点が大きく変わりました。

1.制限が1時間150回から15分180回に変わった
2.最大1500件取得が約8日前まですべて取得できるようになった
3.ユーザに関するデータの種類が増えた(特にフォロワー数)
4.リツイート内容が取得できるようになった

制限が1時間150回から15分180回に変わった


v1.0ではIP制限で行なっていたAPIの回数制限が
v1.1ではOAuth認証によりアクセストークン毎のAPIの回数制限に変わりました。
実質1時間720回なので4倍以上増えたことになります。

※最初v1.0の回数制限を350回と書いていましたが
検索APIはIP制限のみなので150回の間違いでした。

最大1500件取得が約8日前まですべて取得できるようになった


個人的には今回のAPIの変更で一番影響があり、そして感動した部分になります。

v1.0ではpageを指定したページングの機能しかなく、それが最大15ページとなり
一度に100件取得するため1500件までの取得が限界でした。
この問題としては「バルス」のように一度に大量にツイートがある場合、
最新の1500件しか取得できないため、ほとんど逃してしまいます。

またページングをしている間にデータが流れて、
1ページ目と2ページ目が同じ状態になったりすることもあります。

v1.1ではpage指定がなくなり代わりにmax_id指定になりました。
max_idはv1.0では結果に対して絞り込むためのもので使用方法が変わりました。
max_idの指定が8日前くらい遡り指定しても取得できるため、
「バルス」のように一度に大量にツイートがあっても取得することができます。

ユーザに関するデータの種類が増えた(特にフォロワー数)


v1.0ではユーザに関するデータが少なくユーザの属性を調べようとするには
別のAPIを叩く必要がありました。

v1.1ではユーザに関するデータがすべて取得ができます。
特に使えると思うのは「名前」「フォロワー数」「自己紹介」「URL」「場所」ですね。
例えば「場所」を使って、検索キーワードに対する地域ごとの分布図などが
できたり、「フォロワー数」を使い、影響力の判定などができると思います。
スパムアカウントも見つけやすくなるかなぁ。

リツイート内容が取得できるようになった


v1.1ではretweeted_statusでRTの内容、
および元のツイートしたユーザの情報が取得できます。

当然ながら非公式のRTは取得できないので、
公式RTがより強くなったと思われます。

問題


・search_metadataのデータがおかしい
search_metadataのmax_idとnext_url内のmax_idが
明らかに次のページではないので、自前でURLを作成した方が良いです。
多分、Twitter側のバグです。

懸念点


・抜けが出るかも
調査しきれていませんがTwitter社の方によるとスパイクするデータに関しては
抜けが生じるということなので、「バルス」などは抜けが発生すると思われます。
通常から抜けが発生している可能性もありますので追加調査をしようと思います。

・時間がかかる
実際に叩いてみるとv1.0の時よりも結果の取得に時間がかかる気がします。
max_idを指定しないときは、それほど問題ないのですが、
指定した場合に取得までに時間がかかる場合があります。
最大で15秒くらい待たされる時がありました。

・制限がかかるかも
あまりにもデータが取得できてしまうので、
もしかすると制限がかかる可能性があり、それも心配なところです。

おまけ:Rate Limitについて


v1.1からはAPI毎に回数制限が儲けられたためRate Limit APIの
仕様も変わっています。

https://api.twitter.com/1.1/application/rate_limit_status.json?resources=search
のようにresourcesで該当するAPIを指定できるようになりました。

まとめ


TwitterのAPIの変更は開発者を中心にネガティブに受け止められていますが、
少なくとも分析屋などにとっては、かなり良い方向での変更となり、
すぐにでもv1.0からv1.1にシステムを移行した方が良いように思われます。

とりあえず、私の目標としては
今年の紅白歌合戦に関する全データ取得を頑張りたいと思います。

追記


今回のAPI調査に辺り色々と教えていただき、
本日、Twitter社を辞められるというエントリーを書かれた
元Twitter社の@yusukeさんの下記の記事が
検索APIも含めて今回のAPIに関する変更がまとめられていますので、
是非、合わせて読んでいただければと思います。

結局、Twitter API 1.1で何が変わる? 5つのポイント

バルス越えを目指すJoinTVのムービィシンクロナイザ

16日、日テレさんのJoinTVカンファレンスにご招待いただき半日ですが参加させていただきました。
ogimage

ソーシャルテレビ視聴「JoinTV」

SNS各社の発表、日テレさんの発表が盛りだくさんでしたので、
それは、どこか別でまとめるとして、一番、期待してしまう
「ムービィシンクロンナイザ」を先に取り上げさせていただこうと思います。

直近の放送としては11月9日、16日の
新劇場版ヱヴァンゲリヲンとの連動を予定しているそうです。

そこで、ムービィシンクロンナイザの施策として以下の4点を行うそうです。

・シーンに合わせてチェックインをする「シンクロボタン」
・「ヤシマ作戦」における「連打で発電!!ボタン」
・放送前の11月2日から参加できる「連打で蓄電!!ボタン」
・「破」では綾波救出作戦「綾波、来い!!ボタン」

私が一番期待するのは「シンクロボタン」ですね。
主に名台詞に向けてのボタンらしく、
例として「逃げちゃダメだ」が挙げられていましたが
セリフが出る時に「シンクロする」ボタンが押せるようになるようです。

DSC09853


今回からTwitterにも連動するようなので、ボタンを押すとともに
「逃げちゃダメだ」がツイートされるようになると思われます。

ここに放送局しかできない仕掛けがあり、
連動画面にはセリフが出るまでの時間が表示され、
カウントダウンがされるようです。
これはどのような放送をするか知っていないとできない
放送局にしか提供できないサービスになります。

実際に天空の城ラピュタの放送時にも
ユーザの勝手な施策としてですが、
過去の放送からバルスが来るタイミングを予想した
「バルス予報」みたいな言葉もあったので、
公式がやれば、ますます祭になる予感がします。

自分のシンクロ率、みんなのシンクロ率も見られるようで、
おそらく、友達のシンクロ率も見られると思われます。
これは、普通にゲーム要素としても成り立っていると思いますので、
当日は是非参加したいと思います。

残りの3つは贅沢を言うと、
数値が実際の映像に影響したら面白いなと思います。
ストーリー上「発射できない」というのはなしだと思うので、
ストーリーの分岐は無いとして、
発射した際の光の太さが変わったり、エフェクトが派手になったりとか、
そういう加減ができたら面白いかなと。

DSC09856


DSC09858


DSC09859


それにしても、JoinTVカンファレンスでしたが、
実際のところソーシャルテレビカンファレンスだったよなぁと後から思いました。

日テレさん、貴重な場をご提供いただきありがとうございました。
最新コメント
QRコード
QRコード
テレビジン ikkoの最近読んだ本
ikkoの最近やったゲーム
  • ライブドアブログ