Youtubeの埋め込み動画が終了、途中停止で関連動画、その他の動画が表示する。

以前は埋め込みコードに以下の設定を行うことで制御できていた。

?rel=0

Youtubeの仕様変更によるものだそう。

解決として、埋め込みコードをカスタムするのではなく、apiで表示の制御をするとできた。(2020/07現在)

<div class="youtube">
    <div id="iframe_player"></div>
</div>
<script>
    var tag = document.createElement('script');
    tag.src = "https://www.youtube.com/iframe_api";
    var iframePlayerApiScriptTag = document.getElementsByTagName('script')[0];
    iframePlayerApiScriptTag.parentNode.insertBefore(tag, iframePlayerApiScriptTag);

var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player(‘iframe_player’, {
videoId: “Youtube動画ID”,
playerVars: {
‘modestbranding’: 1,
‘autohide’: 1,
‘controls’: 0,
‘showinfo’: 0,
‘rel’: 0,
‘autoplay’: 1
},
events: {
‘onReady’: onPlayerReady,
‘onStateChange’: onPlayerStateChange
}
});
}
function onPlayerReady(){
}
function onPlayerStateChange(event){
switch(event.data){
case YT.PlayerState.ENDED:
break;
case YT.PlayerState.PLAYING:
break;
case YT.PlayerState.BUFFERING:
break;
case YT.PlayerState.CUED:
break;
}
}
</script>

daigo.designのブログ記事「【コピペでOK】2020年版 Youtube関連動画を非表示にするソースコード」を参考