タイトル: 動画再生を繰り返す方法
SEOタイトル: YouTube / HTML5 video をループ再生する方法|iframe loop パラメータ・JS API
| この記事の要点 |
|
パターン1: YouTube iframe 埋め込みでループ
YouTube の埋め込みコードに loop=1 と playlist=動画ID を追加します。playlist パラメータが無いとループしません(仕様上の制約)。
主要パラメータ
| パラメータ | 説明 |
|---|---|
loop=1 | ループ有効。playlist 併用が必須 |
playlist=ID | ループ対象動画 ID(埋め込み動画と同じ ID) |
autoplay=1 | 自動再生(多くのブラウザで mute=1 必須) |
mute=1 | ミュート起動 |
controls=0 | コントロール非表示 |
start=30 | 30 秒から開始 |
end=60 | 60 秒で終了 |
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 本家サイトでのループ再生
動画ページ上で動画上を右クリックすると「ループ再生」というメニュー項目があります。これを選択すると、ブラウザを開いている間は連続ループします。
- YouTube で動画を開く
- 動画の上で右クリック
- 「ループ再生」を選択
- メニューにチェックが入ればループ有効
スマートフォン版 YouTube アプリでも「歯車 → ループ再生」または再生中の動画長押しでループ可能になりました(バージョン依存)。
外部サービスでループ再生
| サービス | URL 形式 |
|---|---|
| listenonrepeat.com | listenonrepeat.com/watch/?v=VIDEO_ID |
| youtuberepeater.com | youtuberepeater.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 パラメータが効きます。