近頃しったYQL。皆さん使っていますかー。
https://developer.yahoo.com/yql/console/developer.yahoo.com
個人的に情報を集めるのに重宝しています。今日はそれのご紹介。
情報を扱うことを中心にしている方で使ったことない方はぜひ使ってみてほしい。便利すぎるから!!
YQLとは
Yahoo! Query Language。WEB上のリソースにアクセスできるAPI。
SQLのような文法で検索できたりして、なにより気に入っているところはJSONで受け取れるところ。
それを活用しようと思います。
まずはやってみよう。
論より証拠。コンソールから実施可能なので使ってみたほうが早いかと。RSSを読み込んでみようかと思います。
実例としては、YoutubeのRSSをJSONに変換してみます。
読み込むRSSのURLは以下。
https://www.youtube.com/feeds/videos.xml?channel_id=UCpRh2xmGtaVhFVuyCB271pw
それではまず最初にコンソールにアクセスします。
https://developer.yahoo.com/yql/console/
さて。実際の書式的には以下。
select * from feed where url='https://www.youtube.com/feeds/videos.xml?channel_id=UCpRh2xmGtaVhFVuyCB271pw'
JSONを選択した状態で、YQLステートメントのところにSQLチックなものを入れてTestを実施。これだけです。
便利だ。最近RubyでJSONを扱うのが便利だと感じているのでとても助かる。Nokogiriいらなくなるなこれ。
非常に便利だ。
フィルターを使ってみる
フィルター?オプション?を使ってみようと思います。
一部のデータだけ取ってくる
JSONファイルを眺めているとわかるとおり、すべてのデータを取ってきています。
これをビデオID、リンク、タイトル、そしてアベレージを取ってこようと思います。
以下のようにvideoId,link.href,group.title,group.community.starRating.average
を指定します。
select videoId,link.href,group.title,group.community.starRating.average from feed where url='https://www.youtube.com/feeds/videos.xml?channel_id=UCpRh2xmGtaVhFVuyCB271pw'
だいぶ見やすくなった。
並び替えをしてみる
さらに、アベレージで並び替えをしてみようと思う。パイプで情報を渡してあげればいいらしい。
書式的にはSQLの後ろに| sort(field="group.community.starRating.average", descending="true")
を付けます。
select videoId,link.href,group.title,group.community.starRating.average from feed where url='https://www.youtube.com/feeds/videos.xml?channel_id=UCpRh2xmGtaVhFVuyCB271pw' | sort(field="group.community.starRating.average", descending="true")
これでアベレージ準に並び替えられたかと思います。
便利じゃ。
終わりに
こんな感じでJSONを扱うためにRSSをJSONに変換するのだけでもかなり使える。いろいろとサンプルがサイドバーにあるので試してみるともっといろいろなことが試せそうだ。
S3でも似たようなことが最近できるようになったらしいし、便利さしか感じない。
また面白い使い方ができたら紹介したいと思います。
それではー。