9/7まで 最大30%OFF 初心者編|無料コーディング教材|HTML・CSS・jQueryを実践で学ぶ

HTMLにYouTube動画を埋め込む方法|レスポンシブ対応とiframe設定を初心者向けに解説

HTMLコードとYouTube動画プレイヤーを並べたアイキャッチ画像

HTMLへYouTube動画を埋め込むには、動画ページの「共有」から「埋め込む」を選び、表示されたiframeコードをコピーします。動画へのリンクを置くだけの場合と違い、読者はページを離れずに再生できます。

この記事では、埋め込みコードの取得手順、iframe属性の意味、スマートフォン対応、プライバシー強化モード、開始位置や字幕などのパラメータ、再生できないときの確認方法まで解説します。

HTMLにYouTube動画を埋め込む手順

埋め込みコードはパソコン版YouTubeから取得できます。次の順番で進めましょう。

  1. 埋め込みたいYouTube動画をパソコンで開く
  2. 動画の下にある「共有」を選ぶ
  3. 共有方法の一覧から「埋め込む」を選ぶ
  4. 必要なら開始位置などを設定する
  5. 表示されたHTMLコードをコピーする
  6. 自分のHTMLファイルへ貼り付ける
動画の共有、埋め込みコードのコピー、HTMLへの貼り付け、レスポンシブ表示の4手順を示した図
動画の共有から埋め込みコードを取得し、HTMLへ貼り付けて、複数の画面幅で表示を確認する流れです。

コピーしたコードは、動画を表示したい場所へ貼り付けます。次の例ではYouTube IFrame Player APIの公式サンプル動画IDを使用しています。

<iframe
  width="560"
  height="315"
  src="https://www.youtube.com/embed/M7lc1UVf-VE"
  title="YouTube動画プレイヤー"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
  referrerpolicy="strict-origin-when-cross-origin"
  allowfullscreen
></iframe>

YouTubeが生成するコードは更新されることがあります。手入力だけで組み立てず、まず公式の「埋め込む」から最新コードを取得し、必要な部分を調整してください。

iframeの属性と役割

iframeは、現在のHTMLページ内へ別のWebページを表示する要素です。YouTubeの埋め込みプレイヤーも、YouTube側のページをiframe内へ読み込んでいます。

属性役割
src埋め込みプレイヤーのURLと動画IDを指定する
widthheightプレイヤーの基本寸法をCSSピクセルで伝える
titleiframeの内容を支援技術へ説明する
allow自動再生や全画面表示など、利用を許可する機能を指定する
referrerpolicy埋め込み先へ送る参照元情報の方針を指定する
allowfullscreen全画面表示を許可する
loading="lazy"画面外のiframe読み込みを遅らせる

srcは通常の動画URLではなくembed URLを使う

ブラウザのアドレス欄にあるhttps://www.youtube.com/watch?v=...をそのままsrcへ入れるのではなく、https://www.youtube.com/embed/動画ID形式の埋め込みURLを使います。

<!-- 埋め込み用URL -->
<iframe
  src="https://www.youtube.com/embed/M7lc1UVf-VE"
  title="YouTube動画プレイヤー"
></iframe>

title属性で動画の内容を説明する

iframeには、内容を識別できるtitle属性を付けます。ページ内に複数の動画があるなら、すべてを「YouTube動画」にせず、「商品Aの使い方を解説する動画」のように区別できる名前へ変更しましょう。

frameborder属性は使わずCSSで枠線を消す

古い埋め込みコードで見かけるframeborder="0"は現在のHTMLでは使いません。枠線を消したい場合はCSSのborder: 0で指定します。

.youtube-player {
  border: 0;
}

YouTube動画をレスポンシブ表示する

コピーしたiframeは固定のwidthとheightを持つため、そのままではスマートフォンの画面からはみ出す場合があります。classを追加し、CSSで横幅100%と16:9の比率を指定しましょう。

<iframe
  class="youtube-player"
  width="560"
  height="315"
  src="https://www.youtube.com/embed/M7lc1UVf-VE"
  title="YouTube動画プレイヤー"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
  referrerpolicy="strict-origin-when-cross-origin"
  allowfullscreen
></iframe>
.youtube-player {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 0;
}

width: 100%は親要素の幅に合わせ、aspect-ratio: 16 / 9は横幅が変わってもプレイヤーの比率を保ちます。ブラウザの幅を狭め、横スクロールや動画の変形がないことを確認してください。

最大幅を決めて中央に配置する

大きな画面で動画が広がりすぎる場合は、外側の要素へmax-widthを指定します。

<div class="youtube-wrapper">
  <iframe
    class="youtube-player"
    src="https://www.youtube.com/embed/M7lc1UVf-VE"
    title="YouTube動画プレイヤー"
    allowfullscreen
  ></iframe>
</div>
.youtube-wrapper {
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
}

.youtube-player {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 0;
}

width、max-width、aspect-ratioの考え方は、次の記事でも詳しく解説しています。

ページ全体をスマートフォンへ対応させる方法はこちらで確認できます。

プライバシー強化モードを使う

YouTubeのプライバシー強化モードでは、埋め込み動画の視聴をYouTube上の閲覧体験やパーソナライズへ利用しない形でプレイヤーを表示できます。埋め込みURLのドメインをwww.youtube.comからwww.youtube-nocookie.comへ変更します。

<iframe
  class="youtube-player"
  src="https://www.youtube-nocookie.com/embed/M7lc1UVf-VE"
  title="YouTube動画プレイヤー"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
  referrerpolicy="strict-origin-when-cross-origin"
  allowfullscreen
></iframe>

プライバシー強化モードでも、動画を再生すればYouTubeとの通信は発生します。サイトの利用地域、同意管理、プライバシーポリシーに合わせて運用を判断してください。

開始位置・字幕・自動再生を設定する

埋め込みURLの末尾へクエリパラメータを追加すると、再生方法を調整できます。最初のパラメータは?、2つ目以降は&でつなぎます。

指定した秒数から再生する

startは動画の先頭から数えた開始秒、endは終了秒です。1分30秒から5分までなら、90秒と300秒を指定します。

<iframe
  src="https://www.youtube.com/embed/M7lc1UVf-VE?start=90&amp;end=300"
  title="1分30秒から再生するYouTube動画"
  allowfullscreen
></iframe>

字幕を最初から表示する

cc_load_policy=1で字幕を既定表示し、cc_lang_pref=jaで日本語を優先できます。対象動画に指定言語の字幕が用意されている必要があります。

<iframe
  src="https://www.youtube.com/embed/M7lc1UVf-VE?cc_load_policy=1&amp;cc_lang_pref=ja"
  title="日本語字幕を表示するYouTube動画"
  allowfullscreen
></iframe>

自動再生は慎重に使う

autoplay=1で自動再生を要求できますが、ブラウザのポリシーにより音声付き再生はブロックされることがあります。必要な場合はmute=1も指定し、iframeのallowへautoplayを含めます。

<iframe
  src="https://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&amp;mute=1&amp;playsinline=1"
  title="ミュートで自動再生するYouTube動画"
  allow="autoplay; encrypted-media; picture-in-picture"
  allowfullscreen
></iframe>

自動再生は、ページを開いただけで再生処理やデータ共有が始まり、読者を驚かせる場合もあります。通常は再生操作を読者へ任せ、明確な理由がある場合だけ使いましょう。

rel=0でも関連動画は完全には消えない

現在のYouTubeでは、rel=0を付けても再生後の関連動画を完全に非表示にはできません。関連動画の候補を、埋め込んだ動画と同じチャンネルから選ぶ動作になります。

<iframe
  src="https://www.youtube.com/embed/M7lc1UVf-VE?rel=0"
  title="YouTube動画プレイヤー"
  allowfullscreen
></iframe>

画面外の動画は遅延読み込みする

YouTubeプレイヤーは複数のリソースを読み込むため、ページ下部にある動画へloading="lazy"を付けると、近くまでスクロールするまで読み込みを遅らせられます。

<iframe
  class="youtube-player"
  src="https://www.youtube-nocookie.com/embed/M7lc1UVf-VE"
  title="YouTube動画プレイヤー"
  loading="lazy"
  allowfullscreen
></iframe>

ページを開いた直後に見える重要な動画まで遅延すると、表示が遅く感じられることがあります。ファーストビューの動画は通常読み込み、画面外の動画へloading=”lazy”を使い分けてください。

YouTube動画を埋め込めないときの確認ポイント

動画所有者が埋め込みを許可しているか

動画の所有者が外部サイトへの埋め込みを無効にしている場合、iframeへ表示できません。非公開動画、削除済み動画、年齢や地域などの制限がある動画も再生できないことがあります。

エラー153が表示される

YouTubeの埋め込みプレイヤーは、HTTP Refererなどによる埋め込み元の識別を必要とします。Referrer-Policy: no-referrerで参照元を完全に削除すると、エラー153になる場合があります。

通常のブラウザ既定値であるstrict-origin-when-cross-originを維持し、サイト全体のHTTPヘッダー、iframeのreferrerpolicy、CDNやセキュリティ設定を確認してください。

埋め込みURLと動画IDを確認する

srcが/embed/動画ID形式になっているか、動画IDの前後へ余計な文字が入っていないか確認します。複数パラメータをつなぐときは、最初が?、以降が&です。

Content Security Policyやネットワーク制限を確認する

サイトのContent Security Policyでiframeの読み込み先を制限している場合、youtube.comyoutube-nocookie.comが許可されているか確認します。学校や社内ネットワークでは、管理者側のフィルタリングでブロックされる場合もあります。

プレイヤーのサイズを小さくしすぎていないか

YouTube IFrame Player APIの要件では、プレイヤーの表示領域は少なくとも200×200ピクセル必要です。操作ボタンを表示する16:9プレイヤーは、480×270ピクセル以上が推奨されています。

WordPressへYouTube動画を埋め込む場合

WordPressのブロックエディターでは、YouTubeブロックへ通常の動画URLを貼るだけで埋め込める場合があります。独自HTMLブロックへiframeコードを貼る方法もありますが、利用権限やセキュリティ設定によってコードが除去されることがあります。

WordPress側のレスポンシブ処理やテーマCSSもあるため、公開後はパソコンとスマートフォンの両方で実際のプレイヤーを確認してください。

画像や動画を含むメディアのレスポンシブ対応を理解したい方は、こちらも参考にしてください。

まとめ

HTMLへYouTube動画を埋め込むときは、動画ページの「共有」から「埋め込む」を選び、生成されたiframeコードを貼り付けます。title属性を具体的にし、古いframeborder属性ではなくCSSで枠線を調整してください。

スマートフォン対応にはwidth: 100%aspect-ratio: 16 / 9を使い、用途に応じてプライバシー強化モードやloading=”lazy”も検討します。公開後は動画の再生、全画面表示、表示幅、ConsoleやNetworkのエラーまで確認しましょう。

参考資料