Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision 183875b46fb28dbb72cffa7bc53cedaad373f8cd)
+++ src/routes/posts.js	(revision a66f691d99d16426511668251ccb7a7aeafbf7b5)
@@ -537,5 +537,5 @@
       html = AudioEmbedService.embedTrackShortcodes(html, (id) => {
         const r = byId.get(id);
-        if (!r || !r.filename) return null;
+        if (!r) return null;
         return {
           id: r.id,
@@ -548,5 +548,5 @@
           link_youtube: r.link_youtube || '',
           link_soundcloud: r.link_soundcloud || '',
-          url: audioUrl(r.filename),
+          url: r.filename ? audioUrl(r.filename) : '',  // '' = link-only track
         };
       });
@@ -566,9 +566,9 @@
       const byAlbum = new Map();
       for (const r of albumRows) {
-        if (!r.filename) continue;
+        // Link-only tracks (geen bestand) blijven in het album-overzicht (url '').
         if (!byAlbum.has(r.album)) byAlbum.set(r.album, []);
         byAlbum.get(r.album).push({
           id: r.id,
-          url: audioUrl(r.filename),
+          url: r.filename ? audioUrl(r.filename) : '',
           title: r.title || 'Untitled',
           artist: r.artist || '',
