Closed LJAM96 closed 7 months ago
which podcast app are you using? I tried /rss/youtube/PLMdYRoC0mZlW2uoesMXUrac26lsvOupSx
with gPodder and it is able to list and stream the episodes
I use Apple Podcasts, ive tried also tried with Overcast. Same result with 'Sleep With Me Podcast'
Using a reverse nginx proxy and domain but same issue with IP and port as URL
thanks. could you try the podcast PLY155lJX6_wcTzyjW2sGB4sTT5ZkivwnN
? if that works, I believe I know what the issue is
Same result I get 'This Past Weekend' Podcast populated within the app but 0 episodes.
I do get 2024-02-01 01:23:24,478 [INFO] Grabbing episodes from YouTube playlist PLY155lJX6_wcTzyjW2sGB4sTT5ZkivwnN
in the logs but just doesnt seem to populate in app. maybe its Apple Podcasts and Overcast
it seems like Apple has specific proprietary tags required for apple podcasts (and Overcast probably inherits those requirements?). this should be easy enough to support, but i can't test it myself so please bear with me
it seems like iTunes also implements the requirements - it acts the same way as you describe apple podcasts acting. i've opened a PR which works for iTunes now, but I have a few things to resolve still.
On the PR when I enter a playlist ID on the URL I get
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
and on the logs I get
2024-02-01 22:37:27,157 [INFO] Generating RSS feed for YouTube playlist PLfikCHtGjo4kZ_kReUH9U3qCoaXQMwNDL
2024-02-01 22:37:27,297 [INFO] https://www.youtube.com/playlist?list=PLfikCHtGjo4kZ_kReUH9U3qCoaXQMwNDL
2024-02-01 22:37:27,298 [INFO] Grabbing episodes from YouTube playlist PLfikCHtGjo4kZ_kReUH9U3qCoaXQMwNDL
2024-02-01 22:37:27,495 [ERROR] Exception on /rss/youtube/PLfikCHtGjo4kZ_kReUH9U3qCoaXQMwNDL [GET]
Traceback (most recent call last):
File "/home/appuser/.local/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/appuser/.local/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/appuser/.local/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/appuser/.local/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/appuser/.local/lib/python3.12/site-packages/flask/views.py", line 110, in view
return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/appuser/.local/lib/python3.12/site-packages/flask/views.py", line 191, in dispatch_request
return current_app.ensure_sync(meth)(**kwargs) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/src/podcastsponsorblock/views/youtuberssview.py", line 187, in get
generate_rss_feed(episode_feed, GeneratorOptions(service_config, podcast_config, "")), mimetype="application/rss+xml"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/appuser/.local/lib/python3.12/site-packages/cachetools/__init__.py", line 737, in wrapper
v = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/app/src/podcastsponsorblock/views/youtuberssview.py", line 163, in generate_rss_feed
feed_generator.add_entry(generate_episode_entry(episode, generator_options))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/src/podcastsponsorblock/views/youtuberssview.py", line 93, in generate_episode_entry
feed_entry.link(
File "/home/appuser/.local/lib/python3.12/site-packages/feedgen/entry.py", line 445, in link
self.__atom_link += ensure_format(
^^^^^^^^^^^^^^
File "/home/appuser/.local/lib/python3.12/site-packages/feedgen/util.py", line 74, in ensure_format
raise ValueError('Data contains invalid keys')
ValueError: Data contains invalid keys
I think it should be working now, can you please try the PR branch again? you will need to set up a podcast configuration file as described here so that all the attributes iTunes requires are available
I found out that I can also test via Apple Podcasts Connect and even that is able to parse everything correctly now, so i hope it works haha
A friend of mine was able to test the PR w/ apple podcasts and it was able to view the episodes and stream them :)
The first podcast I attempted was Criminal. added ID to URL got an output. On adding the output to my podcast app it creates an entry with the correct name and image but shows 0 episodes.
XML item example