Index: src/assets/js/embed-player.js
===================================================================
--- src/assets/js/embed-player.js	(revision 557a76f25a43e4355b3606ab3b633118397f9dfd)
+++ src/assets/js/embed-player.js	(revision 73b41ebe795a1650e35e118b3416a3b94077b035)
@@ -183,5 +183,10 @@
 
     // --- UI ophangen (verschilt per provider-type) ---
-    const isVideo = provider === 'youtube';
+    // Audio-only YouTube (data-embed-mode="audio"): render als audio-kaart met
+    // onze controls; de YT-speler draait verborgen (off-screen) en levert alleen
+    // het geluid. Video blijft de default.
+    const audioOnly = provider === 'youtube' && el.dataset.embedMode === 'audio';
+    if (audioOnly) el.classList.add('pcms-embed-audio-mode');
+    const isVideo = provider === 'youtube' && !audioOnly;
     const custom = provider === 'youtube' || provider === 'soundcloud'; // eigen controls
     const poster = provider === 'youtube'
@@ -222,4 +227,9 @@
     let vol = 100;       // huidige volume 0-100 (wordt op de adapter toegepast)
     let preMuteVol = 100;
+    // Audio-only YouTube: zet de thumbnail als albumhoes op de audio-kaart.
+    if (audioOnly && poster) {
+      const art0 = el.querySelector('.pcms-embed-art');
+      if (art0) { art0.style.backgroundImage = `url('${poster}')`; art0.classList.add('has-art'); }
+    }
 
     function setPlayingUI(on) {
@@ -369,6 +379,9 @@
           events: {
             onReady() {
-              let d = 0; try { d = player.getDuration() || 0; } catch (e) {}
-              hooks.onReady({ duration: d });
+              let d = 0; const meta = {};
+              try { d = player.getDuration() || 0; } catch (e) {}
+              try { const vd = player.getVideoData(); if (vd && vd.title) meta.title = vd.title; } catch (e) {}
+              meta.duration = d;
+              hooks.onReady(meta);
               resolve({
                 play() { try { player.playVideo(); } catch (e) {} },
