Index: src/services/AudioEmbedService.js
===================================================================
--- src/services/AudioEmbedService.js	(revision 795c9256da95c7f89ec042ee81b2962235bcc55d)
+++ src/services/AudioEmbedService.js	(revision 73b41ebe795a1650e35e118b3416a3b94077b035)
@@ -67,5 +67,5 @@
       case 'youtube':
         return this.embedPlaceholder('youtube', config.id, 'video',
-          config.url || `https://youtu.be/${config.id}`);
+          config.url || `https://youtu.be/${config.id}`, config.mode);
       case 'soundcloud':
         return this.embedPlaceholder('soundcloud', config.url, 'track', config.url);
@@ -91,9 +91,10 @@
    * ALLE waarden via escape() — post.content_html wordt ongeescaped uitgevoerd.
    */
-  static embedPlaceholder(provider, ref, type, url) {
+  static embedPlaceholder(provider, ref, type, url, mode) {
     const attrs = [
       `data-embed-provider="${this.escape(provider)}"`,
       `data-embed-ref="${this.escape(ref)}"`,
       type ? `data-embed-type="${this.escape(type)}"` : '',
+      mode ? `data-embed-mode="${this.escape(mode)}"` : '',
       `data-embed-url="${this.escape(url)}"`,
     ].filter(Boolean).join(' ');
@@ -227,11 +228,17 @@
   static embedMediaShortcodes(html) {
     if (!html) return html;
-    return html.replace(/\[\[embed:([^\]]+)\]\]/gi, (match, rawUrl) => {
-      const url = rawUrl.trim().replace(/&amp;/g, '&');
+    return html.replace(/\[\[embed:([^\]]+)\]\]/gi, (match, rawSpec) => {
+      // Optionele modus-prefix: [[embed:audio:URL]] = alleen-audio speler,
+      // [[embed:video:URL]] / [[embed:URL]] = normaal (video waar van toepassing).
+      let spec = rawSpec.trim();
+      let mode = null;
+      const mm = spec.match(/^(audio|video):(.+)$/i);
+      if (mm) { mode = mm[1].toLowerCase(); spec = mm[2].trim(); }
+      const url = spec.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;
+      return this.generateIframe(detected.provider, { ...detected, mode }) || match;
     });
   }
