次のようなYoutubeページを取得するためにCURLを使用しています:
$url = "https://www.youtube.com/watch?v=jyPnQw_Lqds";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
echo $curl_scraped_page;
ビデオが再生されないようです。理由はわかりません。データを次のように設定することでこの問題を解決し、次のようにプレーンとしてformat json
デコードするスクリプトを見つけました。json
html
$youtube = "http://www.youtube.com/oembed?url=" . $url. "&format=json";
$curl = curl_init($youtube);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($curl);
curl_close($curl);
$result = json_decode($return, true);
echo $result['html'];
この 2 つのスクリプトを「マージ」して、1 つとして機能させようとしています。スクリプトを次のようにまとめました。
PHPFiddle の例、実行 (F9) ボタンをクリックします。
ご覧のとおり、上部のビデオは再生されません。一番下までスクロールすると、別のビデオ (JSON によってエコーされたビデオ) が表示されます。これは実際に再生できます。
上部のビデオを再生するにはどうすればよいですか? 最初に「オブジェクト」を「見つけて」からjsonなどにフォーマットすることを考えていましたが、これはページを台無しにするのではないかと心配しています。