oEmbed
Protokoll zur automatischen Einbettung von Inhalten (Videos, Tweets, etc.) durch Austausch einer URL gegen fertigen Embed-Code.
Aktualisiert: 23. Februar 2026
Was ist oEmbed?
oEmbed ist ein offenes Format, das es ermöglicht, eine URL gegen einen einbettbaren HTML-Snippet auszutauschen — automatisch, ohne manuelles Suchen nach Embed-Codes. Fügt man in WordPress einen YouTube-Link in den Editor ein, verwandelt WordPress ihn dank oEmbed selbstständig in einen eingebetteten Player. Das Protokoll wurde 2008 von Leah Culver, Mike Malone und Cal Henderson spezifiziert und ist seither auf oembed.com dokumentiert.
Der Mechanismus ist elegant einfach: Der Content-Consumer (WordPress) fragt beim Content-Provider (YouTube, Vimeo, Twitter/X, Spotify etc.) per API an: "Was soll ich für diese URL einbetten?" und erhält als Antwort HTML, JSON oder XML mit dem fertigen Embed-Code.
Typ: Einbettungsprotokoll
- Spezifikation: oembed.com
- Eingeführt: 2008
- WordPress-Integration: Seit Version 2.9 (2009)
- Relevanz für WordPress/Web: Hoch — betrifft Datenschutz und Performance
Wie funktioniert oEmbed?
Das Protokoll läuft in zwei Schritten ab:
Schritt 1 — Discovery: WordPress prüft, ob der Anbieter der URL einen oEmbed-Endpoint anbietet. Das geschieht entweder über eine hardcodierte Liste bekannter Anbieter (in WordPress: wp_oembed_add_provider()) oder über Auto-Discovery via <link>-Tag im HTML-Head der Zielseite.
Schritt 2 — Endpoint-Abfrage: WordPress ruft den oEmbed-Endpoint des Anbieters auf, z.B.:
https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=XXXX&format=json
Die Antwort ist ein JSON-Objekt:
{
"type": "video",
"title": "Videotitel",
"html": "<iframe width='560' height='315' src='https://www.youtube.com/embed/XXXX'...></iframe>",
"width": 560,
"height": 315
}
WordPress speichert das Ergebnis als Post-Meta (Transient-Cache), sodass nicht bei jedem Seitenaufruf eine externe Anfrage gestellt wird.
oEmbed in der Praxis
Für WordPress-Redakteure ist oEmbed Alltag: URLs von YouTube, Vimeo, Twitter/X, Instagram, Spotify, SoundCloud und Dutzenden anderen Diensten werden beim Einfügen automatisch eingebettet. Das spart manuelles Suchen nach Embed-Codes.
Aus Datenschutzsicht ist oEmbed problematisch: Sobald eine Seite geladen wird, die einen oEmbed-Inhalt enthält, lädt der Browser des Besuchers direkt Ressourcen vom Drittanbieter (YouTube-Player, Twitter-Widget). Das überträgt IP-Adresse und Browser-Fingerprint an den Anbieter — ohne explizite Einwilligung des Nutzers, was unter DSGVO/GDPR eine Consent-Pflicht auslöst.
Die übliche Lösung: Zwei-Klick-Lösung (Vorschaubild + Play-Button, erst nach Klick wird der echte Player geladen) oder serverseitiges Proxy-Laden des Embeds.
Das Wichtigste
- oEmbed wandelt URLs automatisch in eingebettete Inhalte um
- WordPress cached oEmbed-Ergebnisse als Transients (Post-Meta)
- Datenschutz-Problem: Einbettungen laden Ressourcen von Drittanbietern direkt beim Seitenaufruf
- DSGVO: Consent vor dem Laden von YouTube-, Twitter-, Vimeo-Embeds erforderlich
- WordPress bietet auch selbst einen oEmbed-Endpoint an (
/wp-json/oembed/1.0/embed)
Was passiert wenn oEmbed falsch konfiguriert ist?
Fehlendes Caching von oEmbed-Responses führt zu einer externen HTTP-Anfrage pro Seitenaufruf pro Embed — was Ladezeiten erhöht und bei Ausfall des Drittanbieters die Seite verlangsamt. WordPress' eingebautes Transient-Caching verhindert das normalerweise, kann aber durch aggressive Cache-Leers-Mechanismen umgangen werden.
Ein wenig bekanntes Risiko: WordPress' eigener oEmbed-Endpoint (/wp-json/oembed/1.0/embed) kann für Site-Enumeration missbraucht werden — er gibt Titel und URL von WordPress-Posts zurück, auch wenn diese nicht indexiert sind.
Häufige Fragen
Wie deaktiviere ich oEmbed in WordPress?
Über den Filter embed_oembed_discover auf false und das Entfernen der Standard-Provider mit wp_oembed_remove_provider(). Für vollständige Deaktivierung: remove_filter('the_content', [\$wp_embed, 'autoembed'], 8).
Kann WordPress selbst als oEmbed-Provider dienen? Ja. WordPress stellt seit Version 4.4 einen eigenen oEmbed-Endpoint bereit, der Posts als Rich-Preview-Karten ausliefert. Andere WordPress-Seiten (und manche externe Tools) können damit WordPress-Inhalte einbetten.
Warum erscheinen manche URLs nicht als Embed?
Der Anbieter muss entweder in WordPress' Providerliste stehen oder Auto-Discovery über <link rel="alternate" type="application/json+oembed"> im HTML-Head anbieten. Fehlt beides, bleibt die URL als Klartext-Link.
Verwandte Begriffe
REST API · RSS