[HN Gopher] Audiobookshelf: Self-hosted audiobook and podcast se...
       ___________________________________________________________________
        
       Audiobookshelf: Self-hosted audiobook and podcast server
        
       Author : fjk
       Score  : 179 points
       Date   : 2025-05-09 02:17 UTC (20 hours ago)
        
 (HTM) web link (www.audiobookshelf.org)
 (TXT) w3m dump (www.audiobookshelf.org)
        
       | rosege wrote:
       | Thanks looks interesting
        
       | agnishom wrote:
       | I host this on my homeserver. Pretty nice app so far.
        
         | senectus1 wrote:
         | been using it for a couple of years now. its an absolute
         | cracker.
         | 
         | Pity the iOS app is almost impossible to get.
        
           | rthz wrote:
           | On iOS you can use the plappa client. It's open source and
           | works well in my experience.
        
             | senectus1 wrote:
             | oh nice, I'll have a look into that. thanks!
        
             | PokerFacowaty wrote:
             | Seconded, I've been using plappa for a couple months after
             | Apple messed up PWAs after bringing them back
             | (Audiobookshelf didn't want to change to next chapter when
             | the app was in the background) and I'm generally very happy
        
       | efff wrote:
       | Been using it for a while, amazing app!
        
       | InsideOutSanta wrote:
       | What's a good source for DRM-free audiobooks? I'd love to ditch
       | Audible and move to something like this, but I haven't found a
       | store that has a good selection.
       | 
       | (Edit: thank you, everybody, for the great answers!!!)
        
         | Arn_Thor wrote:
         | Audible books can be.. liberated from such encumbrances.
         | There's a program called Libation.
        
         | djhworld wrote:
         | You can strip the DRM from audible books and create mp4s using
         | ffmpeg.
         | 
         | Although, given Amazon's recent efforts with the kindle, I'm
         | going to say they will probably remove the ability to download
         | books soon
        
           | once_inc wrote:
           | You can quite easily flash you Kindle with new firmware that
           | is more forgiving and abled.
        
           | apitman wrote:
           | What's been going on with the kindle? Would be interested in
           | reading more about this.
        
         | navanchauhan wrote:
         | If you want to sail the high seas, MyAnonaMouse is one of the
         | best private trackers.
        
           | udev4096 wrote:
           | Audiobookbay has a better audio book collection than MAM.
           | Plus, it's a public tracker and doesn't require an invite
        
             | dspillett wrote:
             | I've tended to avoid public trackers when I can find what I
             | want on private ones. I'm not sure that they are any safer
             | in terms of consequences resulting from being noticed by
             | media firms and relevant legal groups, but the transfer
             | speeds are generally better (due to there being less
             | leeching presumably), and public tracker UIs tend to be
             | more filled with junk that sometimes gets past my
             | ad/malware filters.
             | 
             | [Not a comment on Audiobookbay specifically, I don't
             | remember having tried that one and it may be great for all
             | I know]
        
         | theothertimcook wrote:
         | Iirc Downbpour, I've just been using booklibconnect on my
         | audibles tho.
        
         | bentley wrote:
         | I primarily source my copyrighted audiobooks from Libro.fm and
         | Downpour. Both have large (though not universal) catalogues.
         | 
         | Librivox has free, public domain audiobooks. The narrators are
         | volunteers, so performance and recording quality varies, but
         | there are some very good ones there.
         | 
         | Some podcasts provide legitimate audiobooks of copyrighted
         | works, generally with similar quality caveats to Librivox. For
         | example, the blog "Readings from Under the Grapevine" has a
         | free, legally licensed recording of the Narnia series (except
         | for _The Lion, the Witch and the Wardrobe_ ).
         | 
         | I never buy audiobooks with DRM, even if the DRM is trivial to
         | break. Amazon has made clear their intentions to lock media
         | down ever further. I shouldn't have to put up with that, so I'm
         | not going to support them financially.
         | 
         | If I can't find a copyrighted audiobook at one of the DRM-free
         | shops, I get it from my library, either through Libby or by
         | checking out a physical copy. Not that these would be helpful
         | for someone using Audiobookshelf...
        
         | loganmarchione wrote:
         | If you're not looking to sail the high seas, I highly recommend
         | Libro.fm. They have had almost any audiobook I have ever wanted
         | (e.g., Andy Weir's books in English are only available on
         | Audible), and you can choose a local library to support with
         | your purchase.
         | 
         | I subscribe to their monthly plan, $14.99/month, which gets me
         | 1 credit per month. If you buy one audiobook a month that's
         | $14.99, using that credit, it pays for itself. I really like
         | using my credits on expensive audiobooks, like $25 or something
         | (I'm basically getting the book at a discount) and then I buy
         | cheaper audiobooks using my credit card.
         | 
         | You can stream your purchased books with their app, but I
         | download the files (everything is DRM-free) and move them into
         | Audiobookshelf. Most of their older books are just ZIP
         | downloads of MP3s, but newer books come in M4B format (one
         | large file with chapter markers). Both work flawlessly with
         | Audiobookshelf.
         | 
         | If you buy an audiobook on Audible (e.g., Andy Weir), you can
         | download the AAX file from Audible and use a converter to
         | convert the file to M4B (this strips the DRM and makes it work
         | with Audiobookshelf). This is in a legal gray-area, depending
         | on your jurisdiction.
        
       | TheAceOfHearts wrote:
       | I've also been using this for a while now and it works great. My
       | only complaint is that tools for cleaning up metadata are a bit
       | clunky if you have a very large collection. You can basically go
       | through every item one-by-one, or you can run an automatic script
       | to check the whole collection. It would be great if you could
       | define certain rules to require manual review, and incrementally
       | run the tool to improve the tags whenever you have a bit of free
       | time to clean up your collection.
       | 
       | But the ideal solution would be to have some way of generating
       | fingerprints for each audiobook, and then build up a database
       | which matches that fingerprint to the correct metadata. That way
       | the work of organizing and tagging large collections could be
       | crowdsourced; this is what other communities have done.
       | 
       | Maybe we're not too far off from AI-assisted tools that can just
       | figure out how to properly tag a bunch of items correctly just by
       | looking at the filename and existing metadata. Maybe even picking
       | up on additional contextual clues by listening to a little bit of
       | a chapter, to check if the title of the work is mentioned at the
       | start.
        
         | theshrike79 wrote:
         | So basically Musicbrainz Picard, but for audiobooks?
        
           | volteret4 wrote:
           | No, this is a server app for your podcasts and audiobooks,
           | picard is the best music metadata tagger imho, but they arent
           | related
        
           | jostyee wrote:
           | Self-hosted Audible alternative
        
             | theshrike79 wrote:
             | > But the ideal solution would be to have some way of
             | generating fingerprints for each audiobook, and then build
             | up a database which matches that fingerprint to the correct
             | metadata. That way the work of organizing and tagging large
             | collections could be crowdsourced; this is what other
             | communities have done.
             | 
             | I was referring to this bit, which is exactly what the
             | Musicbrainz database does for music albums.
        
       | Arn_Thor wrote:
       | A good solution for a standalone server. But since I use Plex
       | already there's an audio book plugin for it that I use along with
       | Prologue for IOS.
        
         | dewey wrote:
         | Prologue is amazing, have been using it for a year now after
         | seeing it on HN before. Also don't need to run another service
         | for it as I already use Plex.
        
         | ksala_ wrote:
         | Prologue is great - the last Alpha has support for
         | Audiobookshelf (https://old.reddit.com/r/PrologueApp/comments/1
         | dnbtf3/prolog...), and I prefer that as I don't run Plex in my
         | setup
        
         | shaunkoh wrote:
         | Does it still play well with the notorious new Plex app?
        
           | chrisweekly wrote:
           | what's notorious about new Plex?
        
             | altruios wrote:
             | Enshittification of UI/UX. The new UI is 'optimized' for
             | engagement instead of usability.
        
           | doctoboggan wrote:
           | I am not familiar with the notoriety of the new plex app, but
           | I can confirm that Prologue works well with the latest Plex
        
       | heisenzombie wrote:
       | I understand the audiobook server, but what's the use case for
       | the podcast part? You replicate a podcast on your own server, in
       | case the original goes away?
        
         | TheAceOfHearts wrote:
         | It can be configured to automatically fetch podcasts and keep a
         | local copy. If you have a workflow for listening to audiobooks
         | then it allows you use that same workflow for podcasts. With
         | the mobile app you can "check out" audiobooks or podcasts and
         | have any listening progress tracked between platforms.
        
         | theshrike79 wrote:
         | Yes, pretty much. You can also post-process them to remove ads
         | etc. because you have the files on your own server.
         | 
         | Some podcasts remove all of their backlog when they "sell out"
         | and go behind a paywall, having them backed up prevents that.
         | (How did this get made?[0] being one example)
         | 
         | Also some podcasts (BBC ones I think) add ads while you
         | download, based on your country. Some of my No Such Thing As A
         | Fish[1] episodes have Christmas themed ads in them because
         | that's when they we're cached :)
         | 
         | [0] https://www.earwolf.com/show/how-did-this-get-made/ [1]
         | https://www.nosuchthingasafish.com
        
           | walthamstow wrote:
           | I recently pulled the back catalogue of the Acquired podcast.
           | All the older episodes going back as far as 2016 have adverts
           | for Claude!
        
         | erinnh wrote:
         | You can use it as that.
         | 
         | I use it as my podcast app.
         | 
         | I mostly only have the last 2-5 Episodes on my server for each
         | Podcast. (you can automatically remove episodes if there are
         | more than X)
         | 
         | Though I do keep all Episodes for 3 of my favourite Podcasts.
        
         | unsnap_biceps wrote:
         | I mirror all my podcasts locally as shows do disappear before I
         | listen to them. Wondery has a ton of shows that if you miss the
         | few week window, they're being a wondery+ paywall.
        
           | walthamstow wrote:
           | The BBC does this too.
        
           | lawn wrote:
           | Dan Carlin's Hardcore History do this too.
           | 
           | When I setup Audiobookshelf a week ago I also bought the rest
           | of his entire collection from his site, getting a complete
           | library for his show.
        
         | bubblethink wrote:
         | If you subscribe to a paid podcast, you can mirror and share
         | your own rss link with friends, which is better than sharing
         | credentials or your private link, and it won't trip some shared
         | password flag at the upstream server.
        
         | heavyset_go wrote:
         | Some podcast feeds only list the last N episodes, so if you
         | want to listen to episode N+1, you either have to have it
         | already downloaded locally or cache the feed and hope the audio
         | file's URL is valid when you go to listen to it later.
        
         | dspillett wrote:
         | _> You replicate a podcast on your own server, in case the
         | original goes away?_
         | 
         | Or, as a couple that I've listened to and might re-listen later
         | have, they later start injecting adverts where they were not
         | previously present, or start piling more in where they were
         | reasonable before.
        
       | walthamstow wrote:
       | I had to stop using ABS because the Android app has a fatal flaw
       | - you can't queue podcasts. I listen to podcasts while I'm doing
       | dirty jobs, I can't pull my phone out and play another episode
       | manually.
        
         | mrklol wrote:
         | Somebody suggested using playlists for that on Reddit, maybe it
         | works!
        
           | tonytamps wrote:
           | Unfortunately it doesn't. I've been closely watching this
           | issue for over a year.
        
         | midasz wrote:
         | I just use abs to serve podcasts, subscribe to the abs feeds
         | with antennapod. Have a couple of premium podcasts setup that
         | way (so even keeping a local archive).
        
         | heavyset_go wrote:
         | Open Audiobookshelf with Firefox on Android and install it as a
         | PWA
        
       | krick wrote:
       | How is the Android app? The only good app for local audio-books I
       | know is "Smart AudioBook Player". The web-app GUI in the demo is
       | less than perfect, but kinda ok, if you enable chapter-view. The
       | biggest problem is a single set of +-10 s rewind buttons: for a
       | dedicated audio-book player it's not enough, a separate +-1 min
       | button set is a must. But since the authors didn't think of that,
       | I don't expect it to be different in the Android app. I'm rather
       | asking about mobile-specific features:
       | 
       | 1. Does it properly stop the playback when headphones are
       | disconnected?
       | 
       | 2. Is there a usable lock-screen widget?
       | 
       | 3. Does it auto-rewind after a pause? It's best when the pause
       | duration is taken into account: it shouldn't rewind more than a
       | couple of seconds if you pause for a second, but a whole minute
       | may be better if you left it off yesterday.
       | 
       | 4. Does it handle well situations when the server is not
       | accessible? Can you just pre-download a couple of audio-books for
       | your 10 h long flight? I mean, honestly, streaming is never
       | desirable, the only point of a self-hosted server is that you
       | don't have to download and delete your collection manually. It's
       | a tricky problem when the playlist is highly variable (as with
       | music), but for an audio-book player should be a non issue: just
       | pre-fetch a whole book (maybe manually), storage space is a
       | lesser issue than mobile internet.
        
         | Gratuity0493 wrote:
         | Answer for #1 & #2: I do not know. Answer for #3: yes, it does.
         | Answer for #4: Yes, it works reliable. If the server is
         | unavailable everything just works fine. If the server is
         | available your current position is synchronized so you can
         | continue on a different device.
        
         | stavros wrote:
         | I use ABS to host my audiobooks and I use the Android app to
         | download them to a folder, and then use Smart Audiobook Player
         | to play them. It works great, though you lose the time syncing
         | with the server, if you care about that.
         | 
         | There are also alternative clients, like Lissen.
        
           | fonema wrote:
           | Same here. I do this because ABS android app would not
           | accurately track my listening progress, and is very
           | frequently off after a pause. May be off by 30 min, by an
           | hour, gets rather frustrating relistening the same segments.
           | Was never able to solve this.
        
         | filcuk wrote:
         | 1 and 2 are system functions primarily. 3 yes, configurable 4
         | as expected- streaming resumes if it can, you can predownload
         | 
         | The android app has improved a lot lately, it's perfectly fine
         | to use.
        
         | GCUMstlyHarmls wrote:
         | 1) Yes, it stops playing when I put my bluetooth headphones
         | away (YMMV with wired or other methods).
         | 
         | 2) Yes, _but_ sometimes pressing play wont actually play. I
         | also see this occurring with antenna-pod (FOSS podcast player),
         | so I think this is Android 15 being broken, or they both use
         | the same underlying (non standard?) audio library.
         | 
         | 3) The sibling says yes, from checking the github issues, I
         | think its not as "smart" as other players and simply does a
         | fixed offset if you pause for some length of time. Honestly I
         | always figured it ran back a few seconds due to how keyframes
         | [sic] work in m4b files.
         | 
         | 4) Yes, I do not have any data on my phone so I basically
         | exclusively download my books to the device and play them
         | offline. Sometimes I do get progress syncing issues, honestly I
         | forget in which direction, possibly it only occurs when I
         | finish a book offline then go online and it resets back to the
         | last "still playing" sync point.
         | 
         | Sometimes I do have issues downloading a book, and it will
         | stall out mid download. I can't say whether this is the app,
         | the phone, the wifi or the server. It's sporadic, possibly
         | fixed in some recentish version, haven't seen it for a while.
         | 
         | You can (independently) adjust the skip ahead/skip back buttons
         | between 5s, 10s and 30s. I just leave it on 10s and mash if I
         | have to. Before ABS I used Voice (FOSS, IMO great but I wanted
         | library management too. Not as feature rich as Smart Audiobook
         | Player, intentionally I think.) which only had one set of skip
         | buttons so I never "missed" this in ABS.
        
         | apitman wrote:
         | Do you have any other favorite features from Smart Audiobook
         | Player? I'm building an audiobook app now. I have some unique
         | features unrelated to playback, but I also want it to be an
         | excellent player.
        
           | delichon wrote:
           | History. I keep losing my place on books with random touches,
           | and I dislike the process of finding it again through
           | sampling. Spoilers! The history feature fixes that.
           | 
           | And the built in equalizer. And the speed shifting. And the
           | file management. It's just a great app.
        
             | apitman wrote:
             | Thanks. Also how do you get books onto your phone for Smart
             | Audiobook Player in the first place?
        
               | dp-hackernews wrote:
               | I used to use Syncthing with a custom .stignore to
               | exclude all but the books I want to listen to offline.
        
             | dp-hackernews wrote:
             | You get history in the ABP android app.
        
               | midasz wrote:
               | One thing LLM's could do for me is a "recap" feature. I
               | sometimes completely forget listening to books when I'm
               | halfway through. So I'm either having to Google for
               | synopsis per chapter or just start over. Mostly i just
               | pick something else to listen. If it could recap up until
               | where I'm at that'd be pretty neat.
        
           | krick wrote:
           | Honestly, for me it's kinda minimal, simple and ergonomic UI
           | is the point. It has some more sophisticated features, but
           | they don't distract me, nor I actually need them. For
           | instance:
           | 
           | - bookmarks (I tried to use them, but it's too much work, if
           | I really need to take a note, I better do it in written form)
           | 
           | - UI to write down characters (same: I used it a couple of
           | times, just because it's there, but it's not worth it, use
           | normal note-taking app for note-taking)
           | 
           | - equalizer (I'm sure somebody uses it, but I never truly
           | needed it for audio-books)
           | 
           | And many more.
           | 
           | What actually matters are small details:
           | 
           | - Granular playback speed control. ABS seems to have it done
           | right too, but some players have like 1-1.25-1.5-..., which
           | is not granular enough to get normal conversational talking
           | speed out of somebody way too slow.
           | 
           | - It is possible to enable ID3, but it doesn't force it
           | either.
           | 
           | - It recognizes chapters in whatever I have. m4b, mp3, cue,
           | many files in a single folder, many nested folders, whatever.
           | If it gets things wrong, it is possible to merge books in the
           | library. I guess, the worst case is if I am overzealous with
           | chapters (like marking chapters in a youtube podcastwhich has
           | a mark like every 2 minutes), but then again, it only means
           | "stop at the end of the chapter" becomes not feasible, but
           | otherwise it's fine.
           | 
           | - I guess, every audio-book player does, but still: it does
           | remember positions in multiple books, so I can switch between
           | lectures and fictions and get back to where I stopped.
           | 
           | - It takes into account the current playback speed when
           | estimating how much time is left.
           | 
           | - It is possible to remove buttons you don't need, it's
           | possible to choose an action at the end of the book, it's
           | possible to choose a lot, but defaults are really just fine
           | for me.
           | 
           | - I never used it, but thinking about your question I just
           | found out it has "Skip start/end" functionality. This is just
           | great, I'm excited to try it out ASAP.
           | 
           | Anyway, I probably forget some small details, so you better
           | take a look yourself. It's not perfect, but good enough to
           | study when building something similar. I can also suggest 1
           | thing that is not in SABP, and, again, it's important to not
           | overload the UI, but I sometimes wished it was there. In SABP
           | it's only possible to either stop after X minutes (with
           | sleep-suggestive volume fade), or at the end of a chapter
           | (without fade). Sometimes I wish I could tell it to stop at
           | the end of a chapter _approximately_ after X minutes (like,
           | if it has a chapter every 7-15 minutes, and you are planning
           | to listen for about 30-40 minutes more, but you don 't want
           | it to fade volume an to stop in the middle of a chapter
           | overall). So it's either "approx X minutes" or simply "N more
           | chapters". Neither is possible in SABP.
           | 
           | Also, I don't know it I actually want it, but it seemed nice
           | listening to podcats in NewPipe (SABP doesn't have it). There
           | is an option to skip silence in NewPipe. I didn't actually
           | use it too much, and the last time was a while ago (I pretty
           | much stopped to listen podcasts on it), but I seem to recall
           | it worked nicely.
        
         | wing-_-nuts wrote:
         | I run ABS on my laptop, and the main issue I run into is that
         | when my laptop changes networks (i.e my vs my parents wifi), it
         | completely breaks syncing. I wish you could set up a server and
         | say 'this will be available on x,y, or z ip, try them all'
         | 
         | The android app does allow you to download audio books for
         | offline listening, which I use a lot when driving.
         | Unfortunately the 'playlist' doesn't seem to just autoplay the
         | next book. I don't like interacting with my phone behind the
         | wheel. Not sure if it has an android auto app or not.
        
           | Valord wrote:
           | Use tailscale or another private VPN to not suffer from
           | changing networks.
        
             | apitman wrote:
             | The end-to-end principle would suggest this should be
             | solved by the app and server.
        
           | midasz wrote:
           | It has Android auto, I've used it in a previous car and it's
           | decent enough. Like the other commenter said - I'd install
           | tailscale and connect via that.
        
         | Cerium wrote:
         | I use Listen Audiobook Player. It seems to meet your standard
         | list. I also add: decent tool for fetching cover art.
        
         | cariocecus wrote:
         | Long time user of Audiobookshelf and Smart Audiobook Player.
         | Audiobookshelf on Android, at least on some devices, kills your
         | battery, I only use the official app to download the files and
         | then I use the Smart Audiobook Player to listen.
        
       | pyuser583 wrote:
       | Really nice!
        
       | midasz wrote:
       | This is one of the pillars of the selfhosting world imo. Together
       | with Immich for photos, Plex(amp) - arr stack for media, and
       | Vaultwarden for passwords. They've just never let me down.
       | 
       | Maybe openwebui is another addition but it's still early days
        
       | rft wrote:
       | I run this on my home server and use it to download and listen to
       | podcasts that don't have a video component. It struggled a bit
       | while downloading podcasts with hundreds of existing episodes, no
       | idea if this was fixed since I tried it.
       | 
       | Also want to mention that Music Assistant has an integration for
       | it as a media source, so you can listen to podcasts/audiobooks on
       | any speaker connected to your Home Assistant. https://www.music-
       | assistant.io/music-providers/audiobookshel...
        
       | kyriakos wrote:
       | For Podcasts I've been using
       | https://github.com/madeofpendletonwool/PinePods comes with Apps
       | for every platform. Its a bit rough around the edges but it does
       | the job.
        
         | hysan wrote:
         | I've been running this alongside Audiobookshelf for podcasts to
         | compare the two. AFAIK, Pinepods doesn't have a native iOS app.
         | Has that changed recently?
        
           | kyriakos wrote:
           | no still no iOS app but I am using Android so didn't even
           | notice.
        
       | gitroom wrote:
       | man i still end up juggling three different apps for all my
       | audiobooks and podcasts, would be nice if just one setup handled
       | all the offline stuff and syncing clean
        
       | azalemeth wrote:
       | I've found AntennaPod [1] absolutely brilliant for android
       | podcasts -- it _just works_, downloads the audio files, is
       | robust, etc. Very high quality software. This looks a bit more
       | like a long-term storage solution for podcasts though, rather
       | than shorter term listening. And of course with excellent
       | metadata integration.
       | 
       | [1] https://antennapod.org/
        
       | apitman wrote:
       | I'm currently building an audiobook app. I've considered adding
       | podcast (and even music) support, but wonder if this is something
       | people actually want bundled together or would prefer tailored
       | experiences.
        
         | aembleton wrote:
         | I wouldn't want them bundled together. Focus on one thing -
         | when I want to listen to an audio book I'm not after a podcast
         | or music. I have other apps for that.
        
         | specto wrote:
         | I agree, focus on the audiobooks. That being said, I would love
         | an app that can detect and skip the awful built in ads they've
         | added to podcasts...
        
           | thrill wrote:
           | It's especially jarring because the ads are at maximum
           | volume.
        
         | jermberj wrote:
         | The canonical advice would be to focus on one thing first and
         | make sure you're doing it well and users want it, then expand.
        
       | apitman wrote:
       | Has anyone played with the API? How is it to develop against?
        
       | andnand wrote:
       | Im fairly new to self hosting. I've been playing around with a
       | raspberry pi running raspberry pi os. The documentation says the
       | Debian package is only for amd64 architectures. Im assuming that
       | has to do with one of the Node packages? Out of curiosity, if I
       | wanted to get it to work on an arm architecture, where would I
       | start? My first guess would be trying to install it on the pi and
       | looking at the error messages.
        
         | apitman wrote:
         | Can you use Docker? Looks like they have a linux/arm64 build.
        
           | andnand wrote:
           | I was looking to use this as a learning exercise. Im just
           | curious about the process of getting this to build for arm
           | natively.
        
         | TheAceOfHearts wrote:
         | I think the docker container has both amd64 and arm64 versions,
         | so try following the docker-compose instructions.
         | 
         | Personally, I have a Services folder with sub-folders for each
         | self-hosted service. Each service folder has a compose.yaml
         | file, and any additional files that the service might generate
         | also go into its service folder (e.g. /Services/audiobookshelf/
         | has config/ and metadata/ as well as compose.yaml). I don't
         | need every service running constantly, so I just update and run
         | things manually as needed, but you could automate that. I
         | really appreciate that you can just use `docker-compose pull`
         | to update and `docker-compose up -d` to run the service without
         | having to mess around with anything else.
        
       | p0w3n3d wrote:
       | I'm looking for self hosted Spotify-alike. Own cloud is not
       | really what I wanted...
        
       ___________________________________________________________________
       (page generated 2025-05-09 23:01 UTC)