
Übersicht
Externe Inhalte werden erst nach ausdrücklicher Zustimmung des Nutzers geladen, wodurch ein Tracking vor der Interaktion verhindert wird.
Unterstützte Dienste
| Dienst | Typ | Player nach Einwilligung | Domäne | Funktionen |
|---|---|---|---|---|
| YouTube | Video | YouTube-IFrame-Einbettung | youtube-nocookie.com | Erhöhte Privatsphäre |
| Vimeo | Video | Vimeo-Player einbetten | player.vimeo.com | Standard-Player |
| SoundCloud | Audio / Sets | SoundCloud-Widget-iframe (dieselbe URL wie das gebündelte SoundCloudRenderer in vidply verwenden würde) | w.soundcloud.com | Visuelle Wellenform |
Über den SoundCloud-Renderer
Der gebündelte VidPly-Player enthält eine spezielle
SoundCloudRenderer(src/renderers/SoundCloudRenderer.ts), der die SoundCloud-Widget-API in die einheitlichen Wiedergabe-/Pause-/Such-/Lautstärkeregler von VidPly einbindet. Inmpc-vidplySoundCloud wird normalerweise über die Datenschutzschicht gerendert, die den SoundCloud-Widget-Iframe direkt nach der Einwilligung lädt – das Widget bringt seine eigene Benutzeroberfläche mit. Wenn SievidplyStandalone-Version ein (oder diePrivacyLayer.htmlteilweise) einbettest, kannst du den Renderer-basierten Pfad wählen, um vollständig einheitliche VidPly-Steuerelemente für die SoundCloud-Wiedergabe zu erhalten.
So funktioniert es
Vor dem Klicken
- Overlay der „Play“-Schaltfläche mit Posterbild
- Datenschutzerklärung mit Link zur Richtlinie
- Keine externen Anfragen
- Keine Tracking-Skripte geladen
Nach dem Klick
- Datenschutz-Layer durch den dienstspezifischen IFrame ersetzt
- YouTube → datenschutzoptimierte YouTube-IFrame-Einbettung
- Vimeo → Vimeo-Player-Einbettung
- 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-IFrames der URL, die VidPly intern verwendet
SoundCloudRendererintern verwendet – das für den Nutzer sichtbare Ergebnis ist also identisch, der einzige Unterschied besteht darin, wer es bereitstellt (Datenschutzebene vs. VidPly-Renderer).
Benutzererfahrung
Standardtext (YouTube/Vimeo):
„Um das Video zu aktivieren, müssen Sie auf die Schaltfläche klicken. Nach der Aktivierung der 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.“
Anpassbar – Alle Datenschutztexte, Links, Überschriften und Schaltflächenbeschriftungen können im Backend konfiguriert werden.
Mehrsprachige Unterstützung – Datenschutzeinstellungen können für jede Sprache übersetzt werden.
Deutsche Übersetzungen enthalten – Wechselt automatisch basierend auf der Sprache der TYPO3-Website.
Einrichtung im Backend
Konfigurieren Sie die Einstellungen für die Datenschutzebene
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 (auf Standard zurückgreifen) |
| Link zur Datenschutzerklärung | URL zur Seite mit der Datenschutzerklärung | Ja (auf Standard zurückgreifen) |
| Linktext | Text für den Link zur Datenschutzerklärung | Ja (Standardwert verwenden) |
| Schaltflächenbeschriftung | Barrierefreie Beschriftung für die Wiedergabetaste | Nein (auf Standard zurückgreifen) |
Die Einstellungen unterstützen mehrsprachige Inhalte über das Übersetzungssystem von TYPO3. Leere Felder greifen automatisch auf Standardübersetzungen zurück.
Mediendatensätze erstellen
YouTube/Vimeo:
- VidPly-Medien-Datensatz erstellen
- Wählen Sie den Medientyp YouTube oder Vimeo
- Fügen Sie eine Video-URL hinzu oder nutzen Sie den TYPO3-Online-Medien-Helper
- Posterbild hinzufügen (empfohlen)
- Speichern
SoundCloud:
- VidPly-Medien-Datensatz erstellen
- Wähle den SoundCloud-Medientyp aus
- 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
UX
- Aktivierung mit einem Klick
- Automatische Wiedergabe (kein Doppelklick)
- Visuelle Wiedergabetaste (im VidPly-Stil)
- Seitenverhältnis 16:9 beibehalten
- Anpassbare Überschriften, Texte und Links
Technisch
- Lazy-Iframe-Erstellung
- Dienstspezifische Einbettungs-URLs
- Mehrsprachige Unterstützung (EN/DE + Backend-Übersetzungen)
- Database-gesteuerte 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 von der eigenständigen VidPly-Anwendung verwendet
SoundCloudRenderer. Inmpc-vidplyder Datenschutz-Layer bindet diesen Iframe direkt ein (das SoundCloud-Widget bringt seine eigenen Steuerelemente für Wiedergabe, Pause und Fortschrittsanzeige mit). Bei der Verwendung der VidPly-Standalone-VersionSoundCloudRendererwird derselbe Iframe eingebunden, aber zusätzlich über die SoundCloud-Widget-API mit ihm kommuniziert, sodass die Wiedergabe über die eigenen Steuerelemente von VidPly (Wiedergabe/Pause/Suchen/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) | Link-Text |
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.
Benutzerdefiniertes 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
Partials/VidPly/PrivacyLayer.htmlso, dass nach der Zustimmung 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 ist (im Standardfall
mpc-vidplyist dies nicht der Fall, da externe Dienste den Iframe-Pfad der Datenschutzschicht verwenden). Dies erreichen Sie durch eine ErweiterungVidPlyProcessor, um$needsVidPlay = true, wenn SoundCloud vorhanden ist. - Das gebündelte
SoundCloudRenderer(wird automatisch für jede URL erkannt, diesoundcloud.com) übernimmt und leitet die Wiedergabe-/Pause-/Such-/Lautstärke-/Fortschrittsfunktionen von VidPly über die SoundCloud-Widget-API weiter.
Dies ist rein optional – der Standard- mpc-vidply behält den schlanken iframe-Pfad bei, der weniger JavaScript pro Seite lädt.
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