From 03542a540f56f20f3e85f5780d32196178983123 Mon Sep 17 00:00:00 2001 From: Arunesh Dwivedi Date: Thu, 4 Jun 2026 07:20:48 +0000 Subject: [PATCH] fix: include episode data in podcast metadata.json The metadata.json written for podcast libraries only included podcast-level metadata (title, author, description, etc.) but not episode-level data like titles, descriptions, pubDates, and chapters. This meant that when a podcast library was moved or restored from backup, all episode metadata was lost. This change adds an episodes array to the metadata.json output containing the key fields for each episode: title, subtitle, season, number, type, pubDate, publishedAt, description, and chapters. Fixes #5093 --- server/scanner/PodcastScanner.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/scanner/PodcastScanner.js b/server/scanner/PodcastScanner.js index f3241d536..f0ae1eeaf 100644 --- a/server/scanner/PodcastScanner.js +++ b/server/scanner/PodcastScanner.js @@ -443,7 +443,18 @@ class PodcastScanner { asin: libraryItem.media.asin, language: libraryItem.media.language, explicit: !!libraryItem.media.explicit, - podcastType: libraryItem.media.podcastType + podcastType: libraryItem.media.podcastType, + episodes: (libraryItem.media.podcastEpisodes || []).map((ep) => ({ + title: ep.title, + subtitle: ep.subtitle, + season: ep.season, + episode: ep.episode, + episodeType: ep.episodeType, + pubDate: ep.pubDate, + publishedAt: ep.publishedAt, + description: ep.description, + chapters: ep.chapters || [] + })) } return fsExtra .writeFile(metadataFilePath, JSON.stringify(jsonObject, null, 2))