phpでYoutubeの短縮URLを埋め込み用URLに変換して出力する方法
2017年10月07日
PHPで、Youtubeの短縮URLを、埋め込み用URLに変換して出力する方法についての解説です。
Youtubeの短縮用URLとは、
上記のようなURLで、Youtubeの動画を共有ボタンを押すと表示されて、それをSNSやブログに投稿すると、Youtubeの動画が埋め込まれた状態で出力されます。
これは、例えばそれぞれのブログエンジンや、SNSなどが上記の短縮URLを埋め込み用のコードに変換して出力する仕様になっているのでそのようになっています。
そのため、例えばPHPのファイルで、上記のYoutubeの短縮用URLを受け取ってそのまま出力すると、そのまま短縮用のURLが出力されるだけで、埋め込まれた状態で出力されません。
これをそのまま埋め込み用の動画として出力したい場合は、埋め込み用のURLに変換して出力する必要があり、そのための関数を作ってやると出力することができます。
埋め込み用のコードについてですが、基本的にiframeを使って、先程の短縮URLを一部変形させて埋め込んでやればそのまま出力できるので、それほどややこしい処理は必要ありません。
以下は私の方で作成した関数例です。
関数呼出し時に関数に短縮用URLを渡し、埋め込み用のiframeにしたURLを返却します。
ifameの横幅はデフォルトが560にいていますが、引数として渡すことで大きさを変える事が可能です。
//Youtubeの短縮URLをiframe用の埋め込みURLに変換する function convertYoutube($str, $width = 560, $height = 315) { //先頭のアドレスを除外する $str = str_replace("https://youtu.be/","",$str); //iframe用のアドレスに変換する $return_ad = '<iframe width="'.$width.'" height="'.$height.'" src="https://www.youtube.com/embed/'.$str.'" frameborder="0" allowfullscreen></iframe>'; return $return_ad; }