Index: src/services/AudioEmbedService.js
===================================================================
--- src/services/AudioEmbedService.js	(revision 52215bc0ac1920407a8aa660b0165cb6abd300f9)
+++ src/services/AudioEmbedService.js	(revision 1907a18d87e0c381cc6c806cb4043835e2088adf)
@@ -187,4 +187,22 @@
       }
     );
+  }
+
+  /**
+   * Replace [[embed:<url>]] shortcodes met de platform-iframe (YouTube, Spotify,
+   * SoundCloud, Apple Music, Bandcamp, Vimeo). De editor-knop voegt deze
+   * shortcode in; losse URL-regels embedden ook automatisch via autoembed().
+   * Niet-ondersteunde/ongeldige URLs krijgen een nette inline-melding.
+   */
+  static embedMediaShortcodes(html) {
+    if (!html) return html;
+    return html.replace(/\[\[embed:([^\]]+)\]\]/gi, (match, rawUrl) => {
+      const url = rawUrl.trim().replace(/&amp;/g, '&');
+      const detected = this.detectProvider(url);
+      if (!detected) {
+        return `<div class="post-embed-missing"><em>Embed: niet-ondersteunde of ongeldige URL.</em></div>`;
+      }
+      return this.generateIframe(detected.provider, detected) || match;
+    });
   }
 
