Yahoo Pipes!おもしろいですね。思いついたことを割と簡単に実現できるので重宝しそうです。今回はTopsyが集計している情報を利用してRSSフィードをフィルタリングするというのをやってみました。
先日のエントリーではYahoo PipesでRSSのフィルタリングにトライしてみました。その時にやったことは、
- はてぶの「お気に入り」に趣味のあう人々のブクマを登録。
- 上記「お気に入り」をRSS Feedで配信(これははてなが勝手にやってくれる。)
- FlickerやInstagramの画像系サイトなどのURLをフィルタアウト
でした。
今日は
- 上記お気に入りFeed内の各記事のURLをTopsy APIに投げる
- Topsyが集計した各記事のTweet数を取得
- Tweet数が少ないURLをフィルタアウト
ということをやってみました。以下、簡単にご紹介。
Topsy API
Topsyとは、Twitterで各URLがどれだけTweetされたかをカウントし集計しているサービスです。使用したTopsy APIは、Google Codeで公開されているOtterAPIです。
こちらに使用方法がまとめてあります。http://otter.topsy.com/以下に取得したいリソース名を入れて必要な入力(調べたいURLやキーワード)を与えてやればJSONで結果を返してくれます。「JSONで」とサラリと書いてみましたが、わたしはJSONがなにか全然理解していません。でもYahoo Pipesを使えば、Otterから返って来た結果を扱うのも簡単でした。
今回使用したのは“stats”です。URLを与えるとツイート数を返してくれます。
いざYahoo Pipesで実装
作ったPipesはこちら。
やっていることを順を追って書いていくと以下のようになります。
- “FeedURL”と名付けたURLInputでFeedのURLを指定
- Fetch Feedで上記で指定したFeedの中身を取得
- Loopを使ってFeedの各アイテムに対して、各記事のURLをOtterAPIのstats.json以下にappendしたものを作成。結果はassign all results to 〜を使ってitem.topsyqueryというitemに記録する。
- 再びLoopを使って上のLoopで作ったOtterAPIのクエリ結果を assign all results to 〜でitem.topsyresultというitemに記録する。
- 最後にFilterでRTCount(Defaultは10)より多い記事のみをPermitして出力
ひとつのLoop内にはひとつの処理しか置けないんですね。初めて知りました。hiro45jpさんのPipes講座にひょっとしたら解説があるかも?まだ04を読んでる途中なので(汗)
所感
画像系サービスのURL、Foursquare、shindanmakerなどで各個人がつぶやいているものがRetweetされることはまずないので、これらは全てフィルタアウトされます。このため、前回のようにいちいちフィルタリングしたいサービスのURLを個別に登録しないで済むようになりました。試しに出力されたRSSを購読してみたら、結構いい感じでした。
以上、最近全然RSSを消化できていないので、どんどん購読数を減らしつつ有益な記事は見逃さないようにしたいなぁという思いからの記事でした。ちなみにはてぶのRSSフィードにはブックマーク数も記録されているようなのでその辺りを活用するとさらにいい絞り込みができるかも。
ブログ更新しました。- Yahoo Pipes!でTopsy APIを使ってみた http://bit.ly/ifZJrz
これは!! RT @mjtw: ブログ更新しました。- Yahoo Pipes!でTopsy APIを使ってみた http://bit.ly/ifZJrz
[rss] Yahoo Pipes!でTopsy APIを使ってみた http://dlvr.it/H47LJ
凄い。 RT: Yahoo Pipes!でTopsy APIを使ってみた B! http://j.mp/fUVXkO
ピンバック: 【K’s blog Check】ケース×ホルダー×スタンド Singer Song iPhone
Yahoo Pipes!でTopsy APIを使ってみた – macj's Log http://ff.im/-yQBQi http://aepiot.ro/real-time/Yahoo