joomla 用の YouTube Player-Module を (もう 1 つ) 作成しました。モジュール バックエンドでは、この回答のコードを使用してビデオタイトルを表示しました。残念ながら、get_video_info はほとんどのビデオ ID に対して次のような埋め込み禁止テキストを返します。
実際には、videoinfo から情報を取得し、タイトルまたはモジュールが存在する場合は理由を検索し、バックエンドで値をエコーします。私の質問は - ビデオを埋め込むことがまだ可能であるにもかかわらず、yt get_video_info がこのエラーをスローする理由を知っている人はいますか?
例: ビデオ ID Y1_VsyLAGuk
http://youtube.com/get_video_info?video_id=Y1_VsyLAGukからビデオ情報を取得しようとすると、不可能 であるというエラーが表示されます。
ただし、モジュールは、同じホスト上の埋め込み youtube API v3 プレーヤーでビデオを作成および再生できます。
if (isset($formID)){
$cleanedID = cleanUp($id);
// Some Magic to get the Video Title, Thanks to Stack Overflow User Cruel for this nice Hint
$content = file_get_contents("http://youtube.com/get_video_info?video_id=".$cleanedID);
parse_str($content, $ytarr);
if(array_key_exists('title', $ytarr)){
return '<div style="width:220px;"><h4>'.$ytarr['title'].'</h4><img style="border-radius:4px;" src="https://img.youtube.com/vi/'.$cleanedID.'/hqdefault.jpg" width="100%" /></div>';
// Credits: https://stackoverflow.com/a/5151862/4708062
}elseif(array_key_exists('reason', $ytarr)){
return '<div class="alert alert-danger" style="width:170px;"><p style="text-align:center">'.$ytarr['reason'].'</p></div><img style="border-radius:4px;" src="https://img.youtube.com/vi/'.$cleanedID.'/hqdefault.jpg" width="220px" />';
}else{
//print_r($ytarr);
return ;
}
}