あなたがしたいことはわかりませんが、私が取り組んだプロジェクトでは、YouTubeから特定のプレイリストを取得し、そのコンテンツをウェブサイトの訪問者に公開する必要がありました。
私がしたことは、プロキシのようなものです。私はphiファイルを設定し、apiキーを含んでいます。そして、エンドユーザにこのphpファイルを通してYTコンテンツを取得させてください。
phpファイルは、curlを使用してコンテンツフォームYTを取得します。
私はそれが役に立ちそうです。
EDIT 1
キーを非表示にする方法は、サーバー上のPHPファイルにそれを置くことです。 このPHPファイルは、youtubeに接続し、クライアントページで必要なデータを取得するものです。
正しいapiキーと正しいプレイリストIDを持つこのコード例は、プレイリストの最初の10トラックのjsonファイルを取得します。
$ respにはjsonデータがあります。それを抽出するには、例えば連想配列にデコードする必要があります。配列に入ると、クライアントブラウザでレンダリングされるhtmlに簡単に混在させることができます。
<?php
$apiKey = "AIza...";
$results = "10";
$playList = "PL0WeB6UKDIHRyXXXXXXXXXX...";
$request = "https://www.googleapis.com/youtube/v3/playlistItems?part=id,contentDetails,snippet&maxResults=" . $results .
"&fields=items(contentDetails%2FvideoId%2Cid%2Csnippet(position%2CpublishedAt%2Cthumbnails%2Fdefault%2Ctitle))" .
"&playlistId=" . $playList .
"&key=" . $apiKey;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => $request,
CURLOPT_SSL_VERIFYPEER => false
));
$resp = curl_exec($curl);
if (curl_errno($curl)) {
$status = "CURL_ERROR";
}else{
// check the HTTP status code of the request
$resultStatus = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($resultStatus == 200) {
$status = "OK";
//Do something with the $resp which is in JSON format.
//Like decoding it into an associative array
} else {
$status = "YT_ERROR";
}
}
curl_close($curl);
?>
<html>
<!-- your html here -->
</html>
注:CURLOPT_SSL_VERIFYPEER
はfalseに設定されます。これは開発中です。それは真実でなければなりません。
このようにAPIを使用すると、apiキーを呼び出してそのアプリケーションをドメインに制限することができます。あなたはgooglaのapiコンソールでそれを行います。 (生産上のヒント)
推測私は正しく質問していない。私はYouTubeのチャンネルgapi.client.setApikey()に続いて、テストページのgapi.client.youtube.playlist.list()の再生リストのリストを作成するクライエントページを持っています(すべては現在localhostです)。これは、クライアントページに公開されたAPIキーがあることを意味します。私はISPに移ったときにサーバー側でそれを隠したいと思っていますが、クライアントとのやりとりの仕方はわかりません。 – CapnPamma
私は自分の答えを編集して、より多くの情報と拡張できる基本例を追加しました。 – Juan
ありがとうございます。私はこれを恐れていた。完璧な意味合いを持つ。私は非常に一般的な必要性だと思うもののために厄介だと思うが、それはそれであり、私は別の方法を見つけるのに十分スマートではない。 – CapnPamma