Proper podcast player for postmarketOS
Over the weekend, I did some evaluation on potential podcatchers for postmarketOS. I'm listening to podcasts a lot, usually with the excellent, feature rich AntennaPod for Android, so I'm a bit spoiled already.
What I'm looking for:
- Allow to add podcasts right from the UI without knowing their RSS feed URL
- OPML import and export (import and export subscriptions)
- Allow to seek forward and backward
- Subscribe to lots of feeds without problems (I have around 100 right now in AntennaPod)
- Should be lightweight and easy on resource usage. no electron app etc.
I tried this out a few months ago and found it to be missing lots of features.
- It was not possible to search for podcasts, you could only add them via their RSS URL.
- The downloaded podcasts appeared directly in the main playlist, so there was no separation between the subscriptions and between what is playing right now (as in antennapod for example).
- (The mobile variant had some UI bugs)
So I didn't consider it this time. If the situation changed, let me know.
- modern UI
- seems to be very userfriendly
- integrated player for audio and video
- search actually finds podcasts
- crashed right after finding a podcast and then trying to add it
- this is a known bug: https://github.com/needle-and-thread/vocal/issues/465
- (possibly fixed on master, I just tried the flatpak version for a quick test)
- development has stopped since april 2020? :(
- if we carry on, we'd essentially need to fork this app
- UI is not mobile optimized
- I don't think it's that hard to optimize the UI for mobile though
- stable and maintained code base
- youtube-dl integration (and more providers) (!)
- this is an excellent feature, I find it missing in AntennaPod
- e.g. linux app summit talks only seem to be posted to youtube
- youtube-dl plugin appears to be broken in current gpodder master (2020-11-18)?
- apparently has a command-line client too (though I didn't try it yet, how would one start it?)
- best integration with gpodder.net webservice
- this service allows to sync various podcatchers. it would be great to use this, so I could install a podcast player on the n900, one on the pinephone, ... and also use antennapod on android and have all of them in sync.
- But sadly the service appears to be broken, I registered an account yesterday and got a 500 error when trying to login.
- EDIT: tried again today, and now I could login \o/ so I'll try the sync feature some time soon.
- search doesn't find most podcasts
- gpodder integrates with their own gpodder.net infrastructure, which also has listings of podcasts. However, most podcasts are not there, and unfortunately I couldn't find the RSS feed for the specific podcast I wanted to listen to, so I had to import an OPML file from antennapod. That worked though.
- not good enough for casual users, they need to be able to just type in a podcast and find it
- antennapod searches through itunes for this. I would prefer if gpodder.net had all the podcasts listed (or most of them, might be possible if users are able to add them?) but since that is not the case, I think supporting itunes or another service where podcasts are usually posted to make sense.
- no integrated audio player
- This makes the experience not so great, because you need to switch between two apps. As non-technical user it's probably not clear why this is needed. It also means that gpodder can't say for sure if you listened through an episode, it just has to assume that you did once you press "play".
apk add vlc-qt xdg-open, it opens the audio files in VLC, which kind of works:
- VLC remembers last playback positions and asks to resume there
- VLC uses the mpris2 api, so it can nicely be controlled from the phosh lockscreen (and probably plasma mobile too)
- Made a MR for missing seek buttons: phosh!664
- phosh suspended after 15 mins while a podcast was playing via VLC though, not sure what's the cause for that. I would have assumed that VLC uses the inhibit API and phosh would then not suspend. With a 15 min wait before suspend it's not much of an usability issue for me at least (but we want to shorten that time eventually to save more energy).
- (If we decided that gpodder was the perfect candidate, we could write a very simple player that has nice mobile controls and works with mpris. Or maybe work with gpodder to integrate a player into their client if they like the idea.)
- UI is not mobile optimized
- I think it wouldn't be that hard to optimize it for mobile though. It's just python code.
- Usable enough for testing, but lots of dialogs are cut off and need switching back and forth between landscape and portrait to reach all buttons.
Run from git
$ git clone https://github.com/gpodder/gpodder.git $ cd gpodder $ python3 tools/localdepends.py $ sudo apk add py3-dbus py3-cairo py3-gobject3 xdg-open vlc-qt $ bin/gpodder # needs env vars set
tools/create-desktop-icon.py didn't work for some reason, so I've created the desktop entry myself:
[Desktop Entry] Name=gPodder (Git) Exec=/home/user/code/gpodder/bin/gpodder Icon=/home/user/code/gpodder/share/icons/hicolor/scalable/apps/gpodder.svg Terminal=false Type=Application
After giving the gpodder + vlc setup a try on the PinePhone with Phosh for several hours with a regular non-bluetooth headset:
- Play/pause button on headset did not work
volume up/down only worked while the screen was unlocked in phosh
- it does work while the screen is locked! I just thought it didn't work because there is no visual feedback when changing the volume.
- with wifi enabled, battery went down pretty fast. I think we disable wifi power saving in the kernel currently though (as to other distros, but we could look into if that is still needed) and gpodder was downloading podcasts at the time, which may impact battery.
- with wifi disabled, battery goes down ~5% in 30 min, which is acceptable imho
- airplane mode toggle makes it forget the bluetooth state
- once feeds are subscribed, it's all in all usable enough that I can enjoy listening to podcasts with this setup
- What are your thoughts on the apps above?
- Have I overlooked any app?
- Would anybody like to work on making either Vocal or gpodder mobile friendly?
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information