lucasasselli / garmin-podcasts

Garmin Podcasts is a Garmin Connect IQ podcast app powered by Podcast Index. No external service or subscription required: all you need is you watch!
GNU General Public License v3.0
76 stars 17 forks source link

gPodder subscriptions have eight entries but the watch is only showing three #12

Open alexanderadam opened 3 years ago

alexanderadam commented 3 years ago
This is the gpodder response (Click to expand) ```xml user's Subscription List Sun, 18 Apr 2021 07:32:11 +0000 ```

But when I go to Sync I can only select episodes from three of the podcasts (Methodisch inkorrekt, Nussschale and Request for Comments).

As usual: thank you for your work! :pray:

lucasasselli commented 3 years ago

Hi Alexander, the app is using PodcastIndex as source for the podcasts. My best guess is that maybe the podcasts are not listed there...

lucasasselli commented 3 years ago

https://podcastindex.org/ has a search engine to search listed podcasts.

alexanderadam commented 3 years ago

So it is not using the XML coming from gPodder? :thinking:

lucasasselli commented 3 years ago

gPodder's API (to the best of my knowledge), doesn't provide any API to access the episodes of a podcast, just it's RSS feed.

alexanderadam commented 3 years ago

the app is using PodcastIndex as source for the podcasts. My best guess is that maybe the podcasts are not listed there...

Most of them are, but they are using different feed URLs:

The only one that's indeed not available:

So I guess that you're mapping some feed data or so? :thinking:

gPodder's API (to the best of my knowledge), doesn't provide any API to access the episodes of a podcast, just it's RSS feed.

Can you please elaborate on that?

Because I don't know what you mean by this, since the RSS feed naturally contains all information about the episodes (i.e. audio URLs, images, titles, etc). But they also provide feed data in JSON if necessary. You can see some examples of its usage in the documentation.

PS: Apart from that, gpodder also supports actions (such as whether an episode was downloaded, how much of an episode was already listened, etc.). It would be great to sync such things as well, but I guess this would be too much effort for now and would be part of another ticket anyway. :laughing:

lucasasselli commented 3 years ago

Oh wow! I completely missed the gpodder feed service! This is amazing, I will definitely integrate it in the app!

Can you please elaborate on that?

Well, Garmin Watches don't support XML and have very little memory, so parsing an RSS feed is impossible. PodcastIndex provides not only JSON feed information, but also unique IDs for podcasts and episodes, which is pretty useful but not essential.

Let me check the documentation and see if there's a clean way to keep PodcastIndex for the local provided and use the gPodder feed service for gPodder.

Apart from that, gpodder also supports actions...

That's definitely something that I want to add in the app!

alexanderadam commented 3 years ago

Well, Garmin Watches don't support XML and have very little memory, so parsing an RSS feed is impossible.

Ah, now I see. The API has JSON support integrated but no XML! Well, this makes handling Podcasts obviously more difficult and now I definitely understand the issue here.

lucasasselli commented 3 years ago

I just published an update that should address this (3.1.5). Please let me know if it works for you.

stefangweichinger commented 2 years ago

I also see this behavior on my Fenix 6X Pro. I export an OPML file from my phone, delete all but 6 podcasts and import them in gpodder. The watch only shows and syncs three of the podcasts. Do I have to edit the OPML somehow, any workaround possible? As far as I see I have latest 3.1.8 on my watch.

lucasasselli commented 2 years ago

Sorry for the huge delay! Do you see the podcasts correctly in gPodder?

stefangweichinger commented 2 years ago

Oh, wow, didn't expect any reply anymore. Yes, I see them in gpodder.net. Reduced it to 2 podcasts only to pinpoint it down. Only one of them gets a download on the watch.

Additional and maybe part of the problem(s): gpodder.net doesn't work well for me. I can't add/remove podcasts within the web GUI, I have to download the opml, edit and upload it again. It seems the web site has its bugs.

Let me know what I can add here to help debugging that.

stefangweichinger commented 2 years ago

I removed the watch from gpodder.net and re-added it. Added a single podcast ( https://feeds.lagedernation.org/feeds/ldn-mp3.xml ) which is shown as subscribed now.

When I sync on the watch there is NO episode synced: nothing to select for playback after sync.

Yes, I upgraded to the latest release of your plugin/addon before.

lucasasselli commented 2 years ago

gPodder service has been pretty buggy lately, but the issue you are describing seems to be an issue on my side.

Can you see the podcast and the episodes when selecting Download episodes from the Garmin app?

stefangweichinger commented 2 years ago

I switched to "Manual" on the watch and get "You are not subscribed to any podcast!" At the same time I see the one mentioned podcast subscribed on gpodder.net (and yes, the device ID matches).

lucasasselli commented 2 years ago

Can you try without setting a device ID in the Garmin app? I tried to subscribe to the same podcast on my side and it worked.

stefangweichinger commented 2 years ago

works yes. With Manual Sync. But device-ID would be helpful ... I have way more podcasts on my phone than I want on my watch. But it's a way to start for now.

stefangweichinger commented 2 years ago

It doesn't work fully: I get "too many subscriptions" with "Recent" mode, and also the Manual Mode doesn't really download anything. Too much podcasts, I assume. I would have to remove gpodder from my AntennaPod and the Gpodder application on my PC or use a separate gpodder.net account for the watch maybe.

lucasasselli commented 2 years ago

@stefangweichinger, I tried to reproduce the issue on my side but I had very little luck. I am wondering if the issue is on the gPodder side.

lucasasselli commented 2 years ago

@stefangweichinger , version 3.3.0 has a lot of improvements to the episode selection: this issue might be gone now.

stefangweichinger commented 2 years ago

@lucasasselli thanks for the reminder. updated, getting "Error -2" now only ;-)

stefangweichinger commented 2 years ago

ah, refresh helps

stefangweichinger commented 2 years ago

Short feedback: looks way better, yes. I can pull episodes from some feeds, but some feeds fail ("Error -2"). And I don't find the option to pull the latest episode instead of selecting individual episodes.

But it works better now, thanks. If I have a few podcasts on the watch, that already helps.

lucasasselli commented 2 years ago

I have never seen this issue before! Can you give on of these feeds to test this on?

stefangweichinger commented 2 years ago

@lucasasselli sure, here the opml: https://oc.oops.co.at/nextcloud/s/ws3EqGePkmQw5Ns

The feeds failing: "Lage der Nation", Error -2 .. "Logbuch:Netzpolitik", Error -5 ... if I recall correctly. Didn't test all feeds but some work OK.

thanks

lucasasselli commented 2 years ago

I was able to recreate the issue on "Lage der Nation". Simply too many episodes and very long titles are exceeding the 8KB limit for requests. I tried to reduce the response size by trimming the titles. Partial titles are shown when listing all episodes, full titles are downloaded during sync. It's ugly but it should enable downloading feeds for more podcasts. The fix is in 3.3.4.

stefangweichinger commented 2 years ago

Great. Tested OK with "Lage", "Logbuch Netzpolitik" still gives me an error. But thanks for that fix, I am happy with a few podcasts at least (most of the time I have my phone with me while running, but with your app I don't need to in the future).

If I can test something else, let me know.