Matthias Altmann
Systemberater

DSGVO-konforme YouTube Videos

MA GDPR YouTube
MA GDPR YouTube
Aktuelle Version: 2.0.0 (10. Mai 2026)
Auch verfügbar für Vimeo!

Einführung

Auf vielen Websites werden YouTube Videos eingebunden.

Nutzt man hierzu die in WordPress (Classic Editor, Gutenberg) oder Page Buildern (Beaver, Bricks, Divi, Elementor, Oxygen, WPBakery und viele andere) vorgesehenen Standard-Verfahren und fragt nicht vorher die Zustimmung des Besuchers ab, verstößt man in der EU gegen die Datenschutzrichtlinien (DSGVO, GDPR): Bei der Anzeige einer Seite, die ein YouTube Video enthält, wird automatisch eine Verbindung zu den YouTube Servern aufgebaut, um das Vorschaubild zu laden. Dabei werden die IP-Adresse, Browser-Informationen und weitere Daten des Besuchers, und damit personenbezogene Information, an YouTube übertragen. Das ist nicht erlaubt ohne explizite Zustimmung.

Wie kann man also YouTube Videos auf der Website DSGVO-konform einbinden?

Lösung

MA GDPR YouTube stellt einen WordPress Shortcode zur Verfügung, der eine DSGVO-konforme und gleichzeitig möglichst einfache und effiziente Einbettung von YouTube Videos ermöglicht.

Mittels dieses Shortcodes wird das Vorschaubild für das Video bereits durch den eigenen Server von YouTube abgerufen und lokal auf dem eigenen Server zwischengespeichert. Dem Browser des Besuchers wird dieses lokale Vorschaubild übergeben, zusammen mit einem Hinweistext zu den Datenschutzrichtlinien. Der Browser des Besuchers braucht also zunächst keine Verbindung zu YouTube aufzubauen. Erst nach Klick durch den Besucher werden das eigentliche Video, der benötigte Player und weitere Daten von YouTube geladen. Dieses Verfahren ist DSGVO-konform, weil der Besucher zunächst aktiv bestätigen muss, dass er das Video von YouTube laden will.

Für den Abruf des Videos außerdem die spezielle Domain youtube-nocookie.com verwendet, wodurch die Verwendung von Cookies seitens YouTube reduziert wird.

MA GDPR YouTube wirkt sich auch deutlich positiv auf die bekannten Speed Test Tools (Page Speed Insights, GTMetrix, …) aus, da keine Daten von externen Servern geladen werden, bevor der Besucher dem nicht zugestimmt hat.

Warum als Shortcode?

Die Verwendung eines Shortcodes ist die vielseitigste Methode, um die Verfügbarkeit im gesamten WordPress-Ökosystem sicherzustellen.

  • Universelle Kompatibilität: Shortcodes funktionieren nahtlos im Classic Editor, in Gutenberg (Block-Editor) und in beliebten Page-Buildern wie Beaver, Bricks, Divi, Elementor, Oxygen, WPBakery und vielen anderen.
  • Theme-Flexibilität: Im Gegensatz zu fest programmierten Skripten können Shortcodes in Widgets, Seitenleisten oder benutzerdefinierten Vorlagen platziert werden, wodurch die Funktionalität unabhängig vom Layout des Themes gewährleistet ist.
  • Einfachheit & Geschwindigkeit: Es bietet eine schlanke „Kopieren-Einfügen“-Lösung, mit der komplexe Logik ausgelöst werden kann, ohne eine einzige Zeile Code schreiben zu müssen.
  • Zukunftssicher: Selbst wenn das Theme oder der Editor gewechselt wird, bleibt der Shortcode funktionsfähig, sodass die Videos ohne zusätzliche Konfiguration sichtbar bleiben.
  • Detaillierte Steuerung: Dank dutzender Parameter innerhalb des Shortcodes können Aussehen und Funktionalität – wie Abmessungen, Texte, Metadaten – für jedes einzelne Video präzise gesteuert werden.

Shortcode

Die einfachste und kürzeste Syntax für den Shortcode lautet:

[ma-gdpr-youtube video="9UGPZ64po9g"]

wobei 9UGPZ64po9g hier für die ID des YouTube Videos steht. Die ID kann man sich ganz einfach aus dem URL zu dem YouTube Video kopieren:

MA GDPR YouTube - Video ID

Der Shortcode kann ganz einfach direkt im Classic Editor oder in Gutenberg als eigener Absatz geschrieben werden.
In Gutenberg gibt es alternativ einen Shortcode Block.
Auch in Page Buildern steht dafür meist ein eigenes Element „Shortcode“ zur Verfügung.

Dieser Shortcode erzeugt folgende Ausgabe:

Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

Das Vorschaubild wird mittig durch den von YouTube bekannten Play-Button überlagert.
Unten sieht der Besucher in einem farblich abgehobenen Balken einen Hinweistext zum Datenschutz.

Vorschaubild

Das Vorschaubild wird einmalig von YouTube geladen, auf dem eigenen Server im Cache gespeichert, und von hier an den Besucher ausgeliefert.

Formate

Es werden verschiedene Bildformate abgerufen:

Format-NameSeiten­verhältnisGröße
mqdefault16:9320 x 180 px
hqdefault4:3480 x 360 px
sddefault4:3640 x 480 px
hq72016:91280 x 720 px
maxresdefault16:9Originalgröße, z.B. 1920 x 1080 px

Die Bildformate dienen der optimalen Darstellung des Vorschaubildes in verschiedenen Bildschirm-Auflösungen.
MA GDPR YouTube verwendet schon bei der Hälfte der nächst höheren Auflösung das höher aufgelöste Vorschaubild, um die Anzeigequalität zu verbessern.

Hinweise:

  • Obwohl YouTube zwar in der Dokumentation schreibt, die oben genannten Formate stünden immer zur Verfügung, fehlen vereinzelt Formate. MA GDPR YouTube erkennt dies und verwendet statt dessen ein passendes der vorhandenen Formate.
  • Die genannten Bildformate werden in den zwei Dateiformaten JPG und WEBP und dem Browser zur Auswahl zur Verfügung gestellt. Der Browser entscheidet selbst, welches Format geladen wird. Dies dient der Kompatibilität mit älteren Browsern.
  • Dem Browser werden alle Bildgrößen zur Auswahl angeboten. Der Browser entscheidet selbst, welche Bildgröße geladen wird.

Cache

Die von YouTube geladenen Vorschaubilder werden automatisch am Server im Verzeichnis /wp-content/uploads/ma-gdpr-youtube/ gespeichert. Das Verzeichnis wird automatisch angelegt, falls es noch nicht existiert. Für jede Video-ID wird darin ein eigenes Unterverzeichnis angelegt.

Shortcode Parameter

Damit der Shortcode funktioniert, muss das gewünschte YouTube Video zwingend mit dem Parameter video angegeben werden.

Daneben erlaubt der Shortcode noch einige weitere Parameter, die nachfolgend erklärt sind.

video

Mit dem Parameter video wird die YouTube ID oder der YouTube URL des gewünschten Videos angegeben.
Die Video ID ist derzeit üblicherweise 11 Stellen lang und kann Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten.
Bei Angabe eines URL wird die ID daraus automatisch ermittelt. Es werden zahlreiche Varianten von YouTube URLs unterstützt.

Beispiele:

Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="https://www.youtube.com/watch?v=9UGPZ64po9g"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="https://youtu.be/9UGPZ64po9g"]

aspect-ratio

Das Standard-Seitenverhältnis für YouTube Videos ist 16:9.
Der Parameter aspect-ratio erlaubt die Verwendung eines davon abweichenden Seitenverhältnisses, wie z.b. 4:3 oder 1:1 (quadratisch).
Es können hier beliebige Seitenverhältnisse angegeben werden, solange die Syntax mit zwei Zahlen durch Doppelpunkt oder Schrägstrich getrennt eingehalten wird: „Breite:Höhe“ oder „Breite/Höhe“
Das Vorschaubild und der YouTube Player werden automatisch in das hier angegebene Seitenverhältnis eingepasst. Das Video selbst wird im Original-Seitenverhältnis angezeigt, eventuell dann mit schwarzen Balken.

Beispiele:

Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" width="350px" aspect-ratio="1:1"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" width="200px" aspect-ratio="9:16"]

gdpr-text

MA GDPR YouTube stellt den Hinweis-Text zu den Datenschutzrichtlinien in verschiedenen Sprachen bereit:

SpracheText
DANår du har trykket, vil videoen blive indlæst fra YouTube’s servere. Se vores {privatlivspolitik} for flere informationer.
DEBei Klick wird dieses Video von den YouTube Servern geladen. Details siehe {Datenschutzerklärung}.
ENWhen clicked, this video is loaded from YouTube servers. See our {privacy policy} for details.
ESAl hacer clic, este vídeo se carga desde los servidores de YouTube. Consulte la {política de privacidad} para más detalles.
FIKlikattuasi, tämä video ladataan Youtuben palvelimilta. Katso lisätietoja meidän {tietosuojaselosteesta}.
FREn cliquant, cette vidéo est chargée depuis les serveurs de YouTube. Voir la {politique de confidentialité}.
HUKattintás után ez a videó a Youtube szervereiről kerül lejátszásra. A részletekért olvassa el az {Adatkezelési Tájékoztatót} oldalt.
ITQuando si clicca, questo video viene caricato dai server di YouTube. Vedere {l’informativa sulla privacy} per i dettagli.
JAクリックすると、この動画が YouTube サーバーから読み込まれます。詳細については、{プライバシー ポリシー} をご覧ください。
NLNa het klikken wordt deze video geladen vanaf de servers van YouTube. Zie ons {privacybeleid} voor meer informatie.

Die Sprache wird basierend auf der Sprache der Website oder Seite ausgewählt. Polylang wird unterstützt.
Wenn kein Standardtext für die Sprache der Seite verfügbar ist, wird stattdessen Englisch verwendet.

Der Begriff in geschweiften Klammern wird durch einen Link zur in WordPress konfigurierten Seite zur Datenschutzerklärung (Einstellungen > Datenschutz) ersetzt, wobei der geklammerte Begriff als Link-Text verwendet wird.

Der Hinweis-Text kann per Parameter gdpr-text an die eigenen Anforderungen, beispielsweise andere Sprachen, angepasst werden.

Beispiel:

[ma-gdpr-youtube video="9UGPZ64po9g" gdpr-text="Bitte lesen Sie vor dem Klick zuerst die {Datenschutzerklärung}."]
Bitte lesen Sie vor dem Klick zuerst die Datenschutzerklärung.

Der Parameter gdpr-text kann auch gezielt gelöscht werden. In diesem Fall wird dann kein Hinweis-Text angezeigt.
Dies kann beispielsweise sinnvoll sein, wenn mehrere Videos auf einer Seite angezeigt werden, und der Hinweis-Text manuell ein mal an zentraler Stelle und nicht bei jedem einzelnen Video angezeigt werden soll.

[ma-gdpr-youtube video="9UGPZ64po9g" gdpr-text=""]

gdpr-text-size

Der Hinweistext wird standardmäßig in der Schriftgröße 0.7em, also 70% der für diesen Block definierten Textgröße, ausgegeben.
Mit dem Parameter gdpr-text-size an die eigenen Wünsche angepasst werden. Erlaubt sind alle gültigen CSS Angaben zur Text-Größe.

Beispiel:

[ma-gdpr-youtube video="9UGPZ64po9g" gdpr-text-size="20px"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

notice-style

Das Design des Datenschutzhinweises kann bei Bedarf angepasst werden.
Weiße Schrift auf blauem Balken? Kein Problem!

Beispiel:

[ma-gdpr-youtube video="9UGPZ64po9g" notice-style="background-color:blue; color:white"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

notice-class

Mit einer eigenen CSS Klasse kann das noch gezielter erfolgen. So kann man z.B. auch das Design des Links steuern:

Beispiel:

<style>
body .my-notice-class {
  background-color: blue;
  color:white;
}
body .my-notice-class a {
  font-weight: bold;
  font-size: 110%;
}
</style>
[ma-gdpr-youtube video="9UGPZ64po9g" notice-class="my-notice-class"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

width

Im Standard wird für den Video-Block eine Breite von 100% gesetzt. Der Video-Block nimmt dadurch die gesamte Breite des umschließenden Blocks, z.B. eines DIVs oder eine Spalte ein. Der Standard von 100% erlaubt eine einfache Anpassung der Responsive-Ansicht durch das übergeordnete Seitenelement.
Die Höhe errechnet sich automatisch aus der Breite und dem Seitenverhältnis.

Bei Bedarf kann die Breite mit dem Parameter width geändert werden. Erlaubt sind alle gültigen CSS Angaben zur Breite eines Elements.

Beispiel:

[ma-gdpr-youtube video="9UGPZ64po9g" width="300px"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

Hinweis: Ich empfehle, die Breite auf dem Standardwert von 100% zu belassen und stattdessen den umschließenden Block für Responsive Viewports mit CSS-Medienabfragen zu gestalten.

alt / title

Die Parameter alt und title setzen die entsprechenden HTML Attribute für das Vorschaubild.
Das Attribut alt dient der Unterstützung von Suchmaschinen und der Barrierefreiheit.
Das Attribut title stellt den Tooltip Text bereit.

[ma-gdpr-youtube video="9UGPZ64po9g" alt="Ein Video vom Planeten Erde" title="Planet Erde"]
Ein Video vom Planeten Erde
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

In diesen Parametern können auch der Original-Titel des Videos und weitere Metadaten verwendet werden.

thumbnail

Mit dem Parameter thumbnail kann ein eigenes statt des von YouTube geladenen Vorschaubildes verwendet werden.
Hier kann entweder ein vollständiger URL zu einem Bild angegeben werden, oder die Medien-ID eines Bildes, das bereits in WordPress hochgeladen wurde.

Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" thumbnail="/wp-content/uploads/2026/04/ma-gdpr-youtube_custom-thumbnail.jpg"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" thumbnail="3841"]

(Photo Credit: NASA/Reid Wiseman)

title-text

MA GDPR YouTube zeigt standardmäßig das Vorschau-Bild von YouTube, aber keinen Titel zu dem Video.
Mit dem Parameter title-text kann ein Titel über dem Vorschaubild angezeigt werden.

[ma-gdpr-youtube video="9UGPZ64po9g" title-text="Planet Erde"]
Planet Erde
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

Der Titel wird standardmäßig oben links angezeigt, weiße Schrift in Standardgröße, mit einem subtilen Schatten, damit der Text auch auf hellen Vorschaubildern lesbar ist.

In diesem Parameter können auch der Original-Titel des Videos und weitere Metadaten verwendet werden.

title-style

Der Standard Style für den Titel ist definiert als:

.ma-gdpr-youtube-title {
  position:absolute; 
  width: 100%; 
  top: 1em; 
  padding: 0 1em; 
  color: white; 
  text-shadow: black 1px 1px 2px;
}

Über den Parameter title-style können Positionierung und Design des Titels angepasst werden.

Positionierung

Planet Erde
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g"title-text="Planet Erde" title-style="top:unset; bottom:30%; text-align:center"]

Design

Planet Erde
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" title-text="Planet Erde" title-style="top:1rem; font-size:2em; color:red; text-align:center;"]

title-class

Zur globalen Steuerung von Positionierung und Design der Titel kann mit dem Parameter title-class auch eine Klasse festgelegt werden.

Beispiel:

<style>
body .my-video-title-class {
  top: 1rem; 
  font-size: 1.5em; 
  line-height: 1;
  color: blue; 
  text-align: center;
}
body .my-video-title-class span {
  display: inline-block;
  transform: rotate(-15deg);
  color:red;
}
</style>
[ma-gdpr-youtube video="9UGPZ64po9g" title-text="Planet Erde <span>mit Klasse</span>" title-class="my-video-title-class"]
Planet Erde mit Klasse
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

play-button

MA GDPR YouTube stellt verschiedene Play Button Typen zur Verfügung.
Standard ist der Button Type youtube. dieser braucht nicht explizit angegeben zu werden.
Über den Parameter play-button kann man den gewünschten Button auswählen:

Button Type
youtube

[ma-gdpr-youtube video="9UGPZ64po9g" play-button="youtube"]

Button Typ
circle

[ma-gdpr-youtube video="9UGPZ64po9g" play-button="circle"]

Button Typ
circle-o

[ma-gdpr-youtube video="9UGPZ64po9g" play-button="circle-o"]

Button Typ
play

[ma-gdpr-youtube video="9UGPZ64po9g" play-button="play"]

play-button-color

Die Farbe des YouTube Play Buttons ist #f61c0d;. Die anderen Button Typen haben white als Standardfarbe.
Mit dem Parameter play-button-color kann eine abweichende Farbe für den Button festgelegt werden.

Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" play-button-color="blue"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" play-button="circle" play-button-color="green"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" play-button="circle-o" play-button-color="black"]

play-button-class

Mit dem Parameter play-button-class kann eine eigene CSS Klasse für den Play Button verwendet werden.
Ein grüner Play Button auf der Seite zu „Grüner Energie“ (Post ID 3827)? Kein Problem!

Beispiel:

<style>
body.postid-3827 .my-play-button {
  color:green;
}
</style>
[ma-gdpr-youtube video="9UGPZ64po9g" play-button-class="my-play-button"]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

start

Mit dem Parameter start kann man das Video ab einer bestimmten Position in Sekunden starten lassen.
Das funktioniert sowohl mit dem eingebetteten Player, als auch bei einem Video im neuen Fenster (siehe Parameter new-window).

Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" start=5]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-youtube video="9UGPZ64po9g" start=5 new-window=1]

new-window

Der Parameter new-window öffnet das Video in einem neuen Browser-Tab direkt auf der YouTube Seite.
Dies ist eventuell wünschenswert, wenn man in WordPress nur sehr kleine Vorschaubilder der Videos anzeigen will, die für eine direkte Einbindung des Players ungeeignet sind.

[ma-gdpr-youtube video="9UGPZ64po9g" new-window=1]
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

Globale Parameter

Alle Shortcode Parameter können global definiert werden.
Das erleichtert die einheitliche Gestaltung der Videos und erspart die Definition der Parameter für jedes einzelne Video.

Dazu wird eine globale Variable $GLOBALS['ma_gdpr_youtube'] als Array angelegt und mit den gewünschten Einstellungen versorgt.
Das geht recht einfach mit einem Code Snippet mit z.B. folgendem Inhalt:

$GLOBALS['ma_gdpr_youtube'] = [
 'play-button' => 'play',
 'play-button-class' => 'my-play-button',
];

Eine Sonderlösung gilt hierbei für den Parameter gdpr-text, der sprach-sensitiv ist.
Die Angabe eines globalen Parameters gdpr-text setzt den Hinweis global auf einen einheitlichen Wert.
Die Ergänzung um ein Sprachkennzeichen steuert die Text-Ausgabe je Sprache.

$GLOBALS['ma_gdpr_youtube'] = [
 'gdpr-text' => 'Read the {privacy policy}.',
 'gdpr-text-de' => 'Info zum {Datenschutz}',
];

Weitere YouTube Parameter

YouTube bietet selbst noch weitere Parameter für die Steuerung der Video-Wiedergabe und das Aussehen des Players an.
Eine Übersicht über die verfügbaren Parameter gibt es hier: https://developers.google.com/youtube/player_parameters
Achtung! Nur die englische Version dieser Seite ist auf einem aktuellen Stand. Die Sprachumschaltung erfolgt auf der Seite oben rechts mittels Sprach-Auswahlliste.

Beispiele:

ParameterBedeutung
rel=0Bei Pausierung bzw. am Ende des Videos werden „Ähnliche Videos“ angezeigt. Das lässt sich nicht abschalten.
Man kann aber steuern, welche Videos angezeigt werden:
rel=1 Ähnliche Videos aus dem gesamten YouTube Archiv
rel=0 Ähnliche Videos nur aus dem aktuelle Kanal
modestbranding=1Standardmäßig wird am unteren Rand des Players ein YouTube Logo angezeigt.
Mit modestbranding=1 wird dieses Logo ausgeblendet.
fs=0Standardmäßig wird eine Symbolschaltfläche angezeigt zur Vollbild-Darstellung des Videos.
Mit fs=0 kann diese Schaltfläche ausgeblendet werden.

YouTube Player API

Bei Klick auf ein Video wird per YouTube Player API der YouTube Player von den YouTube Servern geladen.
Alle von YouTube gewohnten Funktionen sind hier verfügbar.
In MA GDPR YouTube ist der YouTube Player so implementiert, dass bei Klick auf ein Video ein eventuell anderes, bereits laufendes Video pausiert wird. So laufen nicht mehrere Videos gleichzeitig.

YouTube Metadaten

YouTube stellt zu jedem Video eine ganze Reihe an zusätzlichen Metadaten zur Verfügung.
Mittels spezieller Tags können diese Metadaten in die Parameter alt, title und title-text übernommen werden.

TagBedeutung
@title@Original Titel des Videos
@description@Beschreibung zum Video
@genre@Genre des Videos
@author_name@Name des Autors
@author_url@URL des Profils des Autors
@duration_hms@Dauer des Videos im Format hh:mm:ss

Manche Metadaten, wie Titel und Beschreibung, werden durch YouTube eventuell in verschiedenen Sprachen zur Verfügung gestellt. Die Anzeige erfolgt in diesem Fall automatisch in der aktuell verwendeten Sprache der Website.

Beispiel:

[ma-gdpr-youtube video="9UGPZ64po9g" alt="@description@" title="@title@" title-text="@title@<br>@description@<br>@genre@<br>@author_name@"]

In der englischen Version dieser Seite sieht man den englischen Titel dieses Videos.

Animation erstellt in Blackmagic Fusion 8
Blackmagic Fusion 8 Rendering: Einmal um die Erde
Animation erstellt in Blackmagic Fusion 8
Travel & Events
Matt Hias
Bei Klick wird dieses Video von den YouTube Servern geladen. Details siehe Datenschutzerklärung.

Hinweise zu Page Buildern

Oxygen (Classic) Builder

Beim Schließen von Oxygen Modals wird das Attribut src von IFrames zurückgesetzt, um das Video zu stoppen.
Oxygen implementiert dies durch this.src = this.src.
Dadurch werden gleichzeitig sämtliche Event Handler von MA GDPR YouTube entfernt.
Wenn ein Modal geschlossen wird, wird das Video gestoppt, aber MS GDPR YouTube verliert jegliche Kontrolle über den Status des Videos.
Ab diesem Zeitpunkt kann MA GDPR YouTube nicht mehr automatisch Videos stoppen, wenn ein neues Video gestartet wird.

Einstellungen

WordPress Admin-Menü > Einstellungen > MA GDPR YouTube zeigt die Administrations-Seiten, wo der Cache verwaltet und die Voreinstellungen für die Shortcodes festgelegt werden können.

Cache

Diese Seite erlaubt die Verwaltung des Cache.
Es werden alle zwischengespeicherten Videos mit den wichtigsten Details angezeigt.
Einzelne oder alle Videos können aus dem Cache gelöscht, oder von YouTube aktualisiert werden.

MA GDPR YouTube - Admin Cache
MA GDPR YouTube – Admin Cache

Hinweis:
Wird der Cache zu einem Video gelöscht, das noch auf einer Seite eingebunden ist, wird der Video-Cache automatisch neu erzeugt, sobald die Seite das nächste mal aufgerufen wird.

Shortcode Voreinstellungen

Auf dieser Seite können globale Voreinstellungen für die Shortcodes getroffen werden.
Wenn auf der gesamten Website beispielsweise ein bestimmtes Styling verwendet werden soll, kann dies hier zentral statt bei jedem einzelnen Shortcode als Parameter angegeben werden.
Diese zentralen Voreinstellungen können jedoch bei Bedarf bei einzelnen Shortcodes durch Parameter wieder überschrieben werden.

MA GDPR YouTube - Admin Presets
MA GDPR YouTube – Admin Presets

Tipp:
Der gdpr-text kann für bis zu 10 Sprachen vorgegeben werden.
Wird eine andere Sprache benötigt, kann eine bestehende Sprache einfach überschrieben werden.

FAQ – Häufig gestellte Fragen

Safari bietet eine Einstellung „Automatische Wiedergabe“ für Medien.
Ist diese Einstellung auf „Deaktivieren“ oder „Für Medien mit Ton deaktivieren“ gestellt, wird der automatische Start des Videos unterdrückt.
Leider ist mir keine Möglichkeit bekannt, diese Sperre zu umgehen.

Ja, mittels SVG Code.
Dazu brauchen wir eine SVG Symbol Definition. Füge am Ende Deiner Seite einen Code Block ein:
(In Gutenberg als HTML, in Oxygen als Code Block)

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;">
  <defs>
    <symbol id="ma-gdpr-youtube-play-button-custom" viewBox="0 0 20 20">
      <path fill="currentColor" d="M5 20c-0.128 0-0.256-0.049-0.354-0.146-0.195-0.195-0.195-0.512 0-0.707l8.646-8.646-8.646-8.646c-0.195-0.195-0.195-0.512 0-0.707s0.512-0.195 0.707 0l9 9c0.195 0.195 0.195 0.512 0 0.707l-9 9c-0.098 0.098-0.226 0.146-0.354 0.146z"/>
    </symbol>
  </defs>
</svg>

Bei der ID gibst Du nach ma-gdpr-youtube-play-button- den gewünschten Bezeichner, z.B. custom, für Deinen eigen Play Button an.
Der <path /> ist der SVG Code für Deinen eigenen Button. Wenn Du hier fill="currentColor" angbibst, kannst Du die Farbe des Buttons mit dem Shortcode Parameter play-button-color steuern.
Bitte passe auch die viewBox an Deinen SVG Code an.

Bei Deinem Shortcode kannst Du jetzt mit dem Parameter play-button="custom" Deinen eigenen Button auswählen.

Software Installation und Aktualisierung

Installation

Die Installation der Software kann mit unterschiedlichen Verfahren erfolgen:

Plugin:
Die Software steht als Plugin (ZIP Archiv) zur Verfügung und kann in WordPress als Plugin installiert werden.

Code Snippet:
Die Software ist als Code Snippet lauffähig.
Für die Plugins „Code Snippets“ und „Advanced Scripts“ wird eine JSON Datei zum Download angeboten, die dort direkt importiert werden kann.

PHP:
Die Software kann als PHP Datei herunter geladen werden.
Diese PHP Datei kann in anderen Code Snippet Plugins verwendet werden (den Code per Copy & Paste einfügen), oder in ein eigenes WordPress Child Theme eingebunden werden (require_once('path/to/the.php');).

Aktualisierung

Die Software prüft selbständig, ob Aktualisierungen verfügbar sind:

Plugin:
Die Aktualisierung folgt den bekannten WordPress Methoden: Alle 12 Stunden wird geprüft, ob eine neue Version verfügbar ist.
Das Update kann dann manuell, oder auch automatisch erfolgen.

MA Software Plugin Update Notice

Code Snippet & PHP:
Die Software implementiert eine spezielle Methode, die auch bei der Installation als Snippet oder PHP Include eine Prüfung auf Aktualisierungen durchführt. Das Prüfintervall ist, wie bei Plugins, auf 12 Stunden festgelegt.
Steht eine neuere Version zur Verfügung, wird dies im Admin Bereich als Hinweis eingeblendet:

MA Software Update Admin Notice

Download

Version 2.0.0 (10. Mai 2026)
Verfügbare Downloads
Installation als WordPress-Plugin
Import in das Plugin "Code Snippets"
PHP für andere Snippet-Plugins oder zur Verwendung als Include

Spenden ❤️

Es macht mir viel Freude, Software zu entwickeln und damit typische Anforderungen zu lösen.
Die Software stelle ich kostenfrei zur Nutzung zur Verfügung.
Wenn Du möchtest, kannst Du meine vielen Stunden Arbeit mit einer kleinen Kaffee-Spende über PayPal honorieren.

Bei Klick auf den Button wird eine Verbindung zu PayPal aufgebaut.

Spenden werden selbstverständlich ordnungsgemäß durch mich versteuert.

Disclaimer

Diese Software habe ich nach bestem Wissen und Gewissen entwickelt und getestet.
Ich stelle die Software zur freien Verwendung zur Verfügung.
Eine Garantie für die Funktionalität in allen denkbaren WordPress Umgebungen kann ich nicht geben. 
Download und Nutzung dieser Software erfolgen auf eigene Gefahr und Verantwortung.

Change Log

  • Version 2.0.0
    Verfügbare Downloads
    10. Mai 2026
    Erfordert mindestens WordPress: 5.8
    Getestet bis WordPress: 6.9.4
    Erfordert PHP: 7.4

    New Features:

    • Now available as Code Snippet, Include, and Plugin with automatic update check.
      For snippet or include, checks for updates every 12 hrs (same frequency used by WP for plugin updates),
      and shows update notice in admin area, dismissible for 12 hrs. Can also be checked manually on the Settings page.
      For plugin, WordPress standard update mechanism is used.
    • Settings > MA GDPR Youtube
      • Manage the video cache (thumbnails and meta data retrieved from YouTube):
        Cache can be deleted or refreshed from YouTube.
      • Configure presets values for shortcode parameters

    Changes:

    • Predefined GDPR texts for different languages
      Now handle the privacy policy term in curly brackets instead of %s placeholder plus
      separate term. This simplifies editing the texts on the settings page.
      Caution! Old syntax (%s placeholder plus separate term) is not supported anymore.
      If you used the $GLOBALS method to define GDPR texts, this must be adapted to the new format.
    • Languages:
      Use locale (e.g. de-DE) instead of slug (e.g. de) for YouTube requests to retrieve
      translated titles more reliably. Use dash instead of underscore for locale.
      Use site language as fallback if current language not available (e.g. when saving
      Gutenberg content)
    • Error handling and logging:
      • Added more specific error messages for different failure points (e.g. thumbnail
        retrieval, video info retrieval, parsing errors)
      • Logging request URL and video ID for failed YouTube requests to identify
        problematic videos.
      • If basic video data (title, author, thumbnail, duration) is empty after retrieval
        from YouTube, the video is considered as unavailable, and an error message is shown.
      • Handling non-existing manual thumbnails:
        If a manual thumbnail is specified but not found, fall back to YouTube thumbnails
    • Added proper html and attribute escaping, and using kses for attributes that allow HTML (title, gdpr-text)
    • Changed shortcode parameter 'priority' (boolean) to 'thumbnail-loading' (lazy or eager with fetchfiority=high).
    • Storage of YouTube HTML response must now manually be activated via $yt_store_response
    • Requests to YouTube now send Client Hints (Sec-CH-UA...) to improve bypassing YouTube restrictions.

    Fixes:

    • Added width/height attributes to SVG symbol definition, to avoid a gap at the page end in Bricks Builder.
      That gap was caused by a Bricks CSS rule to set a min-width/height for <svg> without width/height attributes.
      (Thanks to Stephen Vaughan for reporting!)
  • Version 1.8.2
    Verfügbare Downloads
    21. März 2026
    Erfordert mindestens WordPress: 5.3
    Getestet bis WordPress: 6.9
    Erfordert PHP: 7.4

    Changes:

    • get_current_language() can now return slug (de) and locale (de-DE) language codes.
      Locale is used for YouTube requests to retrieve translated titles more reliably.
    • Stored HTML response from YouTube now also contains request and response headers
      as comments.
  • Version 1.8.1

    Download nicht verfügbar.
    15. Dezember 2025
    Erfordert mindestens WordPress: 5.3
    Getestet bis WordPress: 6.9
    Erfordert PHP: 7.4

    Fixes:

    • Corrected thumbnailUrl parse pattern

    Changes:

    • HTML Response from YouTube is now always stored to allow analysis.
      Therefore, cache folder is created directly after retrieval of response, also if an error occurred during parsing.
    • Description and keywords from meta itemprop, fallback meta name, to prioritize video info over page info.
      For keywords read from itemprop, adding spaces after commas.
  • Version 1.8.0

    Download nicht verfügbar.
    14. Dezember 2025
    Erfordert mindestens WordPress: 5.3
    Getestet bis WordPress: 6.9
    Erfordert PHP: 7.4

    New Features:

    • More details retrieved from YouTube: Canonical video URL, Thumbnail URL, Author details (name, profile URL), Duration (in seconds and h:m:s format)
    • New related tags for title, alt, title-text attributes: @author_name@, @author_url@, @duration_hms@
    • Microdata (<meta itemprop...>) added to video wrapper div for better SEO.
      (Thanks to Hubertus Pohlmann for the suggestion)
      Please note that the original props from YouTube are used, not the custom ones, like customized title.

    Changes:

    • Skipping retrieval of video details if the video ID is shorter than 11 characters to avoid creating invalid video folders and JSON files.
      This is especially important for Bricks Builder, which executes shortcodes while still typing in the editor.
    • When downloading details from YouTube, the snippet version is stored in the JSON file.
      This allows to check if the JSON (and thus video details) are retrieved and parsed with an older version of the snippet, and should be retrieved again to assure all details are available.
    • Thumbnails are now retrieved using cURL instead of file_get_contents to avoid the requirement for allow_url_fopen.
      (Thanks to Roland Laich for the suggestion)
    • Replaced error suppression (@ operator) with try-catch
  • Version 1.7.5

    Download nicht verfügbar.
    --

    New features:

    • New shortcode parameter "priority" (0/1) to control the loading behavior of the video thumbnail, e.g. if video is placed above the fold.
      priority=0: loading="lazy" (default)
      priority=1: loading="eager" fetchpriority="high"
      (Thanks to Tobias Haas for the feature request)

    (This version hasn't been published officially)

  • Version 1.7.4

    Download nicht verfügbar.
    17. Juli 2025
    Erfordert mindestens WordPress: 5.3
    Getestet bis WordPress: 6.8.2
    Erfordert PHP: 7.4

    Fixes:

    • Replace "u0026" with "&amp;" in YouTube video title.
      (Thanks to Tobias Haas for reporting)
      >> Video folder in /wp-content/uploads/ma-gdpr-youtube/ must be deleted manually to re-trigger video metadata retrieval and storage.
  • Version 1.7.3

    Download nicht verfügbar.
    14. Oktober 2024

    Changes:

    • Retrieval of video details now uses cURL for better handling of YouTube responses.
      (Thanks to Oscar Obianenue for reporting and supporting analysis and tests)
  • Version 1.7.2

    Download nicht verfügbar.
    11. Oktober 2024

    Fixes:

    • Fixed missing styling of video preview (play button, GDPR text) in Bricks builder.
  • Version 1.7.1

    Download nicht verfügbar.
    3. Juli 2024

    Changes:

    • Added width and height attributes for thumbnail images
    • Player observer now handles fullscreen correctly
      (Thanks to Michael Herceg for reporting)
  • Version 1.7.0

    Download nicht verfügbar.
    28. April 2024

    Reorganization of code base.

    New Features:

    • For better accessibility, the Enter key can now be used to start and stop videos.
      (Thanks to Stephan Koenigk for his feature request and pre-release tests)
    • alt, title and title-text now support placeholders @title@ and @description@, language specific, if available. The use of @ is deprecated.

    Changes:

    • For invalid IDs, don't create directory, store json, attempt to retrieve thumbnails
    • In Builders Bricks and Oxygen, click handler is deactivated to allow selecting element
    • Preparation for Bricks Element. Coming soon.
  • Version 1.6.0

    Download nicht verfügbar.
    30. Dezember 2023

    New Features:

    • Complete rebuild of JS
    • Video player management via players registry and observer
      • Pause current video if another one is started
      • Pause video if modal/popup closed (evaluated by visibility of parent DOM element)
    • Support for dynamically embedded videos using AJAX calls:
      • Removed init prevention for AJAX calls
      • Added PHP method MA_GDPR_YouTube::enable_footercode() to trigger output of footer code (styles, scripts, svg) for video embeds dynamically loaded by AJAX calls
      • Play click handler is now assigned as onclick event instead of collecting all videos after page load. This eliminates the need for an extra click handler initialization for players dynamically loaded after page load.
    • Optimizations for accessibility

    Fixes

    • Prefixed wrapper/player IDs with snippet slug to prevent IDs starting with number
    • Fallback for aspect ratio via padding-top (CSS variable, @supports rule) for older browsers not supporting aspect-ratio like Safari < V15

    Changes:

    • Changed debug URL switch from "debug" to "ma-gdpr-youtube-debug" to avoid conflicts
    • Changed cache folder name from ma-gdpr-youtube-thumbnails to ma-gdpr-youtube incl. renaming
  • Version 1.5.0

    Download nicht verfügbar.
    26. Februar 2023

    New Features:

    • Title of the video is now automatically retrieved from YouTube and stored locally.
      Request to YouTube is made using the current language to retrieve translated title if available. Titles are stored per language. So only one request per video and language.
      Title from YouTube can be displayed using parameter title-text="@".
      Title from YouTube can also be used as alt="@" and title="@" for the thumbnail.
    • Shortcode attributes title-text, gdpr-text now allow HTML (e.g. for bold, links, ...)

    Fixes:

    • If video is played in a modal (Oxygen, Bricks), don't restart video after closing modal.
      Implemented via visibility check in onReady event.
      (Requested by Manuel Mochkal)

    Changes:

    • Added compatibility check for allow_url_fopen. Must be On for the snippet to work.
    • Thumbnail size is now based on width and aspect-ratio instead of calculated height.
    • Changed JS function variable from ytVidPlay to ma_gdpr_youtube_ytVidPlay
  • Version 1.4.0

    Download nicht verfügbar.
    9. Februar 2023

    New Features:

    • Added parameter "video" with parsing of YouTube URL variants
    • Added global configuration via $GLOBALS['ma_gdpr_youtube']
    • Added Finnish translations for GDPR text
      (Thanks to Thao Le)
  • Version 1.3.0

    Download nicht verfügbar.
    27. November 2022

    New Features:

    • Added Japanese translations for GDPR text
      (Thanks to Viorel-Cosmin Miron)
    • Added support for WPML
      (Thanks to Viorel-Cosmin Miron)
      Please note there's a WPML bug preventing the creation a policy link with correct language.
      (https://wpml.org/forums/topic/get_the_privacy_policy_link-should-be-translated/#post-8153387)

    Changes:

    • Migrated JavaScript from jQuery to vanilla JS (ES6) to eliminate jQuery dependency.

    Fixes:

    • Changed init skip for JSON calls (introduced in 1.1.0) to allow rendering in Oxygen Builder
  • Version 1.2.0

    Download nicht verfügbar.
    25. September 2022

    New Features:

    • Added new shortcode parameters title-text, title-class, title-style for title overlay
    • Added new shortcode parameters notice-class, notice-style for GDPR text banner
    • Added new shortcode parameters play-button, play-button-color, play-button-style for button variations

    Fixes:

    • Added original image size to source set for custom thumbnail by ID
    • Removed double '.' for German GDPR text.
      (Thanks to Tobias Maximilian Hietsch for reporting)
    • Removed excess trailing comma at sprintf arguments
      (Thanks to Nils Bäßler for reporting)
  • Version 1.1.0

    Download nicht verfügbar.
    7. Februar 2022

    New Features:

    • Support for webp thumbnail image format
      (Requested by Artur Gilbert, Yan Kiara)
    • Added lazy loading for thumbnail images
      (Requested by Yan Kiara)
    • Support for additional YouTube player parameters (e.g. modestbranding=1)
      (Requested by Lau Fa)
    • Added Dansk translations for GDPR text
      (Thanks to Theis L. Soelberg)
    • Added shortcode parameters alt and title for thumbnail image
      (Thanks to Theis L. Soelberg)
    • Added shortcode parameters thumbnail (URL or media ID)
      (Requested by Viorel-Cosmin Miron)
    • Added width/height attributes for thumbnail images
      (Requested by Viorel-Cosmin Miron)
    • Added JS console debugging by URL parameter "debug"

    Fixes:

    • Optimization of SVG symbol minimizing
  • Version 1.0.6

    Download nicht verfügbar.
    5. August 2021

    New Features:

    • Using scheme-less URL to avoid issues with wrong WordPress URL configuration
    • Added parameter new-window to play video in a new window
    • Added "_" to valid character check on video id
    • Hide GDPR notice block if text is empty
    • Load and cache YouTube thumbnails only on very first appearance of a new video ID to improve performance, if specific YouTube thumbnail sizes are not available

    Fixes:

    • Check for availability of specific thumbnail sizes (might not be available from YouTube)
  • Version 1.0.5

    Download nicht verfügbar.
    17. Juni 2021

    Fix: Correction in Hungarian translation

  • Version 1.0.4

    Download nicht verfügbar.
    17. Juni 2021

    Features:

    • Added "-" to valid character check on video id (thanks to Zoltán Kőrösi)
    • Added Hungarian GDPR text (thanks to Zoltán Kőrösi)
  • Version 1.0.3

    Download nicht verfügbar.
    17. Juni 2021

    Fix: Check GET parameter "ct_builder" before accessing it

  • Version 1.0.2

    Download nicht verfügbar.
    15. Juni 2021

    Feature: Add link to privacy policy to default gdpr text if configured in WordPress

  • Version 1.0.1

    Download nicht verfügbar.
    15. Juni 2021

    Fix: Allow same video embedded multiple times

  • Version 1.0.0

    Download nicht verfügbar.
    15. Juni 2021

    Initial Release

Download

Source Code