Matthias Altmann
Systemberater

DSGVO-konforme Vimeo Videos

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

Einführung

Auf vielen Websites werden Vimeo 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 Vimeo Video enthält, wird automatisch eine Verbindung zu den Vimeo Servern aufgebaut, um das Vorschaubild zu laden. Dabei werden die IP-Adresse, Browser-Informationen und weitere Daten des Besuchers, und damit personenbezogene Information, an Vimeo übertragen. Das ist nicht erlaubt ohne explizite Zustimmung.

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

Lösung

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

Mittels dieses Shortcodes wird das Vorschaubild für das Video bereits durch den eigenen Server von Vimeo 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 Vimeo aufzubauen. Erst nach Klick durch den Besucher werden das eigentliche Video, der benötigte Player und weitere Daten von Vimeo geladen. Dieses Verfahren ist DSGVO-konform, weil der Besucher zunächst aktiv bestätigen muss, dass er das Video von Vimeo laden will.

Für den Abruf des Videos wird außerdem ein „Do Not Track“ Parameter (dnt=1) gesetzt und so die Verwendung von Cookies seitens Vimeo vermieden.

MA GDPR Vimeo 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-vimeo video="814361316"]

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

MA GDPR Vimeo - 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 Vimeo Servern geladen. Details siehe Datenschutzerklärung.

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

Vorschaubild

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

MA GDPR Vimeo fragt das Vorschaubild in verschiedenen Größen ab: 1280, 1024, 960, 768, 640 und 480 Pixel Breite.
Vimeo liefert nicht immer all diese Größen zurück, und manchmal auch alternativ verfügbare Größen, wie 295 Pixel.
MA GDPR Vimeo erkennt und behandelt dies entsprechend.

Hinweis:

  • Dem Browser werden alle Bildgrößen zur Auswahl angeboten. Der Browser entscheidet selbst, welche Bildgröße geladen wird.

Cache

Die von Vimeo geladenen Vorschaubilder werden automatisch am Server im Verzeichnis /wp-content/uploads/ma-gdpr-vimeo/ 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 Vimeo Video zwingend mit dem Shortcode-Parameter video angegeben werden.

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

video

Mit dem Parameter video wird die Vimeo ID oder der Vimeo URL des gewünschten Videos angegeben.
Die Video ID besteht aus Zahlen und ist üblicherweise zwischen 6 und 12 Stellen lang..
Bei Angabe eines URL wird die ID daraus automatisch ermittelt.

Beispiele:

Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316"]
Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="https://vimeo.com/814361316"]

aspect-ratio

Das Standard-Seitenverhältnis für Vimeo 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 Vimeo 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 Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316" width="350px" aspect-ratio="1:1"]
Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316" width="200px" aspect-ratio="9:16"]

gdpr-text

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

SpracheText
DANår du har trykket, vil videoen blive indlæst fra Vimeo’s servere. Se vores {privatlivspolitik} for flere informationer.
DEBei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe {Datenschutzerklärung}.
ENWhen clicked, this video is loaded from Vimeo servers. See our {privacy policy} for details.
ESAl hacer clic, este vídeo se carga desde los servidores de Vimeo. Consulte la {política de privacidad} para más detalles.
FIKlikattuasi, tämä video ladataan Vimeon palvelimilta. Katso lisätietoja meidän {tietosuojaselosteesta}.
FREn cliquant, cette vidéo est chargée depuis les serveurs de Vimeo. Voir la {politique de confidentialité}.
HUKattintás után ez a videó a Vimeo 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 Vimeo. Vedere {l’informativa sulla privacy} per i dettagli.
JAクリックすると、この動画が Vimeo サーバーから読み込まれます。詳細については、{プライバシー ポリシー} をご覧ください。
NLNa het klikken wordt deze video geladen vanaf de servers van Vimeo. 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-vimeo video="814361316" 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-vimeo video="814361316" 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-vimeo video="814361316" gdpr-text-size="20px"]
Bei Klick wird dieses Video von den Vimeo 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-vimeo video="814361316" notice-style="background-color:blue; color:white"]
Bei Klick wird dieses Video von den Vimeo 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-vimeo video="814361316" notice-class="my-notice-class"]
Bei Klick wird dieses Video von den Vimeo 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-vimeo video="814361316" width="300px"]
Bei Klick wird dieses Video von den Vimeo 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-vimeo video="814361316" alt="Ein Video vom Planeten Erde" title="Planet Erde"]
Ein Video vom Planeten Erde
Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.

Es können hier auch Vimeo Metadaten eingeblendet werden.

thumbnail

Mit dem Parameter thumbnail kann ein eigenes statt des von Vimeo 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 Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316" thumbnail="/wp-content/uploads/2026/04/ma-gdpr-vimeo_custom-thumbnail.jpg"]
Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316" thumbnail="3871"]

(Photo Credit: NASA/Reid Wiseman)

title-text

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

[ma-gdpr-vimeo video="814361316" title-text="Planet Erde"]
Planet Erde
Bei Klick wird dieses Video von den Vimeo 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.

Es können hier auch Vimeo Metadaten eingeblendet werden.

title-style

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

.ma-gdpr-vimeo-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 Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316"title-text="Planet Erde" title-style="top:unset; bottom:30%; text-align:center"]

Design

Planet Erde
Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316" 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-vimeo video="814361316" 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 Vimeo Servern geladen. Details siehe Datenschutzerklärung.

play-button

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

Button Type
vimeo

[ma-gdpr-vimeo video="814361316" play-button="vimeo"]

Button Typ
circle

[ma-gdpr-vimeo video="814361316" play-button="circle"]

Button Typ
circle-o

[ma-gdpr-vimeo video="814361316" play-button="circle-o"]

Button Typ
play

[ma-gdpr-vimeo video="814361316" play-button="play"]

play-button-color

Die Farbe des Vimeo Play Buttons ist schwarz. Die anderen Button Typen haben weiß 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 Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316" play-button-color="blue"]
Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316" play-button="circle" play-button-color="green"]
Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.
[ma-gdpr-vimeo video="814361316" 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 3862)? Kein Problem!

Beispiel:

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

new-window

Der Parameter new-window öffnet das Video in einem neuen Browser-Tab direkt auf der Vimeo 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-vimeo video="814361316" new-window=1]
Bei Klick wird dieses Video von den Vimeo 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_vimeo'] 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_vimeo'] = [
 '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_vimeo'] = [
 'gdpr-text' => 'Read the {privacy policy}.',
 'gdpr-text-de' => 'Info zum {Datenschutz}</a>',
];

Weitere Vimeo Parameter

Vimeo 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://developer.vimeo.com/api/oembed/videos
Aktuell werden diese Parameter nicht unterstützt, aber bei Nachfrage und Bedarf gegebenenfalls noch implementiert.

Vimeo Player

Bei Klick auf ein Video wird ein iFrame aktiviert, der das Video von den Vimeo Servern lädt.
Alle von Vimeo gewohnten Funktionen sind hier verfügbar.
In MA GDPR Vimeo ist der Vimeo Player so implementiert, dass bei Klick auf ein Video ein eventuell anderes, bereits laufendes Video pausiert wird. So laufen nicht mehrere Videos gleichzeitig.

Vimeo Metadaten

Vimeo stellt zu jedem Video ein paar Metadaten zur Verfügung.
Dazu gehören der Video-Titel, Autor und Beschreibung.
Diese Metadaten können per Platzhalter zur Attributierung des Videos verwendet werden.
Unterstützt werden derzeit die Platzhalter @title@, @author_name@, @description@ in den Parametern alt, title und title-text.

Beispiel:

[ma-gdpr-vimeo video="814361316" title="@title@" title-text="@title@ by @author_name@<br>@description@" alt="@title@"]
Orbiting Earth
Orbiting Earth by Matthias Altmann
Created with Fusion, 2017
Bei Klick wird dieses Video von den Vimeo Servern geladen. Details siehe Datenschutzerklärung.

Hide from Vimeo

In den Privacy Einstellungen zu einem Vimeo Video gibt es die Option „Hide from Vimeo“, die ein Video aus Vimeo Listen entfernt, und den Zugriff nur per spezieller URL mit einem zusätzlichem Hash-Code erlaubt.

Der URL zu dem Video kann verschiedene Formate haben:

  • https://vimeo.com/1234567/a123b456c7
  • https://vimeo.com/1234567:a123b456c7
  • https://vimeo.com/1234567?h=a123b456c7

In all diesen Fällen ist 1234567 die Video ID, und a123b456c7 stellt den Hash Code dar.

MA GDPR Vimeo unterstützt den Hash Code in verschiedenen Varianten

[ma-gdpr-vimeo video="1234567" h="a123b456c7"]
[ma-gdpr-vimeo video="https://vimeo.com/1234567/a123b456c7"]
[ma-gdpr-vimeo video="https://vimeo.com/1234567:a123b456c7"]
[ma-gdpr-vimeo video="https://vimeo.com/1234567?h=a123b456c7"]
Screenshot : Privacy - Hide from Vimeo

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 Vimeo entfernt.
Wenn ein Modal geschlossen wird, wird das Video gestoppt, aber MA GDPR Vimeo verliert jegliche Kontrolle über den Status des Videos.
Ab diesem Zeitpunkt kann MA GDPR Vimeo nicht mehr automatisch Videos stoppen, wenn ein neues Video gestartet wird.

Einstellungen

WordPress Admin-Menü > Einstellungen > MA GDPR Vimeo 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 Vimeo aktualisiert werden.

MA GDPR Vimeo - Admin Cache
MA GDPR Vimeo – 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 Vimeo - Admin Presets
MA GDPR Vimeo – 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-vimeo-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-vimeo-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 Vimeo
      • Manage the video cache (thumbnails and meta data retrieved from Vimeo): Cache can be deleted or refreshed from Vimeo.
      • 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.
    • Vimeo requests
      • Video details and thumbnails are now retrieved using cURL instead of file_get_contents to avoid the requirement for allow_url_fopen.
      • Requests to Vimeo now send Client Hints (Sec-CH-UA...).
      • Accept-Language now uses fallbacks.
    • Error handling and logging:
      • Added more specific error messages for different failure points (e.g. thumbnail retrieval, video info retrieval, parsing errors) to improve
      • If basic video data (title, description, duration) is empty after retrieval from Vimeo, 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 Vimeo thumbnail
    • Added proper html and attribute escaping, and using kses for attributes that allow HTML (title, gdpr-text)
    • Added shortcode parameter 'thumbnail-loading' to optimize thumbnail loading (lazy or eager with fetchfiority=high).
    • Replaced error suppression (@ operator) with try-catch blocks

    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.4.3
    Verfügbare Downloads
    10. Dezember 2025
    Erfordert mindestens WordPress: 5.3
    Getestet bis WordPress: 6.9
    Erfordert PHP: 7.4

    Fixes:

    • If video details don't contain thumbnail details, show error message, possibly with required hash parameter.
  • Version 1.4.2

    Download nicht verfügbar.
    11. Juli 2025

    Fixes:

    • Fixed warning about undefined array key in parse_video_url()
  • Version 1.4.1

    Download nicht verfügbar.
    11. Oktober 2024

    Fixes:

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

    Download nicht verfügbar.
    4. Juli 2024

    New Features:

    • Support for unlisted Vimeo videos with hash parameter "h" in shortcode or URL
    • Loading more thumbnail sizes from Vimeo

    Changes:

    • Replaced deprecated Vimeo SimpleAPI by oEmbed
    • Cache JSON format has changed due to the change from SimpleAPI to oEmbed
  • Version 1.3.1

    Download nicht verfügbar.
    --

    Changes

    • Added width and height attributes for thumbnail images
  • Version 1.3.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)

    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.2.0

    Download nicht verfügbar.
    30. Dezember 2023

    New Features:

    • Complete rebuild of JS
    • Now using Vimeo Player API to provide more control
    • 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_Vimeo::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
  • Version 1.1.1

    Download nicht verfügbar.
    9. November 2023

    Fixes:

    • Error "Attempt to assign property 'notes' on null" in get_video_details()
  • Version 1.1.0

    Download nicht verfügbar.
    4. April 2023

    New Features:

    • Pause handler for closed Oxygen Modals
  • Version 1.0.0

    Download nicht verfügbar.
    3. April 2023

    Initial Release

Download

Source Code