aome510 / spotify-player

A Spotify player in the terminal with full feature parity
MIT License
2.95k stars 131 forks source link

Podcast Support #457

Open fwastring opened 1 month ago

fwastring commented 1 month ago

Is your feature already implemented in the latest master? No

Is your feature request related to a problem? Please describe. No

Describe the solution you'd like I would like to have podcast support available in the app. When I search for podcasts, I don't get any of the results I'm expecting. Possibly another pane with podcast results only. I haven't dabbled with Spotifys Podcast API so I'm not sure how the implementation would be done.

vannotz commented 1 month ago

It seems to kinda already support it? If I'm playing a podcast on my phone, then open spotify-player on the desktop and just hit "space" without actually choosing a song, the podcast I was listing to will start playing but nothing will show on playback. So I guess it technically already has that functionality, just no search.

fwastring commented 1 month ago

I've seen that too! I was referring to functionality where you could search for, browse and play podcasts. But playback if started from another device seems supported!

aome510 commented 1 month ago

Related:

Podcast is not my priority since I never use it personally. PRs are highly welcome though!

fwastring commented 1 month ago

Do you have any tips for how I would implement it? Do you think it would be a lot of work? @aome510

thenbe commented 1 month ago

Do you have any tips

@fwastring From a UX perspective, I feel like podcasts and podcast_episodes should be top-level entities. For instance if a user searches for foo:

They should see results from these types:

tracks
albums
artists
playlists
+podcasts
+podcast_episodes

Actions (context menu)

A podcast can have similar actions* to an artist. Some modifications would be required:

-GoToArtistRadio
-CopyArtistLink
+CopyPodcastLink
Follow

A podcast_episode can have similar actions* to a track. Some modifications would be required:

-GoToArtist
-GoToAlbum
-GoToTrackRadio
+GoToPodcast
CopyTrackLink
AddToPlaylist
AddToQueue
-AddToLikedTracks

* By actions, I'm referring to the menu you can invoke by pressing g a when hovering over a list item (e.g. in the search results).

Pages

The podcast detail page can be simple. It can contain a single list of podcast_episodes (similar in layout to the album detail page).

I don't see the need for podcast_episode detail page. Similar to how a track does not currently have it's own page.

aome510 commented 1 month ago

Thanks @thenbe for the suggestions!

Do you have any tips for how I would implement it? Do you think it would be a lot of work? @aome510

Sorry I missed the message. It should be relatively straightforward to add support for podcast as you can follow the already established patterns in the codebase. This is not a "good first issue" in a way that the implementation will need to touch many places in the codebase, which might require a certain level of familiarity.