[PR #1536] [MERGED] Adding podcast type, season and episode info to the feed #3569

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

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf/pull/1536
Author: @mfcar
Created: 2/22/2023
Status: Merged
Merged: 2/24/2023
Merged by: @advplyr

Base: masterHead: addSeasonInfo


📝 Commits (5)

  • b1ee545 Add support to podcast type
  • 9a51c3b Add dropdown to the episode type
  • f4ec694 Add dropown
  • cc62a20 Merge branch 'master' into addSeasonInfo
  • ad0edc6 Fix merge conflicts and add language information on the feed rss

📊 Changes

20 files changed (+104 additions, -32 deletions)

View changed files

📝 client/components/modals/podcast/NewModal.vue (+13 -4)
📝 client/components/modals/podcast/tabs/EpisodeDetails.vue (+5 -2)
📝 client/components/widgets/PodcastDetailsEdit.vue (+12 -2)
📝 client/store/globals.js (+10 -1)
📝 client/strings/de.json (+1 -0)
📝 client/strings/en-us.json (+1 -0)
📝 client/strings/es.json (+2 -1)
📝 client/strings/fr.json (+2 -1)
📝 client/strings/hr.json (+2 -1)
📝 client/strings/it.json (+2 -1)
📝 client/strings/pl.json (+2 -1)
📝 client/strings/ru.json (+2 -1)
📝 client/strings/zh-cn.json (+2 -1)
📝 server/objects/Feed.js (+5 -1)
📝 server/objects/FeedEpisode.js (+17 -2)
📝 server/objects/FeedMeta.js (+10 -3)
📝 server/objects/entities/PodcastEpisode.js (+2 -2)
📝 server/objects/metadata/PodcastMetadata.js (+8 -3)
📝 server/scanner/Scanner.js (+2 -2)
📝 server/utils/podcastUtils.js (+4 -3)

📄 Description

To make the RSS Feed more compliant with the RSS Feed standards, I created this pull request to add:

  • Add a podcast type field <itunes:type> - Episodic (default) or Serial
  • Add a dropdown with the episode types <itunes:episodeType> - Full, Trailer, Bonus
  • Add Season, Episode number, Episode Type and Podcast Type on the Feed - <itunes:season>, <itunes:episode>, <itunes:episodeType> and <itunes:type>
  • Use language information from the Item for the language tag. If the item doesn't have language information use "en" as default. - <language>

Context:
I researched to identify the Podcast Types and Episodes Types patterns used by iTunes Podcast, Google Podcast, and other providers. All open services use the same pattern informed by Apple - A Podcaster’s Guide to RSS.
W3C Feed validator also recommends the same types: Episode Type and Channel Type

These are the types used:

  • Podcast Types:
    • Episodic (default). Specify episodic when episodes are intended to be consumed without any specific order. Apple Podcasts will present newest episodes first and display the publish date (required) of each episode. If organized into seasons, the newest season will be presented first - otherwise, episodes will be grouped by year published, newest first.
    • Serial. Specify serial when episodes are intended to be consumed in sequential order. Apple Podcasts will present the oldest episodes first and display the episode numbers (required) of each episode. If organized into seasons, the newest season will be presented first and <itunes:episode> numbers must be given for each episode.
  • Episode Types:
    • Full (default). Specify full when you are submitting the complete content of your show.
    • Trailer. Specify trailer when you are submitting a short, promotional piece of content that represents a preview of your current show.
    • Bonus. Specify bonus when you are submitting extra content for your show (for example, behind the scenes information or interviews with the cast) or cross-promotional content for another show.

Editing podcast type on an existing podcast

Screenshot 2023-02-22 at 18 58 55

Adding a podcast from the search and importing the podcast type

Screenshot 2023-02-22 at 19 15 44

Screenshot demonstrating the podcasts app loading the Podcast Type, Season and Episode number from the RSS.

Screenshot 2023-02-22 at 19 27 55

🔄 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/1536 **Author:** [@mfcar](https://github.com/mfcar) **Created:** 2/22/2023 **Status:** ✅ Merged **Merged:** 2/24/2023 **Merged by:** [@advplyr](https://github.com/advplyr) **Base:** `master` ← **Head:** `addSeasonInfo` --- ### 📝 Commits (5) - [`b1ee545`](https://github.com/advplyr/audiobookshelf/commit/b1ee54522a88ccf3ce1adf5e8d6a7865a7ab714f) Add support to podcast type - [`9a51c3b`](https://github.com/advplyr/audiobookshelf/commit/9a51c3be0f759a7dde770159a5410abe7ff17ee0) Add dropdown to the episode type - [`f4ec694`](https://github.com/advplyr/audiobookshelf/commit/f4ec6948d26d9069525e1dc3fc4e76f1a3ac6f97) Add dropown - [`cc62a20`](https://github.com/advplyr/audiobookshelf/commit/cc62a20a5d3582f618a282dce29f73029aedbf4a) Merge branch 'master' into addSeasonInfo - [`ad0edc6`](https://github.com/advplyr/audiobookshelf/commit/ad0edc63291cec8e122912f4b5c40a52a205ecfb) Fix merge conflicts and add language information on the feed rss ### 📊 Changes **20 files changed** (+104 additions, -32 deletions) <details> <summary>View changed files</summary> 📝 `client/components/modals/podcast/NewModal.vue` (+13 -4) 📝 `client/components/modals/podcast/tabs/EpisodeDetails.vue` (+5 -2) 📝 `client/components/widgets/PodcastDetailsEdit.vue` (+12 -2) 📝 `client/store/globals.js` (+10 -1) 📝 `client/strings/de.json` (+1 -0) 📝 `client/strings/en-us.json` (+1 -0) 📝 `client/strings/es.json` (+2 -1) 📝 `client/strings/fr.json` (+2 -1) 📝 `client/strings/hr.json` (+2 -1) 📝 `client/strings/it.json` (+2 -1) 📝 `client/strings/pl.json` (+2 -1) 📝 `client/strings/ru.json` (+2 -1) 📝 `client/strings/zh-cn.json` (+2 -1) 📝 `server/objects/Feed.js` (+5 -1) 📝 `server/objects/FeedEpisode.js` (+17 -2) 📝 `server/objects/FeedMeta.js` (+10 -3) 📝 `server/objects/entities/PodcastEpisode.js` (+2 -2) 📝 `server/objects/metadata/PodcastMetadata.js` (+8 -3) 📝 `server/scanner/Scanner.js` (+2 -2) 📝 `server/utils/podcastUtils.js` (+4 -3) </details> ### 📄 Description To make the RSS Feed more compliant with the RSS Feed standards, I created this pull request to add: - Add a podcast type field <_itunes:type_> - Episodic (default) or Serial - Add a dropdown with the episode types <_itunes:episodeType_> - Full, Trailer, Bonus - Add Season, Episode number, Episode Type and Podcast Type on the Feed - <_itunes:season_>, <_itunes:episode_>, <_itunes:episodeType_> and <_itunes:type_> - Use language information from the Item for the language tag. If the item doesn't have language information use "_en_" as default. - <_language_> ---- **Context:** I researched to identify the Podcast Types and Episodes Types patterns used by iTunes Podcast, Google Podcast, and other providers. All open services use the same pattern informed by [Apple - A Podcaster’s Guide to RSS](https://help.apple.com/itc/podcasts_connect/#/itcb54353390). W3C Feed validator also recommends the same types: [Episode Type](https://validator.w3.org/feed/docs/error/InvalidItunesEpisodeType.html) and [Channel Type ](https://validator.w3.org/feed/docs/error/InvalidItunesChannelType.html) These are the types used: - Podcast Types: - **Episodic** (default). Specify episodic when episodes are intended to be consumed without any specific order. Apple Podcasts will present newest episodes first and display the publish date (required) of each episode. If organized into [seasons](https://help.apple.com/itc/podcasts_connect/#/itc77382b700), the newest season will be presented first - otherwise, episodes will be grouped by year published, newest first. - **Serial**. Specify serial when episodes are intended to be consumed in sequential order. Apple Podcasts will present the oldest episodes first and display the episode numbers (required) of each episode. If organized into seasons, the newest season will be presented first and <_itunes:episode_> numbers must be given for each episode. - Episode Types: - **Full** (default). Specify full when you are submitting the complete content of your [show](https://help.apple.com/itc/podcasts_connect/#/itca5dea085b). - **Trailer**. Specify trailer when you are submitting a short, promotional piece of content that represents a preview of your current show. - **Bonus**. Specify bonus when you are submitting extra content for your show (for example, behind the scenes information or interviews with the cast) or cross-promotional content for another show. --- ### Editing podcast type on an existing podcast <img width="827" alt="Screenshot 2023-02-22 at 18 58 55" src="https://user-images.githubusercontent.com/814828/220736040-6bab0433-697b-484d-9878-85a14a13f298.png"> ### Adding a podcast from the search and importing the podcast type <img width="1118" alt="Screenshot 2023-02-22 at 19 15 44" src="https://user-images.githubusercontent.com/814828/220736110-86469ef3-41e4-46c3-b939-0ba222b9c61c.png"> ### Screenshot demonstrating the podcasts app loading the Podcast Type, Season and Episode number from the RSS. <img width="517" alt="Screenshot 2023-02-22 at 19 27 55" src="https://user-images.githubusercontent.com/814828/220738684-41a5ae8a-7eef-4ad2-a9df-02c1444b75b6.png"> --- <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:16:10 +02:00
adam closed this issue 2026-04-25 00:16:10 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#3569