Skip to content

Remove Open Subsonic podcast option - #6348

Open
khers wants to merge 1 commit into
music-assistant:devfrom
khers:podcast-config
Open

khers wants to merge 1 commit into
music-assistant:devfrom
khers:podcast-config

Conversation

@khers

@khers khers commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

What does this implement/fix?

The Open Subsonic provider has an option to enable/disable podcast syncing that conflicts with the more generic library sync option. We don't need both so remove the provider specific one and just use the library sync option.

Types of changes

  • Bugfix (non-breaking change which fixes an issue) — bugfix
  • New feature (non-breaking change which adds functionality) — new-feature
  • Enhancement to an existing feature — enhancement
  • New music/player/metadata/plugin provider — new-provider
  • Breaking change (fix or feature that would cause existing functionality to not work as expected) — breaking-change
  • Refactor (no behaviour change) — refactor
  • Documentation only — documentation
  • Maintenance / chore — maintenance
  • CI / workflow change — ci
  • Dependencies bump — dependencies

Checklist

  • The code change is tested and works locally.
  • pre-commit run --all-files passes.
  • pytest passes, and tests have been added/updated under tests/ where applicable.
  • I have read and complied with the project's AI Policy for any AI-assisted contributions.
  • I have raised a PR against the documentation repository targeting the main or beta branch as appropriate.

@codspeed

codspeed Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 11 untouched benchmarks
⏩ 7 skipped benchmarks1


Comparing khers:podcast-config (a03278a) with dev (4bba1b3)

Open in CodSpeed

Footnotes

  1. 7 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Disabling podcast synchronization now also disables browsing and playback, and the unrelated dependency bump should be separated.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Removes the OpenSubsonic-specific podcast option in favor of the shared library-sync setting.

Changes:

  • Removes the provider-specific podcast configuration and translations.
  • Uses the generic podcast sync setting.
  • Updates py-opensonic to 10.4.0.
File summaries
File Description
requirements_all.txt Updates py-opensonic dependency.
music_assistant/translations/en.json Removes generated podcast-option strings.
music_assistant/providers/opensubsonic/strings.json Removes source translation strings.
music_assistant/providers/opensubsonic/sonic_provider.py Replaces the podcast option with the sync setting.
music_assistant/providers/opensubsonic/manifest.json Updates the provider dependency.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 2
  • Review effort level: Balanced

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

self.logger.info("Failed to query server for OpenSubsonic extensions")

self._enable_podcasts = bool(self.config.get_value(CONF_ENABLE_PODCASTS))
self._enable_podcasts = bool(self.config.get_value("library_sync_podcasts"))

@khers khers Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To the best of my knowledge we have precisely 0 users who would want to see podcast entries from the Open Subsonic server but not have them synchronized to MA for playback. Maintaining both toggles led at least one user to hit an unexpected failure when their implementation return 501 from the getPodcasts endpoint.

I can alter the PR to remove the _enable_podcasts checks but then we are handling exceptions from py-opensonic if a user ever goes down those paths. However, the check for the recommendations stays. I don't see a use case for wanting to see the latest podcast episodes when we are not syncing them for playback.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have this toggle at all? Why not just enable it always? If there are podcasts to sync, users want them in MA right? Or am I missing something here?

@khers khers Sep 17, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only 1-2 of the Open Subsonic implementations we see support podcasts at all (including the one I use). This avoids making calls that we know are not implemented. The spec does not define the "correct" thing to do when an endpoint is not implemented, IIRC I have seen multiple different ways. I have seen http 404, 501, or subsonic errors come back from various implementations. Rather than having fiddly error handling that attempts to differentiate "I don't implement this" from "Something is actually wrong", we have avoided making the call when users know that podcasts are not supported/desired.

Comment thread music_assistant/providers/opensubsonic/manifest.json Outdated
@khers
khers force-pushed the podcast-config branch 2 times, most recently from 5f08f23 to a03278a Compare September 18, 2026 14:34
@khers

khers commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author

Please ignore the update to the dependency library here, github is stupid about managing PR dependencies. There is a separate PR for that update that is tagged for back porting to stable.

Use the more generic option from MA instead. Having two has caused user
confusion.

Signed-off-by: Eric B Munson <eric@munsonfam.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants