Twitch API を利用して、特定のゲーム、特定の言語(日本語)の配信情報を抜き出したかったので、Node.jsで利用したメモ。
Get Live Streams を利用。
Search Streams も似ているが、こちらは配信言語でフィルタができない。
twitch_get_live_streams.js
var request = require('request');
//変数系の設定
var twitch_client_id = '**********'; //twitch側で作成したアプリのclientID
var game = 'overwatch'; //検索したいゲームタイトル
var language = 'ja'; //検索したい配信言語
//検索用URL生成
var searchURL = 'https://api.twitch.tv/kraken/streams/?game=' + game + '&language=' + language;
//リクエストヘッダー設定
var headers = {
'Accept': 'application/vnd.twitchtv.v5+json',
'Client-ID': twitch_client_id
}
//リクエストオプション設定
var options = {
url: searchURL,
method: 'GET',
headers: headers,
json: true
}
//APIへリクエスト送信
request(options, function (error, response, body) {
if (!error) {
if (body._total > 0) {
//取得成功
var streams = body.streams
console.log(streams);
} else {
//配信数ゼロ
}
} else {
//リクエスト送信エラー
console.log(error);
}
});
以上で配信中の一覧のjsonデータが得られる。
使っているライブラリはrequestのみ。twitch-apiなどのライブラリもnpmに存在するが使い方がよくわからなかったので普通にAPIを叩いた。
TwitchのWebサイト上で検索した時と同じように視聴者数順で返してくるので、用途によってはデータの加工や検索クエリに工夫が必要。