[PR #4878] [CLOSED] Added support for authenticated podcast feeds #4362

Closed
opened 2026-04-25 00:19:26 +02:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf/pull/4878
Author: @shaunguimond
Created: 12/1/2025
Status: Closed

Base: masterHead: sg/authenticated-podcasts


📝 Commits (1)

  • 66fee7d Added support for authenticated podcast feeds

📊 Changes

6 files changed (+110 additions, -8 deletions)

View changed files

📝 client/components/modals/podcast/NewModal.vue (+9 -3)
📝 client/components/widgets/PodcastDetailsEdit.vue (+4 -1)
📝 client/strings/en-us.json (+1 -0)
server/migrations/v2.30.1-add-is-authenticated-feed.js (+68 -0)
📝 server/models/Podcast.js (+10 -0)
📝 server/utils/ffmpegHelpers.js (+18 -4)

📄 Description

No Issue created -> New Proposed Feature (Could be considered a fix as well?)

Added user-configurable "Authenticated Feed" option for podcast downloads such as from the Verge's add-free podcast feeds.

I added a an option for a user to set a new flag isAuthenticatedFeed as I thought that doing it based on URL string values would be far too "hacky".

Previously the episode downloads would fail as the HTTP request headers were missing the ['referer'] value which is simply the feeds URL. I believe we could simply send the missing ['referer'] value into the header with no consequences and that would simplify my code. I didn't do that simply because I am not an expert on the norms around podcast feeds and certain servers 'could" reject the request if the header was unneeded. If someone has more experience I would appreciate their thoughts. Therefore the changes I made to fix the issue are:

  • Backend logic in ffmpegHelpers.js to conditionally add Referer header
  • UI components to allow users to set the flag
  • Updated Podcast model to handle the new field

I tophatted the changes and found that episode downloads worked in my instance when going through the modal for Episodes and I requested a download there, or when the CRON job would run.

I did not add a test since the initial code was not tested.

Note: Hopefully all required information is provided, please let me know if there are any issues as I tried to follow the documentation for supporting the project as best as could.


🔄 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/4878 **Author:** [@shaunguimond](https://github.com/shaunguimond) **Created:** 12/1/2025 **Status:** ❌ Closed **Base:** `master` ← **Head:** `sg/authenticated-podcasts` --- ### 📝 Commits (1) - [`66fee7d`](https://github.com/advplyr/audiobookshelf/commit/66fee7d39d75d249caa96835abfa32fe4169adfa) Added support for authenticated podcast feeds ### 📊 Changes **6 files changed** (+110 additions, -8 deletions) <details> <summary>View changed files</summary> 📝 `client/components/modals/podcast/NewModal.vue` (+9 -3) 📝 `client/components/widgets/PodcastDetailsEdit.vue` (+4 -1) 📝 `client/strings/en-us.json` (+1 -0) ➕ `server/migrations/v2.30.1-add-is-authenticated-feed.js` (+68 -0) 📝 `server/models/Podcast.js` (+10 -0) 📝 `server/utils/ffmpegHelpers.js` (+18 -4) </details> ### 📄 Description No Issue created -> New Proposed Feature (Could be considered a fix as well?) Added user-configurable "Authenticated Feed" option for podcast downloads such as from the Verge's add-free podcast feeds. I added a an option for a user to set a new flag `isAuthenticatedFeed` as I thought that doing it based on URL string values would be far too "hacky". Previously the episode downloads would fail as the HTTP request headers were missing the `['referer']` value which is simply the feeds URL. I believe we could simply send the missing `['referer']` value into the header with no consequences and that would simplify my code. I didn't do that simply because I am not an expert on the norms around podcast feeds and certain servers 'could" reject the request if the header was unneeded. If someone has more experience I would appreciate their thoughts. Therefore the changes I made to fix the issue are: - Backend logic in `ffmpegHelpers.js` to conditionally add Referer header - UI components to allow users to set the flag - Updated Podcast model to handle the new field I tophatted the changes and found that episode downloads worked in my instance when going through the modal for Episodes and I requested a download there, or when the CRON job would run. I did not add a test since the initial code was not tested. Note: Hopefully all required information is provided, please let me know if there are any issues as I tried to follow the documentation for supporting the project as best as could. --- <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:19:26 +02:00
adam closed this issue 2026-04-25 00:19:26 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#4362