Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision d22b55c7461d88abd741ef3b66535c7b9898f9c3)
+++ src/routes/posts.js	(revision 781d613343de02fb964f6d5be1115e9f746e450e)
@@ -609,5 +609,7 @@
   if (!slug || slug.indexOf('/') >= 0) return null; // single segment only
   const src = u.origin + '/embed?post=' + encodeURIComponent(slug);
-  return { origin: u.origin, html: `<iframe class="tl-embed-frame tl-embed-klonkt" src="${src}" title="Audio" loading="lazy" frameborder="0" allow="autoplay; encrypted-media"></iframe>` };
+  // Drop the now-redundant "🎵 … listen on <site>" line — the embedded player below shows it.
+  const content = html.replace(/<p>🎵[\s\S]*?<\/p>\s*/i, '');
+  return { origin: u.origin, content, html: `<iframe class="tl-embed-frame tl-embed-klonkt" src="${src}" title="Audio" loading="lazy" frameborder="0" allow="autoplay; encrypted-media"></iframe>` };
 }
 
@@ -617,9 +619,10 @@
   const timeline = (site ? ActivityPubService.getTimeline(site.slug, 60) : []).map((p) => {
     let embedHtml = timelineEmbedHtml(p.content);
+    let content = p.content;
     if (!embedHtml) {
       const k = klonktAudioEmbed(p.content, p.url);
-      if (k) { embedHtml = k.html; cspOrigins.add(k.origin); }
+      if (k) { embedHtml = k.html; content = k.content; cspOrigins.add(k.origin); }
     }
-    return { ...p, embedHtml };
+    return { ...p, content, embedHtml };
   });
   // Option A: allow the followed Klonkt sites' player iframes (you follow them) by
