[PR #3140] [MERGED] Podcast endpoints #3881

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

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf/pull/3140
Author: @nichwall
Created: 7/9/2024
Status: Merged
Merged: 7/11/2024
Merged by: @advplyr

Base: masterHead: podcast_endpoints


📝 Commits (6)

📊 Changes

8 files changed (+2674 additions, -864 deletions)

View changed files

docs/controllers/PodcastController.yaml (+355 -0)
docs/objects/entities/PodcastEpisode.yaml (+74 -0)
docs/objects/files/AudioTrack.yaml (+45 -0)
docs/objects/mediaTypes/Podcast.yaml (+74 -0)
docs/objects/metadata/PodcastMetadata.yaml (+59 -0)
📝 docs/openapi.json (+2041 -864)
📝 docs/root.yaml (+22 -0)
📝 docs/schemas.yaml (+4 -0)

📄 Description

This PR continues on from https://github.com/advplyr/audiobookshelf/pull/3012.

This PR adds initial podcast endpoints and includes the PodcastMetadata, PodcastEpisode, and Podcast schemas. More work is needed, but these routes and schemas are as accurate as I can make it with my current understanding of the data models and API. This future work will likely take place while working on LibraryItems and as some functions are updated.

Each of the schemas has some failing validation, but I believe that is due to inconsistent data handling for podcasts when fetching new episode information from the internet or creating new podcast episodes. Specific examples are:

  • explicit (sometimes boolean, sometimes "yes" or "no")
  • duration (sometimes a string in "HH:MM:SS" format, sometimes an integer of total seconds)
  • index (sometimes is an integer, sometimes is -Inf which causes validation to fail even though it technically is an integer https://github.com/advplyr/audiobookshelf/issues/3135)

This PR will have merge conflicts with https://github.com/advplyr/audiobookshelf/pull/3012, so once that PR is merged I can fix the bundled spec conflicts.

Next, I am planning to work on updating LibraryItems to include both book and podcast options.


🔄 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/3140 **Author:** [@nichwall](https://github.com/nichwall) **Created:** 7/9/2024 **Status:** ✅ Merged **Merged:** 7/11/2024 **Merged by:** [@advplyr](https://github.com/advplyr) **Base:** `master` ← **Head:** `podcast_endpoints` --- ### 📝 Commits (6) - [`d48614a`](https://github.com/advplyr/audiobookshelf/commit/d48614aab28a0f7f550bcc643772a3f740e22aa5) Add: `AudioTrack.yaml` - [`983c165`](https://github.com/advplyr/audiobookshelf/commit/983c1657839aa733a20b24091dcf66d56e98575e) Fix: audiotrack example - [`4b4feea`](https://github.com/advplyr/audiobookshelf/commit/4b4feea96524d12198452743d37015348c9e5ddc) Initial: podcast schemas and endpoints - [`b3c02a3`](https://github.com/advplyr/audiobookshelf/commit/b3c02a3ae750209c0cc9e42c8a4d42fe706b8fd0) Update schemas - [`3a0d2f4`](https://github.com/advplyr/audiobookshelf/commit/3a0d2f46e02381f71cc57bea80bd83f4699f15b0) Add: podcasts tag - [`5d76bbf`](https://github.com/advplyr/audiobookshelf/commit/5d76bbfe1cddf805b956e09389d81cd9b4f4297b) Update bundled spec ### 📊 Changes **8 files changed** (+2674 additions, -864 deletions) <details> <summary>View changed files</summary> ➕ `docs/controllers/PodcastController.yaml` (+355 -0) ➕ `docs/objects/entities/PodcastEpisode.yaml` (+74 -0) ➕ `docs/objects/files/AudioTrack.yaml` (+45 -0) ➕ `docs/objects/mediaTypes/Podcast.yaml` (+74 -0) ➕ `docs/objects/metadata/PodcastMetadata.yaml` (+59 -0) 📝 `docs/openapi.json` (+2041 -864) 📝 `docs/root.yaml` (+22 -0) 📝 `docs/schemas.yaml` (+4 -0) </details> ### 📄 Description This PR continues on from https://github.com/advplyr/audiobookshelf/pull/3012. This PR adds initial podcast endpoints and includes the `PodcastMetadata`, `PodcastEpisode`, and `Podcast` schemas. More work is needed, but these routes and schemas are as accurate as I can make it with my current understanding of the data models and API. This future work will likely take place while working on LibraryItems and as some functions are updated. Each of the schemas has some failing validation, but I believe that is due to inconsistent data handling for podcasts when fetching new episode information from the internet or creating new podcast episodes. Specific examples are: - explicit (sometimes boolean, sometimes "yes" or "no") - duration (sometimes a string in "HH:MM:SS" format, sometimes an integer of total seconds) - index (sometimes is an integer, sometimes is `-Inf` which causes validation to fail even though it technically is an integer https://github.com/advplyr/audiobookshelf/issues/3135) This PR will have merge conflicts with https://github.com/advplyr/audiobookshelf/pull/3012, so once that PR is merged I can fix the bundled spec conflicts. Next, I am planning to work on updating LibraryItems to include both book and podcast options. --- <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:17:25 +02:00
adam closed this issue 2026-04-25 00:17:25 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#3881