Index: src/assets/js/audio-player.js
===================================================================
--- src/assets/js/audio-player.js	(revision 9e6b54fd187cd53d7d9e8a697c036e2fc7302335)
+++ src/assets/js/audio-player.js	(revision 976d36d3c69935825ec16dcd39929fc55ad51ea3)
@@ -924,4 +924,17 @@
       postUrl: opts.postUrl || '',
     }], 0);
+    // Upgrade de cover async naar de scherpe maxresdefault (ook 16:9, geen balken)
+    // als die bestaat. Async → de user-gesture voor afspelen blijft intact; de
+    // direct gezette mqdefault toont al meteen een balkloze cover.
+    try {
+      const maxres = 'https://i.ytimg.com/vi/' + opts.id + '/maxresdefault.jpg';
+      const im = new Image();
+      im.onload = () => {
+        if (im.naturalWidth <= 120) return;  // 120x90 = YouTube-placeholder (geen maxres)
+        const t = queue[currentIndex];
+        if (t && t.yt === opts.id) { t.cover = maxres; setCoverImage(cover, maxres); setCoverImage(sheetCover, maxres); }
+      };
+      im.src = maxres;
+    } catch (e) {}
   }
 
Index: src/assets/js/embed-player.js
===================================================================
--- src/assets/js/embed-player.js	(revision 9e6b54fd187cd53d7d9e8a697c036e2fc7302335)
+++ src/assets/js/embed-player.js	(revision 976d36d3c69935825ec16dcd39929fc55ad51ea3)
@@ -193,4 +193,8 @@
     const poster = provider === 'youtube'
       ? `https://i.ytimg.com/vi/${ytId(ref, url)}/hqdefault.jpg` : '';
+    // 16:9-thumbnail ZONDER zwarte balken (mqdefault) voor de vierkante cover —
+    // hqdefault is 4:3 met letterbox en vult een vierkant niet schoon.
+    const ytThumb = provider === 'youtube'
+      ? `https://i.ytimg.com/vi/${ytId(ref, url)}/mqdefault.jpg` : '';
 
     el.innerHTML = ''
@@ -229,7 +233,7 @@
     let preMuteVol = 100;
     // Audio-only YouTube: zet de thumbnail als albumhoes op de audio-kaart.
-    if (audioOnly && poster) {
+    if (audioOnly && ytThumb) {
       const art0 = el.querySelector('.pcms-embed-art');
-      if (art0) { art0.style.backgroundImage = `url('${poster}')`; art0.classList.add('has-art'); }
+      if (art0) { art0.style.backgroundImage = `url('${ytThumb}')`; art0.classList.add('has-art'); }
     }
 
@@ -310,5 +314,5 @@
       // én doorspelen bij navigeren. De inline-kaart is enkel de launcher.
       if (audioOnly && window.pcmsAudioPlayer && typeof window.pcmsAudioPlayer.playYouTube === 'function') {
-        window.pcmsAudioPlayer.playYouTube({ id: ytId(ref, url), cover: poster, postUrl: location.pathname + location.search });
+        window.pcmsAudioPlayer.playYouTube({ id: ytId(ref, url), cover: ytThumb, postUrl: location.pathname + location.search });
         el.classList.add('pcms-embed-elsewhere');
         return;
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision 9e6b54fd187cd53d7d9e8a697c036e2fc7302335)
+++ src/views/shell.ejs	(revision 976d36d3c69935825ec16dcd39929fc55ad51ea3)
@@ -300,8 +300,8 @@
      ?v=N — cache-buster: bump bij elke audio-player.js wijziging zodat
      Cloudflare (max-age=1y) niet de oude versie blijft serveren. -->
-<script src="/assets/js/audio-player.js?v=21"></script>
+<script src="/assets/js/audio-player.js?v=22"></script>
 <!-- Eigen custom media-embeds (YouTube/SoundCloud/Spotify) via de echte
      player-API's + gedeelde mutual-exclusion registry met de site-speler. -->
-<script src="/assets/js/embed-player.js?v=9" defer></script>
+<script src="/assets/js/embed-player.js?v=10" defer></script>
 <% if (site && site.enable_audio_player && audioTracks && audioTracks.length > 0) { %>
   <script>window.PCMS_SITE_TRACKS = <%- JSON.stringify(audioTracks) %>;</script>
