Daily Shaarli

All links of one day in a single page.

July 13, 2025

Audiobookshelf - first impressions

I got an instance up and running (obligatory Ansible role https://codeberg.org/ansible/audiobookshelf) and added my audiobooks library to it. Looks very nice :-)

My initial impression is that the audiobooks UX is much better than that of Jellyfin. I will definitely be moving that library to Audiobookshelf.

Podcasts can only be added and episodes downloaded for users with admin privileges, which seems excessive to me. But given that, the UX is straight-forward. Supports OPML import, and handled my OPML file with almost 150 feeds without choking.

In summary, I am happy to have it up and running and expect it to be my primary venue for audiobook and podcast listening.

Work-arounds to get podcast RSS feeds from those awful closed platforms

Soundcloud

Is the podcast you want to listen to hosted on Soundcloud? First of all, double-check that the podcast is not also hosted somewhere else (more often than not that is the case, and then you can simply avoid Soundcloud).
Soundcloud makes it really hard to discover the podcast's RSS feed. It is not shown anywhere on the page, nor in the HTML source.
Based on a feed URL we already possess and that channel's Soundcloud landing page, we can manually construct the hidden RSS feed endpoint for any Soundcloud "podcast":

  1. Open the HTML source of the Soundcloud "podcast", for example https://soundcloud.com/user-268302561.
  2. In the HTML source, find the user ID property, which looks like soundcloud://users:819898639 (I suggest grep for soundcloud://users).
  3. Copy the numeric part, and construct a URL like this: https://feeds.soundcloud.com/users/soundcloud:users:819898639/sounds.rss.
  4. Take a moment to reflect on the awfulness of siloed web services and do your best to avoid encouraging them in future.