ツイキャスAPIを使用してライブを検索する

ツイキャス
ツイキャスAPIでライブを検索する方法のメモです。

1 ドキュメント


以下にまとまってます。
APIドキュメント

TwitCasting APIv2(β)を、以下順で読み進めると良いかと思います。

Registration 新規アプリ登録手順
Get Access Token アクセストークン取得手順
Request Formats
Response Formats
共通フォーマットの確認
Search Live Movies 検索APIの確認

 
 

2 Registration


twitcast
開発者向けページで新規アプリを登録します。
右図は私が登録した時のものです。
CallbackURLは実在する(あなたの)サイトURLを指定して下さい。
ClientIDとClientSecretが発行されます。
 
 
 
 
 

3 Get Access Token

 


まず、アクセストークンを発行するために必要なcodeパラメタを得るために以下URLにアクセスします。
https://apiv2.twitcasting.tv/oauth2/authorize?client_id={ClientID}&response_type=code&state={任意のCSRF_TOKEN}

すると前手順で登録したCallbackURLにリダイレクトされます。
リダイレクトされたURLにcodeパラメタが付与されていますので控えて下さい。

次に、以下URLにcode、ClientID、ClientSecret等必要なパラメタをPOSTすることでアクセストークンが発行されます。
/oauth2/access_token

はい、この辺が少しめんどいですね。

code取得~アクセストークン取得を実施してくれるスクリプト(sample.php)が公開されています、
便利に使わせて頂きました。
ツイキャスの新しい API をつかってみた(ライブ配信サービス戦国時代2016)
 
 

検索例


“将棋”をキーワードとして検索する実装例です(PHP)。

//検索
$keyword="%E5%B0%86%E6%A3%8B"; //将棋
$url = "https://apiv2.twitcasting.tv/search/lives?limit=50&type=word&context=". $keyword. "&lang=ja";
$curl = curl_init($url);
$option = array(
	CURLOPT_HTTPGET => true,//GET
	CURLOPT_RETURNTRANSFER => true,
	
	//HEADER
	CURLOPT_HTTPHEADER => array(
		"X-Api-Version: 2.0",
		"Authorization: Bearer ". $ACCESS_TOKEN,
		"Accept-Encoding: gzip",
	),
);
curl_setopt_array($curl, $option);
$jsonStr = curl_exec($curl);
curl_close($curl);

//デコード
$jsonHash = json_decode($jsonStr , true);
$movies = $jsonHash['movies'];
foreach ($movies as $movie){
	$id				= $movie['movie']['id'];
	$title			= $movie['movie']['title'];
	$subtitle		= $movie['movie']['subtitle'];
	$link			= $movie['movie']['link'];
	$is_live		= $movie['movie']['is_live'];
	$is_protected	= $movie['movie']['is_protected'];
	$broadcaster_name	= $movie['broadcaster']['name'];
	//後はお好きに
}

 
 

検索結果の例


レスポンスはjson形式になっています。

{
	"movies":[
		{
			"movie":{
				"id":"345692055",
				"user_id":"1640501971",
				"title":"さぼー放送局",
				"subtitle":null,
				"last_owner_comment":"さぼー放送局!PCからキャス配信中 -",
				"category":null,
				"link":"http://twitcasting.tv/oilangyu62vbebk",
				"is_live":true,
				"is_recorded":false,
				"comment_count":24,
				"large_thumbnail":"http://202-230-12-93.twitcasting.tv/image3/image.twitcasting.tv/image59_1/97/d7/149ad797-1.jpg",
				"small_thumbnail":"http://202-230-12-93.twitcasting.tv/image3/image.twitcasting.tv/image59_1/97/d7/149ad797-1-s.jpg",
				"country":"jp",
				"duration":1779,
				"created":1486551511,
				"is_collabo":false,
				"is_protected":false,
				"max_view_count":0,
				"current_view_count":3,
				"total_view_count":22,
				"hls_url":"http://twitcasting.tv/oilangyu62vbebk/metastream.m3u8/?video=1"
			},
			"broadcaster":
			{
				"id":"1640501971",
				"screen_id":"oilangyu62vbebk",
				"name":"さぼー",
				"image":"http://202-234-44-54.moi.st/image3s/pbs.twimg.com/profile_images/810832886861426688/iBHq95E6_normal.jpg",
				"profile":"囲碁将棋オセロ勢 アプリウォーズ二段 東洋8段  フォローはツイートと内容をみて返します。エロゲーマー歓迎\nポケモンサンムーンシングル1956\nさぼーです",
				"level":27,
				"last_movie_id":"345692055",
				"is_live":true,
				"created":1410313935
			},
			"tags":["レベル25+","動画","過疎","ゲーム実況","ゲーム"]
		},
		{
			"movie":{
				"id":"345698789",
				"user_id":"3007637628",
				"title":"naru",
				"subtitle":"マイクラwiiu",
				"last_owner_comment":"まったりCas始まるよ!(*´ω`*)",
				"category":"game_rpg_jp",
				"link":"http://twitcasting.tv/na_5963",
				"is_live":true,
				"is_recorded":false,
				"comment_count":6,
				"large_thumbnail":"http://202-230-12-92.twitcasting.tv/image3/image.twitcasting.tv/image59_1/e5/f1/149af1e5-1.jpg",
				"small_thumbnail":"http://202-230-12-93.twitcasting.tv/image3/image.twitcasting.tv/image59_1/e5/f1/149af1e5-1-s.jpg",
				"country":"jp",
				"duration":399,
				"created":1486552891,
				"is_collabo":false,
				"is_protected":false,
				"max_view_count":0,
				"current_view_count":1,
				"total_view_count":3,
				"hls_url":"http://twitcasting.tv/na_5963/metastream.m3u8/?video=1"
			},
			"broadcaster":{
				"id":"3007637628",
				"screen_id":"na_5963",
				"name":"naru.1216",
				"image":"http://202-234-44-62.moi.st/image3s/pbs.twimg.com/profile_images/825981206093144066/W56MtwWo_normal.jpg",
				"profile":"猫好き同盟\n「Forever love cat」@\nイルーナ戦記/動物ウォーズ/将棋ウォーズ/パンダ囲碁/ゲーム実況/スプラトゥーン/マイクラ/FFディスディア/",
				"level":26,
				"last_movie_id":"345698789",
				"is_live":true,
				"created":1422886670
			},
			"tags":["レベル25+","動画","過疎","ゲーム","ゲーム実況","雑談"]
		},
		{
			"movie":{
				"id":"345692844",
				"user_id":"779474737588162560",
				"title":"Live #345692844",
				"subtitle":null,
				"last_owner_comment":"モイ!iPhoneからキャス配信中 -飲み会なうなう~~~",
				"category":null,
				"link":"http://twitcasting.tv/dokukinoko0920",
				"is_live":true,
				"is_recorded":false,
				"comment_count":59,
				"large_thumbnail":"http://202-230-12-93.twitcasting.tv/image3/image.twitcasting.tv/image59_1/ac/da/149adaac-1.jpg",
				"small_thumbnail":"http://202-230-12-93.twitcasting.tv/image3/image.twitcasting.tv/image59_1/ac/da/149adaac-1-s.jpg",
				"country":"jp",
				"duration":1627,
				"created":1486551663,
				"is_collabo":false,
				"is_protected":false,
				"max_view_count":0,
				"current_view_count":2,
				"total_view_count":8,
				"hls_url":"http://twitcasting.tv/dokukinoko0920/metastream.m3u8/?video=1"
			},
			"broadcaster":{
				"id":"779474737588162560",
				"screen_id":"dokukinoko0920",
				"name":"ゆん",
				"image":"http://202-234-44-61.moi.st/image3s/pbs.twimg.com/profile_images/787779357469134848/0LUWQNI5_normal.jpg",
				"profile":"18↑ 地方組 笑垢 Ageメン♡特にチーモンチョーチュウ/東京よしもと9期/ライセンス/ノンスタ/犬の心/LLR/ブロキャス/サカイスト/囲碁将棋/イシハザetc...",
				"level":17,
				"last_movie_id":"345692844",
				"is_live":true,
				"created":1478421318
			},
			"tags":["動画","過疎"]
		}
	]
}

 
 
以上、ツイキャスAPIを使用してライブを検索する方法でした。
なお拙作のTwitterボット「将棋放送始まったー(@ShogiOnAir)」につぶやかせているツイキャス情報は本記事の方法で検索した結果を元に作成しています。

2件のコメント

  1. ツイキャスAPIを使ったアプリが作りたいのですが、PHPもしくはRubyを使ったWebアプリしか作れないのでしょうか?情報が少なくて困っています。

    • ロフトくん

      > ぶりさん
      こんにちは。
      ドキュメントどおりにHTTPをしゃべれのであれば手法は何でもよいということになります。
      APIを叩ける言語であれば何でも実装可能です( C#, Java, Python, etc,,)
      また、ドキュメントに例が記載されていますように curl などRequest Headers に記載があるヘッダを設定できるツールでも叩けます。

ぶり へ返信する キャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です