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
きさらずさん、
私も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 パラメータ、公式ドキュメントに記載がなくググったら出てきた...
どうやってみんな見つけたんだ...