web-dev-qa-db-ja.com

Youtube Javascript API-関連動画を無効にする

確かに、これは不十分に文書化されているように見えるか、文書でそれを見ることができません。基本的に、関連する動画は不要です(?rel=0)JavaScript APIを使用します。

$players[$vidIdPlaceholderRef] = new YT.Player('player_' + $vidIdPlaceholderRef, {
    height: '550',
    width: '840',
    videoId: $vidId
});

私が持っているものです。

私も試しました:

$players[$vidIdPlaceholderRef] = new YT.Player('player_' + $vidIdPlaceholderRef, {
    height: '550',
    width: '840',
    videoId: $vidId + '?rel=0',
    rel : 0
});

運がありません。追加できるオプションを知っている人はいますか(試してみましたrel : 0運がありません)

65
Phil Jackson

「rel」は、ここで指定されているプレーヤーパラメータです。

https://developers.google.com/youtube/player_parameters#rel

プレーヤーパラメータをiframeプレーヤーに追加するには、2番目のコンストラクター引数のplayerVarsプロパティを指定する必要があります(これを書いている時点では here 、および IFrame APIドキュメントページ

例えば.

new YT.Player('playerid', {
    height: '550',
    width: '840',
    videoID: 'video_id',
    playerVars: {rel: 0, showinfo: 0, ecver: 2}
});
150
Tim Wintle

Rel playerパラメータの動作が変更されました。

ドキュメントから

Relパラメーターの動作は、2018年9月25日以降に変更されています。変更の影響は、関連するビデオを無効にできないことです。ただし、プレーヤーに表示される関連動画は、再生されたばかりの動画と同じチャンネルのものであることを指定するオプションがあります

そのため、関連する動画を無効にすることはできなくなりました。代わりにplayerVars: {rel:0}は、プレーヤーの動作を変更し、指定されたチャンネルからの提案を表示します。

12
Kuu_Tamo

受け入れられた解決策は私にとってうまくいきませんでした。動作するのは:

1)relパラメーターを含むiframeをhtmlに配置する

<iframe id="youtube-video" width="560" height="315" 
 src="https://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1&rel=0&modestbranding=1" 
 frameborder="0" enablejsapi="1" allowfullscreen></iframe>

2)JavaScript APIを使用して、既存のプレーヤーにアタッチします

var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var player;
function onYouTubeIframeAPIReady() {
  player = new YT.Player('youtube-video', {
    events: {
      'onReady': onPlayerReady,
      'onStateChange': onPlayerStateChange
    }
  });
}

function onPlayerReady(event) {
    console.log("ready");
}

function onPlayerStateChange(event) {
    console.log("state changed");
}

デモフィドル: http://jsfiddle.net/bf7zQ/195/

3
hallman76

SWFObjectを使用している場合は、次のような操作を行うだけです。

function loadVideo() {
        var params = { allowScriptAccess: "always" }
            , atts = { id: "myvideo" }
        ;
//NOTE THE END OF THE BELOW LINE vvvvvv
        swfobject.embedSWF("https://www.youtube.com/v/[video id here]?enablejsapi=1&playerapiid=myvideo&version=3&rel=0"
         , "videoplaceholderid"
         , "768", "432", "8", null, null, params, atts);
    }

rel=0をURLの最後に追加するだけです。

1
Jason
new YT.Player('playerid', {
    height: '550',
    width: '840',
    videoID: 'video_id',
    playerVars: {rel: 0},
});
0
Sabin Acharya

クイックソリューションを次に示します。

setInterval(function(){
    if($('iframe').length > 0){
        $('iframe').each(function(){
            if($(this).hasClass('gotYou')){
                //do nothing
            }else{
                var getMySrc = $(this).attr('src');
                var newSrc = getMySrc.split('?');
                console.log(newSrc);
                var freshURL = newSrc[0]+'?rel=0&'+newSrc[1];
                console.log(freshURL);
                $(this).addClass('gotYou');
                $(this).attr('src', freshURL );         
            }
        });
    }
}, 1);

それが何をするのか、それはあなたの文書でiframeを探します。 iframeが見つかった場合、iframeのsrcを取得し、?マークしてから? by ?rel=0&。ここでの目標は、rel=0

0

APIを使用してコーディングする必要はありません。

You Tube埋め込みボタン->詳細を表示-> [動画の終了時に推奨動画を表示]オプションにチェックを入れます