Youtube Data APIを利用して、「特定のゲームのライブ配信状況を閲覧者数順に取得する」という動作を実装しました。
しかし、ライブ配信しているのに取得できないチャンネルが出てきてしまいます。
該当のソースコード
PHP
1function json_request($url, $query = array(), $assoc = false, $header = array(), $isget = true) 2{ 3 if ($query) $url .= ('?' . http_build_query($query, '', '&', PHP_QUERY_RFC3986)); 4 5 $curl = curl_init(); 6 curl_setopt($curl, CURLOPT_URL, $url); 7 if (!$isget) curl_setopt($curl, CURLOPT_POST, true); 8 curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 9 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 10 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 11 curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); 12 $responseString = curl_exec($curl); 13 curl_close($curl); 14 return ($responseString !== false) ? json_decode($responseString, $assoc) : false; 15} 16 17function get_search($options) 18{ 19 return 20 json_request('https://www.googleapis.com/youtube/v3/search', $options, true); 21} 22 23function get_youtube_stream_data($game_title, $page_token = '') 24{ 25 $options = array( 26 'key' => YOUTUBE_API_KEY, 27 'q' => $game_title, 28 'part' => 'snippet', 29 'order' => 'viewCount', 30 'eventType' => 'live', 31 'maxResults' => 50, 32 'type' => 'video', 33 'regionCode' => 'JP', 34 'relevanceLanguage' => 'ja', 35 ); 36 if ($page_token != '') $options['pageToken'] = $page_token; 37 38 $youtube_response = get_search($options); 39 40 if ($youtube_response === false || isset($youtube_response['error'])) { 41 42 } elseif (count($youtube_response['items']) == 0) { 43 44 } else { 45 46 if ($page_token != '') { 47 get_youtube_stream_data($game_title, $page_token); 48 } 49 50 } 51 52}
$game_titleにはゲームのタイトル名が入ります。(例:スプラトゥーン3など)
ゲーム名のタグで検索できないか調べてはみましたが結局わかりませんでした。
閲覧者数が上位のライブ配信も取得できないこともあり、情報の信頼性が非常に低い状況です。
解決策はないでしょうか。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。