この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: 動画再生を繰り返す方法
SEOタイトル: YouTube / HTML5 video をループ再生する方法|iframe loop パラメータ・JS API

この記事の要点
  • YouTube iframe 埋め込みは ?loop=1&playlist=VIDEO_ID でループ可能。playlist 必須
  • HTML5 なら loop 属性を付けるだけ
  • YouTube IFrame Player API なら onStateChangeENDED 検知して playVideo()
  • YouTube 本家サイトでは動画上で右クリック → ループ再生でブラウザ単体でループ可能
  • 複数動画を順次ループしたい場合は playlist パラメータに複数 ID をカンマ区切り

パターン1: YouTube iframe 埋め込みでループ

YouTube の埋め込みコードに loop=1playlist=動画ID を追加します。playlist パラメータが無いとループしません(仕様上の制約)。


主要パラメータ

パラメータ説明
loop=1ループ有効。playlist 併用が必須
playlist=IDループ対象動画 ID(埋め込み動画と同じ ID)
autoplay=1自動再生(多くのブラウザで mute=1 必須)
mute=1ミュート起動
controls=0コントロール非表示
start=3030 秒から開始
end=6060 秒で終了
rel=0関連動画を同チャンネルのみに制限

パターン2: 複数動画を順次ループ


パターン3: HTML5 video の loop 属性

自前で動画ファイルをホスティングしている場合は loop 属性が最も簡単です:





パターン4: YouTube IFrame Player API でループ制御

動画終了時に何か処理を入れたい場合や、複雑な制御が必要な場合は JavaScript API を使います。

パターン5: 一部区間だけループ

// 30 秒〜60 秒を繰り返す
function onPlayerStateChange(event) {
  if (event.data === YT.PlayerState.PLAYING) {
    checkLoop();
  }
}

function checkLoop() {
  if (!player) return;
  const current = player.getCurrentTime();
  if (current >= 60) {
    player.seekTo(30);
  }
  setTimeout(checkLoop, 500);
}

パターン6: HTML5 video で onended イベント

const video = document.querySelector('video');

video.addEventListener('ended', () => {
  console.log('動画終了 → 再生');
  video.currentTime = 0;
  video.play();
});

// 一部区間のループ
video.addEventListener('timeupdate', () => {
  if (video.currentTime >= 60) {
    video.currentTime = 30;
  }
});

YouTube 本家サイトでのループ再生

動画ページ上で動画上を右クリックすると「ループ再生」というメニュー項目があります。これを選択すると、ブラウザを開いている間は連続ループします。

  1. YouTube で動画を開く
  2. 動画の上で右クリック
  3. 「ループ再生」を選択
  4. メニューにチェックが入ればループ有効

スマートフォン版 YouTube アプリでも「歯車 → ループ再生」または再生中の動画長押しでループ可能になりました(バージョン依存)。

外部サービスでループ再生

サービスURL 形式
listenonrepeat.comlistenonrepeat.com/watch/?v=VIDEO_ID
youtuberepeater.comyoutuberepeater.com/watch?v=VIDEO_ID
infinitelooper.com区間ループ可能

自動再生がブロックされる問題

Chrome / Safari / Firefox は音声付きの autoplay をブロックします。確実に自動再生したいなら:

  • mute=1 (YouTube) / muted (HTML5) を必ず付ける
  • ユーザー操作 (クリック / タップ) を契機に再生開始
  • iOS Safari は playsinline 属性が必須(インライン再生)

よくあるトラブル

症状原因対処
loop=1 を付けたのにループしないplaylist パラメータ無しplaylist=動画ID を追加
自動再生されない音声付きの autoplay 制限mute=1 / muted を追加
iOS で全画面になるplaysinline 無しvideo に playsinline 追加
ループ時に一瞬黒画面動画読み直しpreload="auto" 設定 or 2 つの video 切替

FAQ

Q: なぜ playlist パラメータが必要?
A: YouTube の仕様で、loop は「プレイリストを最後まで再生したら最初に戻る」機能のため。単一動画でも playlist に同じ ID を入れるとループ動作になります。

Q: 広告が入るとループが止まる
A: プレロール広告は埋め込みでも表示されることがあります。YouTube Premium で広告無し再生するか、自前ホストの動画にする必要があります。

Q: 縦動画 (Shorts) はループできる?
A: 通常の embed として youtube.com/embed/VIDEO_ID 形式で読めば、Shorts でも loop パラメータが効きます。