YouTubeチャンネルが実際にストリーミングしているかどうかを確認するための情報が見つかりません。 Twitchではチャネル名が必要で、APIを使用するとライブの有無を確認できます。
OAuthを使用したくないので、通常は公開APIキーで十分です。チャンネルの動画をチェックするように、チャンネルがストリーミングしているかどうかを知りたいです。
search.list
およびチャネルIDを指定し、タイプをvideo
に設定し、eventTypeをlive
に設定します。
たとえば、私が検索した場合:
https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCXswCcAMb5bvEUIDEzXFGYg&type=video&eventType=live&key=[API_KEY]
私は以下を得ました:
{
"kind": "youtube#searchListResponse",
"etag": "\"sGDdEsjSJ_SnACpEvVQ6MtTzkrI/gE5P_aKHWIIc6YSpRcOE57lf9oE\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 5
},
"items": [
{
"kind": "youtube#searchResult",
"etag": "\"sGDdEsjSJ_SnACpEvVQ6MtTzkrI/H-6Tm7-JewZC0-CW4ALwOiq9wjs\"",
"id": {
"kind": "youtube#video",
"videoId": "W4HL6h-ZSws"
},
"snippet": {
"publishedAt": "2015-09-08T11:46:23.000Z",
"channelId": "UCXswCcAMb5bvEUIDEzXFGYg",
"title": "Borussia Dortmund vs St. Pauli 1-0 Live Stream",
"description": "Borussia Dortmund vs St. Pauli Live Stream Friendly Match.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/W4HL6h-ZSws/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/W4HL6h-ZSws/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/W4HL6h-ZSws/hqdefault.jpg"
}
},
"channelTitle": "",
"liveBroadcastContent": "live"
}
}
]
}
私はこれが古いことを知っていますが、私はそれをphpで自分で見つけました。
$API_KEY = 'your api3 key';
$ChannelID = 'the users channel id';
$channelInfo = 'https://www.googleapis.com/youtube/v3/search?part=snippet&channelId='.$ChannelID.'&type=video&eventType=live&key='.$API_KEY;
$extractInfo = file_get_contents($channelInfo);
$extractInfo = str_replace('},]',"}]",$extractInfo);
$showInfo = json_decode($extractInfo, true);
if($showInfo['pageInfo']['totalResults'] === 0){
echo 'Users channel is Offline';
}else{
echo 'Users channel is LIVE!';
}
ただし、検索方法( https://www.googleapis.com/youtube/v3/search )は、使用するには非常にコストがかかります。デフォルトの10,000のうち、100クォータ単位( https://developers.google.com/youtube/v3/determine_quota_cost )です。つまり、1日あたり100リクエストしか取得できないということです。
あなたは割り当て量の増加をリクエストできますが、問題を強引に強制しているようです。
他にもっと簡単な方法は本当にありませんか?