[PR #381] [MERGED] Podcasts #899

Closed
opened 2026-02-27 20:00:22 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/librespot-org/librespot/pull/381
Author: @ashthespy
Created: 10/8/2019
Status: Merged
Merged: 11/5/2019
Merged by: @ashthespy

Base: devHead: podcasts


📝 Commits (6)

  • 0cb7a3f WIP: Podcast support
  • 8eb51e9 Streamline and refactor Podcast support,
  • 6786c09 Update metadata.proto
  • b96405a Make SpotifyId understand more URI formats
  • 508c7e2 Tweak track loading
  • ee3a756 Fix borrow for Rust 1.32.0

📊 Changes

6 files changed (+4339 additions, -453 deletions)

View changed files

📝 connect/src/spirc.rs (+39 -11)
📝 core/src/spotify_id.rs (+42 -9)
📝 metadata/src/lib.rs (+180 -2)
📝 playback/src/player.rs (+46 -37)
📝 protocol/proto/metadata.proto (+104 -5)
📝 protocol/src/metadata.rs (+3928 -389)

📄 Description

Fixes #90
Ported an old attempt for podcast support, and added suggestions from #339 and #377

There are still a few protobuf fields of the endpoint that I haven't been able to reverse fully, but these are not important for playback.

I am unsure how to proceed with respect to the SpotifyID .

  1. Here I just add a new SpotifyAudioType field to the structure. An other option is to convert to it an enum - (https://github.com/librespot-org/librespot/pull/339#issuecomment-506489625). But both these options don't solve the base issue of 2.
  2. Should we move towards storing more metadata (Track/Album/Show/Episode etc) in SpotifyID?

EDIT: Ah, I should probably rename some proto defs to match https://github.com/librespot-org/librespot/issues/308

I should mention that this isn't a comprehensive implementation, stuff missing includes

  • Track episode played state
    • Hopefully this is done server side, needs some more testing
  • Consumption order
  • Playback speed

🔄 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/librespot-org/librespot/pull/381 **Author:** [@ashthespy](https://github.com/ashthespy) **Created:** 10/8/2019 **Status:** ✅ Merged **Merged:** 11/5/2019 **Merged by:** [@ashthespy](https://github.com/ashthespy) **Base:** `dev` ← **Head:** `podcasts` --- ### 📝 Commits (6) - [`0cb7a3f`](https://github.com/librespot-org/librespot/commit/0cb7a3f7c85b3d7baf5d0d80dea14d0172062caf) WIP: Podcast support - [`8eb51e9`](https://github.com/librespot-org/librespot/commit/8eb51e9b55d6051ced1275ac15a5578b307a3eb0) Streamline and refactor Podcast support, - [`6786c09`](https://github.com/librespot-org/librespot/commit/6786c093ad31a69e66ab6782287d4b4b7242bc9d) Update `metadata.proto` - [`b96405a`](https://github.com/librespot-org/librespot/commit/b96405af8262fc5b0e0567440f969d110492a836) Make `SpotifyId` understand more URI formats - [`508c7e2`](https://github.com/librespot-org/librespot/commit/508c7e2b260c041048373f12b33fca7702c4fe13) Tweak track loading - [`ee3a756`](https://github.com/librespot-org/librespot/commit/ee3a756a6edf8748e90d500430f317c57587e819) Fix borrow for Rust 1.32.0 ### 📊 Changes **6 files changed** (+4339 additions, -453 deletions) <details> <summary>View changed files</summary> 📝 `connect/src/spirc.rs` (+39 -11) 📝 `core/src/spotify_id.rs` (+42 -9) 📝 `metadata/src/lib.rs` (+180 -2) 📝 `playback/src/player.rs` (+46 -37) 📝 `protocol/proto/metadata.proto` (+104 -5) 📝 `protocol/src/metadata.rs` (+3928 -389) </details> ### 📄 Description Fixes #90 Ported an old attempt for podcast support, and added suggestions from #339 and #377 There are still a few protobuf fields of the endpoint that I haven't been able to reverse fully, but these are not important for playback. I am unsure how to proceed with respect to the `SpotifyID` . 1. Here I just add a new `SpotifyAudioType` field to the structure. An other option is to convert to it an enum - (https://github.com/librespot-org/librespot/pull/339#issuecomment-506489625). But both these options don't solve the base issue of 2. 2. Should we move towards storing more metadata (Track/Album/Show/Episode etc) in `SpotifyID`? EDIT: ~Ah, I should probably rename some proto defs to match https://github.com/librespot-org/librespot/issues/308~ I should mention that this isn't a comprehensive implementation, stuff missing includes - ~Track episode played state~ - ~Hopefully~ this is done server side, ~needs some more testing~ - Consumption order - Playback speed --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 20:00:22 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librespot#899
No description provided.