Youtube Data APIを利用して、「複数のチャンネルのライブ配信状況をチェックし、ライブ配信中だった場合は処理をする」という動作を実装しようと思い、ネット上の記事を参考に下記のコードを書きました
その結果、処理を実装することはできたのですが、YouTube Data APIにはクォータの制限があり、現状その消費量が馬鹿にならないので、もっと無駄を省けないかと思い質問致しました
以下は現在のコードです
define('YOUTUBE_API_KEY', '###'); // APIキー function json_get($url, $query = array(), $assoc = false) { if ($query) $url .= ('?' . http_build_query($query, '', '&', PHP_QUERY_RFC3986)); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); $responseString = curl_exec($curl); curl_close($curl); return ($responseString !== false) ? json_decode($responseString, $assoc) : false; } function h($value, $encoding = 'UTF-8') { return htmlspecialchars($value, ENT_QUOTES, $encoding); } function eh($value, $encoding = 'UTF-8'){ echo h($value, $encoding); } foreach($streamers as $streamer){ //streamers配列には複数の動画配信者の情報(チャンネルID等)が含まれる $response = json_get('https://www.googleapis.com/youtube/v3/search', array( 'key' => YOUTUBE_API_KEY, 'channelId' => $streamer['channelID'], 'part' => 'snippet', 'eventType' => 'live', 'type' => 'video', ), true); if($response["items"]!=null){ //ライブ中かどうかの判定(配列の内"item"の中身が空かどうかで判断) //ライブ中だった場合の処理 } }
Youtube Data APIから受け取る情報の内、必要なものは「ライブ配信中かどうか」という情報だけであり、それ以外については利用しておりません
もしコードの中に無駄な記述等があればご教授いただけると嬉しいです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/07 05:29