
Übersicht
Externe Inhalte werden erst nach ausdrücklicher Zustimmung des Nutzers geladen, wodurch ein Tracking vor der Interaktion verhindert wird.

Der Backend-Text für jeden Anbieter wird unter „Liste → Einstellungen der Datenschutzschicht“ (Registerkarten „YouTube“, „Vimeo“ und „SoundCloud“) bearbeitet:

Unterstützte Dienste
| Dienst | Typ | Player nach Einwilligung | Domäne | Funktionen |
|---|---|---|---|---|
| YouTube | Video | YouTube-IFrame-Einbettung | youtube-nocookie.com | Mit verbessertem Datenschutz |
| Vimeo | Video | Vimeo-Player einbetten | player.vimeo.com | Standard-Player |
| SoundCloud | Audio / Sets | SoundCloud-Widget-iframe (dieselbe URL wie die gebündelte SoundCloudRenderer in vidply verwenden würde) | w.soundcloud.com | Visuelle Wellenform |
Über den SoundCloud-Renderer
Der mitgelieferte VidPly-Player enthält eine spezielle
SoundCloudRenderer(src/renderers/SoundCloudRenderer.ts), der die SoundCloud-Widget-API in die einheitlichen VidPly-Steuerelemente für Wiedergabe, Pause, Suchlauf und Lautstärke einbindet. Inmpc-vidplySoundCloud wird normalerweise über die Datenschutzebene wiedergegeben, die den SoundCloud-Widget-Iframe direkt nach der Einwilligung lädt – das Widget bringt seine eigene Benutzeroberfläche mit. Wenn Sievidplyeinen eigenständigen Player einbettest (oder denPrivacyLayer.htmlteilweise) einbettest, kannst du den auf dem Renderer basierenden Weg wählen, um vollständig einheitliche VidPly-Steuerelemente für die SoundCloud-Wiedergabe zu erhalten.
So funktioniert es
Vor dem Klick
- Overlay der „Wiedergabe“-Schaltfläche mit Posterbild
- Datenschutzerklärung mit Link zur Richtlinie
- Keine externen Anfragen
- Keine Tracking-Skripte geladen
Nach dem Klick
- Datenschutz-Overlay durch den dienstspezifischen IFrame ersetzt
- YouTube → Einbettung eines datenschutzoptimierten YouTube-IFrames
- Vimeo → Einbettung des Vimeo-Players
- SoundCloud → SoundCloud-Widget-iframe (visueller Wellenformmodus)
- Automatische Wiedergabe aktiviert (sofortige Wiedergabe)
- Ab diesem Punkt gilt die Datenschutzerklärung des jeweiligen Dienstes
- Bei SoundCloud entspricht die URL des Widget-iframe der URL, die VidPly intern
SoundCloudRendererintern verwendet – das für den Nutzer sichtbare Ergebnis ist also identisch; der einzige Unterschied besteht darin, wer es bereitstellt (Datenschutz-Layer vs. VidPly-Renderer).
Benutzererlebnis
Standardtext (YouTube/Vimeo):
„Um das Video zu aktivieren, müssen Sie auf die Schaltfläche klicken. Nach dem Klicken auf die Schaltfläche gelten die Datenschutzbestimmungen von Google.“
Standardtext (SoundCloud):
„Um das Widget zu aktivieren, müssen Sie auf die Schaltfläche klicken. Nach der Aktivierung der Schaltfläche gilt die Datenschutzerklärung von SoundCloud.“
Für Inhaltsredakteure: Nach der Einwilligung laden YouTube und Vimeo ihre eigenen Einbettungsplayer; SoundCloud lädt den Widget-iframe (Wellenform-UI) und nicht die einheitliche Steuerleiste von VidPly – es sei denn, Ihre Website nutzt die unten dokumentierte erweiterte Renderer-Überschreibung.
Anpassbar – Alle Datenschutztexte, Links, Überschriften und Schaltflächenbeschriftungen können im Backend konfiguriert werden.
Mehrsprachige Unterstützung – Die Datenschutzeinstellungen können für jede Sprache übersetzt werden.
Deutsche Übersetzungen enthalten – Die Umstellung erfolgt automatisch basierend auf der Sprache der TYPO3-Website.
Einrichtung im Backend
Einstellungen für die Datenschutzebene konfigurieren
Modul auflisten → Einstellungen für die Datenschutzebene
Erstellen Sie einen Datensatz, um den Inhalt der Datenschutzebene für YouTube, Vimeo und SoundCloud anzupassen:
| Feld | Beschreibung | Erforderlich |
|---|---|---|
| Überschrift | Optionale Überschrift, die über dem Datenschutztext angezeigt wird | Nein |
| Einleitungstext | Text vor dem Link zur Datenschutzerklärung | Ja (auf Standardwert zurückgreifen) |
| Abschlusstext | Text nach dem Link zur Datenschutzerklärung | Ja (Standardwert wird verwendet) |
| Link zur Datenschutzerklärung | URL zur Seite mit der Datenschutzerklärung | Ja (auf Standardwert zurückgreifen) |
| Linktext | Text für den Link zur Datenschutzerklärung | Ja (Standardwert wird verwendet) |
| Schaltflächenbeschriftung | Barrierefreie Beschriftung für die Wiedergabetaste | Nein (auf Standardwert zurückgreifen) |
Die Einstellungen unterstützen mehrsprachige Inhalte über das Übersetzungssystem von TYPO3. Leere Felder werden automatisch auf die Standardübersetzungen zurückgesetzt.
Mediendatensätze erstellen
YouTube/Vimeo:
- VidPly-Mediendatensatz erstellen
- Wählen Sie den Medientyp „YouTube“ oder „Vimeo“ aus
- Fügen Sie eine Video-URL hinzu oder nutzen Sie den TYPO3-Online-Medien-Helper
- Posterbild hinzufügen (empfohlen)
- Speichern
SoundCloud:
- VidPly-Mediendatensatz erstellen
- SoundCloud-Medientyp auswählen
- Track einfügen oder URL eingeben:
- Titel:
soundcloud.com/user/track - Festlegen:
soundcloud.com/user/sets/playlist
- Titel:
- Posterbild hinzufügen (empfohlen)
- Speichern
Technische Umsetzung
Dateien
Partials/VidPly/PrivacyLayer.html- Vorlage für die EinwilligungsschichtJavaScript/PrivacyLayer.js- Verzögertes Laden von Iframes (YouTube-/Vimeo-/SoundCloud-Widget)JavaScript/PlaylistInit.js- Handhabung der Datenschutzebene für WiedergabelistenClasses/Service/PrivacySettingsService.php- Abruf der Datenschutzeinstellungen aus der DatenbankConfiguration/TCA/tx_mpcvidply_privacy_settings.php- Backend-KonfigurationResources/Public/Css/privacy-layer.css- Stile für die Datenschutzebene- Sprachdateien mit Übersetzungen
- (Standalone-Version von VidPly, optional)
vidply/src/renderers/SoundCloudRenderer.ts- Renderer-basierte SoundCloud-Wiedergabe, eingebettet in die Benutzeroberfläche von VidPly
JavaScript
// Lazy iframe creation (only after click)
button.addEventListener('click', function() {
const service = layer.getAttribute('data-vidply-privacy');
const url = layer.getAttribute('data-vidply-url');
// Create and insert iframe with autoplay
layer.innerHTML = createIframe(service, url);
});
Vorlagenlogik
<f:if condition="{vidply.serviceType}">
<f:then>
<!-- Privacy layer (YouTube, Vimeo, SoundCloud) -->
<f:render partial="VidPly/PrivacyLayer" />
</f:then>
<f:else>
<!-- VidPly player (video/audio, including HLS/DASH sources) -->
<f:render section="VideoPlayer" />
</f:else>
</f:if>
Funktionen
Datenschutz
- Keine externen Anfragen vor der Einwilligung
- Keine Cookies bis zur Benutzerinteraktion
- DSGVO-konform
- Klare Datenschutzhinweise
- Zentralisierte Backend-Konfiguration
Benutzererfahrung
- Aktivierung mit einem Klick
- Automatische Wiedergabe (kein Doppelklick)
- Visuelle Wiedergabetaste (im VidPly-Stil)
- Seitenverhältnis 16:9 wird beibehalten
- Anpassbare Überschriften, Texte und Links
Technische Details
- Lazy-Iframe-Erstellung
- Dienstspezifische Einbettungs-URLs
- Mehrsprachige Unterstützung (EN/DE + Backend-Übersetzungen)
- Datenbankgestützte Konfiguration
- Funktioniert für einzelne Titel und Wiedergabelisten
- Minimaler Overhead (~5 KB JS + CSS)
iframe-Konfiguration
YouTube
www.youtube-nocookie.com/embed/{ID}
?autoplay=1&rel=0&modestbranding=1
- Datenschutzoptimierte Domain
- Keine Empfehlungen für ähnliche Videos
- Sauberes Branding
Vimeo
player.vimeo.com/video/{ID}
?autoplay=1&title=0&byline=0&portrait=0
- Übersichtliche Benutzeroberfläche (keine Metadaten)
- Automatische Wiedergabe aktiviert
SoundCloud
w.soundcloud.com/player/
?url={URL}&auto_play=true&visual=true&hide_related=true
- Visuelle Wellenform (16:9)
- Übersichtliche Benutzeroberfläche
- Funktioniert mit Tracks und Sets/Playlists
- Die gleiche URL wird auch von der eigenständigen VidPly-Anwendung
SoundCloudRenderer. Inmpc-vidplyder Datenschutz-Layer wird dieser Iframe direkt eingebunden (das SoundCloud-Widget stellt seine eigenen Steuerelemente für Wiedergabe, Pause und Fortschrittsanzeige bereit). Bei der Nutzung der VidPly-Standalone-VersionSoundCloudRendererwird derselbe Iframe eingebunden, es erfolgt jedoch zusätzlich eine Kommunikation über die SoundCloud-Widget-API, sodass die Wiedergabe über die VidPly-eigenen Steuerelemente (Wiedergabe/Pause/Springen/Lautstärke) gesteuert wird.
Datenbankstruktur
Tabelle: tx_mpcvidply_privacy_settings
In der Datenbank gespeicherte, siteweite Konfiguration der Datenschutzebene:
| Spalte | Typ | Beschreibung |
|---|---|---|
youtube_headline | varchar(255) | Optionale Überschrift für YouTube |
youtube_intro_text | text | Einleitungstext vor dem Link |
youtube_outro_text | text | Abschlusstext nach dem Link |
youtube_policy_link | varchar(255) | URL der Datenschutzerklärung |
youtube_link_text | varchar(255) | Linktext |
youtube_button_label | varchar(255) | Schaltfläche „aria-label“ |
vimeo_* | (gleiche Felder) | Vimeo-Einstellungen |
soundcloud_* | (gleiche Felder) | SoundCloud-Einstellungen |
sys_language_uid | int | Sprach-ID (0 = Standard) |
Übersetzungen
Übersetzungen der Standard-Sprachdatei (Fallback)
Englisch:
privacy.activate_intro- „Um das Video zu aktivieren...“privacy.activate_intro_widget- „Um das Widget zu aktivieren...“privacy.youtube.policy_link- „Googles Datenschutzerklärung“privacy.vimeo.policy_link- „Datenschutzerklärung von Vimeo“privacy.soundcloud.policy_link- „Datenschutzerklärung von SoundCloud“
Deutsch:
privacy.activate_intro- „Um das Video zu aktivieren...“privacy.activate_intro_widget- „Um das Widget zu aktivieren...“privacy.youtube.policy_link- „die Datenschutzerklärung von Google“privacy.vimeo.policy_link- „die Datenschutzerklärung von Vimeo“privacy.soundcloud.policy_link- „die Datenschutzerklärung von SoundCloud“
Hinweis: Die Einstellungen in der Backend-Datenbank haben Vorrang vor den Übersetzungen in den Sprachdateien.
Anpassung
Datenschutztext über das Backend ändern
Empfohlen: Verwenden Sie die Einstellungen für die Datenschutzebene im Backend (Modul „Liste“ → „Einstellungen für die Datenschutzebene“). Dies ermöglicht:
- Zentrale Verwaltung
- Mehrsprachige Unterstützung
- Keine Code-Änderungen erforderlich
- Einfache Aktualisierungen durch Redakteure
Änderung des Datenschutztextes über Sprachdateien
Sprachdateien für Standardwerte bearbeiten:
<trans-unit id="privacy.activate_intro">
<source>Your custom text</source>
<target>Ihr eigener Text</target>
</trans-unit>
Hinweis: Backend-Einstellungen haben Vorrang vor den Übersetzungen in den Sprachdateien.
Individuelles Styling
Die Stile der Datenschutzebene befinden sich in Resources/Public/Css/privacy-layer.css. Überschreiben Sie diese in Ihrem Sitepackage:
.vidply-privacy-layer {
/* Your styles */
}
.vidply-privacy-button:hover svg {
transform: scale(1.15);
}
.vidply-privacy-text .h6 {
/* Customize headline styling */
}
Weitere Dienste hinzufügen
- Dienst zu TCA-Medientypen hinzufügen
- Fall hinzufügen in
PrivacyLayer.jscreateXyzIframe() - Übersetzungen hinzufügen
- Aktualisieren Sie den DataProcessor, um den neuen Typ zu verarbeiten
SoundCloud in den Renderer-Modus umschalten (fortgeschritten)
Wenn Sie möchten, dass die SoundCloud-Wiedergabe über die nativen Steuerelemente von VidPly statt über die Benutzeroberfläche des SoundCloud-Widgets gesteuert wird:
- Überschreiben Sie
Partials/VidPly/PrivacyLayer.htmlso, dass nach der Einwilligung für SoundCloud das Partial ein<audio data-vidply src="{soundcloudUrl}">Element anstelle eines reinen iframe einbindet. - Stellen Sie sicher, dass das VidPly-Kern-Bundle für SoundCloud-Medien geladen wird (standardmäßig
mpc-vidplyist dies nicht der Fall, da externe Dienste den Iframe-Pfad der Datenschutzebene verwenden). Dies können Sie erreichen, indem SieVidPlyProcessor, um$needsVidPlay = true, wenn SoundCloud vorhanden ist. - Das gebündelte
SoundCloudRenderer(wird automatisch für jede URL erkannt, diesoundcloud.com) übernimmt dann die Steuerung und leitet die Funktionen von VidPly für Wiedergabe, Pause, Suchlauf, Lautstärke und Fortschrittsanzeige über die SoundCloud-Widget-API weiter.
Dies ist rein optional – der Standard- mpc-vidply behält den leichtgewichtigen iframe-Pfad bei, wodurch pro Seite weniger JavaScript geladen wird.
Browser-Unterstützung
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Mobile Browser
Testen
ddev typo3 cache:flush
- Testmedien erstellen (YouTube, Vimeo, SoundCloud)
- Überprüfen, ob beim Laden der Seite keine externen Anfragen erfolgen
- Auf die Wiedergabetaste klicken
- Überprüfen, ob das Iframe sofort geladen und abgespielt wird
- Mehrsprachige Websites testen (EN/DE)
Leistung
- Keine Auswirkungen bis zur Benutzerinteraktion
- ~5 KB JavaScript (PrivacyLayer.js)
- ~2 KB CSS (privacy-layer.css, wird bedingt geladen)
- Keine VidPly-Initialisierung für externe Dienste
- Nach dem ersten Laden zwischengespeichert
- Datenbankabfragen werden von TYPO3 zwischengespeichert