Index: src/routes/activitypub.js
===================================================================
--- src/routes/activitypub.js	(revision 3e1aab1d0ca77fdf994b3cd2daa1b48e94c68d1b)
+++ src/routes/activitypub.js	(revision 9ce14b80ba1bf9e566459d46aa1b9758a93f7a0b)
@@ -636,4 +636,13 @@
 // zonder open tracks bestaat wel maar is leeg, want de playlist zelf is niet
 // geheim, alleen de bestanden erachter.
+// De lijst van alle playlist-collecties (shaer-ayc, stap 2). De actor wijst
+// hierheen via AS2 `streams`. Kaal standaard; verrijkte stubs op verzoek
+// (FEP-9876), dezelfde conventie als followers/following.
+router.get('/ap/users/:slug/playlists', (req, res) => {
+  const site = publicSite(req.params.slug);
+  if (!site) return res.status(404).end();
+  AP.sendAP(res, AP.listPlaylistsAP(baseUrl(req), site, wantsEnriched(req, res)));
+});
+
 router.get('/ap/users/:slug/playlists/:id', (req, res) => {
   const site = publicSite(req.params.slug);
