Open5

youtube iframe player で start パラメータが効かない

きさらずきさらず

ちょっと前から gozaru.fans で曲の開始位置がズレる問題が発生していた。
(曲再生ページに行くと、曲の開始地点ではない場所から再生が開始される)

原因は、Google アカウントで YouTube の履歴をオンにしていると発生してるっぽい。
最後に再生した再生時間に自動的にシークされ、start が効かなくなってる。

Google アカウントから YouTube 履歴をオフにすれば解決するが、その案内は難しいので
プライバシー強化モードで埋め込むことで cookie を無効化し、アカウント情報を取得しないようにすることで解決した。

きさらずきさらず

プライバシー強化モードとは

プライバシー強化モードを有効にすると、ウェブサイトを訪れたユーザーが動画を再生しない限り、ユーザーに関する情報は YouTube に保存されません。

通常の埋め込みモードだと以下のような URL になる
https://www.youtube.com/embed/jrUa3JpsNt4

プライバシー強化モードだとこう
https://www.youtube-nocookie.com/embed/jrUa3JpsNt4

bonito77bonito77

きさらずさん、
私もYoutube埋め込みでstart&endが効かなくなって困っていました。この投稿を見て実行してみたところ、問題を解決することができました。2日ほど悩んでいましたが、助かりました。ありがとうございました。それにしてもこのような裏技?情報によくたどり着きましたね。

きさらずきさらず

youtube iframe player api で player インスタンス作成時に指定する必要がある。
そのためには host パラメータを利用する。

const player = new YT.Player("player", {
  videoId: "jrUa3JpsNt4",
  ...
  host: "www.youtube-nocookie.com", // host にプライバシー強化モードのURLを指定
  events: {
    onReady: onPlayerReady,
  },
});
きさらずきさらず

この host パラメータ、公式ドキュメントに記載がなくググったら出てきた...
どうやってみんな見つけたんだ...