[PR #4331] Feature: Allow to have custom podcast filenames #4220

Open
opened 2026-04-25 00:18:51 +02:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf/pull/4331
Author: @MagiX13
Created: 5/24/2025
Status: 🔄 Open

Base: masterHead: master


📝 Commits (5)

📊 Changes

9 files changed (+126 additions, -7 deletions)

View changed files

📝 client/components/modals/podcast/NewModal.vue (+6 -0)
📝 client/components/widgets/PodcastDetailsEdit.vue (+13 -0)
📝 client/strings/en-us.json (+2 -0)
📝 server/controllers/LibraryController.js (+2 -2)
📝 server/managers/PodcastManager.js (+1 -0)
server/migrations/v2.23.1-add-podcastFilenameFormat.js (+64 -0)
📝 server/models/Podcast.js (+7 -1)
📝 server/objects/PodcastEpisodeDownload.js (+30 -4)
📝 server/utils/migrations/dbMigration.js (+1 -0)

📄 Description

Brief summary

This PR adds the ability to define filename templates for podcasts, as mentioned in #2494

Which issue is fixed?

Fixes #2494
Fixes #1869

In-depth Description

The default of just taking the title was not changed, but more options were added. The filename format template can be defined on a per podcast level, to facilitate distinctions between podcasts with season/episode and those without. The template is a string with some variables that are replaced with the actual content in case the respective variable is available.

The tooltip (see below) explains the options that are available.

How have you tested this?

I have used this for a few of my podcasts and it works well. I however don't have a podcast that has season/episode format so couldn't test it here

Screenshots

2025-05-24_16-05-1748096454


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/advplyr/audiobookshelf/pull/4331 **Author:** [@MagiX13](https://github.com/MagiX13) **Created:** 5/24/2025 **Status:** 🔄 Open **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (5) - [`8d988cf`](https://github.com/advplyr/audiobookshelf/commit/8d988cf353256ca1c0ab1e7480d741a2b1dbea8e) feat: add podcastFilenameFormat - [`15d02ea`](https://github.com/advplyr/audiobookshelf/commit/15d02ea0e2c2f776c0e1a24e41c1fc7eda0dc9d9) revert version to 2.23.0 - [`8ea3778`](https://github.com/advplyr/audiobookshelf/commit/8ea37784caafd444fe78a4f3759a57037a9ca8c9) some linting - [`f1a0e54`](https://github.com/advplyr/audiobookshelf/commit/f1a0e54c04f9ce8d5f853d8be9e2fccc78e423dd) further linting - [`8321ba6`](https://github.com/advplyr/audiobookshelf/commit/8321ba6291f5f769d690338b4d37edee493561d9) Merge branch 'advplyr:master' into master ### 📊 Changes **9 files changed** (+126 additions, -7 deletions) <details> <summary>View changed files</summary> 📝 `client/components/modals/podcast/NewModal.vue` (+6 -0) 📝 `client/components/widgets/PodcastDetailsEdit.vue` (+13 -0) 📝 `client/strings/en-us.json` (+2 -0) 📝 `server/controllers/LibraryController.js` (+2 -2) 📝 `server/managers/PodcastManager.js` (+1 -0) ➕ `server/migrations/v2.23.1-add-podcastFilenameFormat.js` (+64 -0) 📝 `server/models/Podcast.js` (+7 -1) 📝 `server/objects/PodcastEpisodeDownload.js` (+30 -4) 📝 `server/utils/migrations/dbMigration.js` (+1 -0) </details> ### 📄 Description <!-- For Work In Progress Pull Requests, please use the Draft PR feature, see https://github.blog/2019-02-14-introducing-draft-pull-requests/ for further details. If you do not follow this template, the PR may be closed without review. Please ensure all checks pass. If you are a new contributor, the workflows will need to be manually approved before they run. --> ## Brief summary This PR adds the ability to define filename templates for podcasts, as mentioned in #2494 <!-- Please provide a brief summary of what your PR attempts to achieve. --> ## Which issue is fixed? Fixes #2494 Fixes #1869 <!-- Which issue number does this PR fix? Ex: "Fixes #1234" --> ## In-depth Description The default of just taking the title was not changed, but more options were added. The filename format template can be defined on a per podcast level, to facilitate distinctions between podcasts with season/episode and those without. The template is a string with some variables that are replaced with the actual content in case the respective variable is available. The tooltip (see below) explains the options that are available. <!-- Describe your solution in more depth. How does it work? Why is this the best solution? Does it solve a problem that affects multiple users or is this an edge case for your setup? --> ## How have you tested this? I have used this for a few of my podcasts and it works well. I however don't have a podcast that has season/episode format so couldn't test it here <!-- Please describe in detail with reproducible steps how you tested your changes. --> ## Screenshots <!-- If your PR includes any changes to the web client, please include screenshots or a short video from before and after your changes. --> ![2025-05-24_16-05-1748096454](https://github.com/user-attachments/assets/3dd9c2dc-6e0c-4e5c-a203-15031b59b354) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2026-04-25 00:18:51 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#4220