Sie erhalten verwandte Videos an zwei Stellen: am Ende des Videos mit dem Raster und am Ende des Videos, während Sie angehalten haben. Ich habe einen Weg gefunden, sie am Ende zu entfernen und die unteren für die meisten Unternehmen zumindest erträglich zu machen.
1. Entfernen Sie verwandte Videos am Ende eines Videos
IFrame Player API: Ereignisse
Um zu vermeiden, dass verwandte Videos am Ende eines Videos angezeigt werden, habe ich das Video einfach angehalten, damit wieder das Miniaturbild und die Wiedergabetaste angezeigt werden:
var player = new YT.Player('player', {
height: '390',
width: '640',
events: {
'onStateChange': function(event){
switch(event.data){
case 0:
player.stopVideo();
break;
case -1:
case 1:
case 2:
case 3:
case 5:
default:
break;
}
}
}
});
Sie können auch durch player.stopVideo();
jeden anderen Code ersetzen , den Sie ausführen möchten.
2. Wenn Sie verwandte Videos am Ende eines Videos erstellen, werden nur Ihre Videos angezeigt
IFrame Player API: Eingebettete YouTube-Player und Player-Parameter
rel=0
vermeidet nicht länger das Anzeigen verwandter Videos; Jetzt werden immer noch verwandte Videos angezeigt, aber zumindest stammen sie nur von Ihrem Kanal. Dies änderte sich irgendwann um den 25. September 2018 ( Dokumentation ).
Durch die Einstellung playerVars
in YT.Player können zumindest verwandte Videos nur die Videos unseres Kanals anzeigen. Die Dokumentation ist nicht klar, dass Sie playerVars
als Objekt eingerichtet haben müssen , aber Sie können es wie folgt einrichten:
var player = new YT.Player('player', {
...
playerVars:{
rel: 0
modestbranding: 1,
},
...
});
2A. Mögliche Möglichkeit, verwandte Videos von unten zu entfernen
Ich kann mehr darüber nachdenken, wenn ich Zeit habe, aber hier könnte eine Antwort liegen:
Wir können leicht auf das iframe-Objekt zugreifen, aber wir können nichts damit anfangen : IFrame Player-API: Zugriff auf und Änderung von DOM-Knoten . Es scheint, dass aufgrund der Bearbeitung eines Iframes von YouTube Sicherheitsbedenken bestehen (unabhängig davon, was wir tatsächlich tun würden). Im Idealfall könnte ich einfach den Text "Weitere Videos" mit entfernen player.getIframe().contentWindow.document.querySelector('.ytp-pause-overlay.ytp-scroll-min').remove()
, aber beim Ausführen wird player.getIframe().contentWindow.document
eine Fehlermeldung angezeigt SecurityError: Permission denied to access property "document" on cross-origin object
.
Hat aber playerVars
auch einen origin
Wert, mit dem wir trotzdem auf das iframe-Objekt zugreifen können:
var player = new YT.Player('player', {
...
playerVars:{
origin: 'https://mywebsite.com'
},
...
});
Es funktioniert nicht mit localhost, aber das kann eine Sache von Chromium und Firefox sein . Vielleicht ist dies eine legitime Option auf einer Live-Site. Ich werde diesen Beitrag aktualisieren, wenn ich das versuche, um Sie wissen zu lassen, ob ich Erfolg habe.