Audiobookshelf logo

Audiobookshelf

Self-hosted audiobook and podcast server

Alternative to: audible, overcast, pocket-casts

Audiobookshelf screenshot

About Versions (100)

v2.21.0

2025-04-27

Added

  • Bulk download option when selecting multiple library items #3541 by @Vito0912 in #4133

Fixed

  • Validate uploads endpoint request (See GHSA-47g3-c5hx-2q3w)
  • Incorrect items count on library page for users with item restricting permissions #4163 in #4164
  • Book tools page, chapter edit page and library stats page not setting the current library properly on refresh #4170
  • Podcast library item size not updating when downloading episodes #4180
  • Inconsistent order of multiple authors on a book #4177
  • Re-scanning podcast items can result in inaccurate episode counts. in #4195
  • Socket events for library item updates not respecting users item restricting permissions #4199 in #4200
  • Server crash when requesting an RSS feed for a collection with no books by @Vito0912 in #4223
  • UI/UX: Library item page details overflowing text for some translations #4187

Changed

  • Filename sanitization normalization to NFC & debug logs for sanitization #4121
  • Added support for multiple series in series & series-part meta tags (semicolon separated) #4136
  • Uploader checks if a library item exists in a subdirectory before uploading #4146
  • PSC chapters are now parsed from podcast feeds when downloading episodes
  • Latest episodes page shows 50 latest (was 25) #3343
  • .aif audio files are now supported #4211 by @Nishantsingh11 in #4212
  • UI/UX: Better error messaging for chapter lookup errors #4210 by @nichwall in #4213
  • UI/UX: Podcast episode download modal has option to toggle episode pub date sort descending/ascending #4073
  • UI/UX: Use keyboard to toggle checkboxes and show outline when buttons are focused #4140
  • UI/UX: Stats page “items finished” icon switched to material symbols by @Toby222 in #4162
  • UI/UX: Covers tab in item edit modal showing error image when cover is not set
  • UI/UX: Changing the cover image of a library item now updates the cover image of the item in the player #4025
  • API: Local session sync endpoints no longer require mediaMetadata by @Vito0912 in #3690
  • More strings translated
    • Catalan by @fitojb @markstor
    • Chinese (Simplified Han script) by @springsunx
    • Croatian by @biuklija
    • Czech by @petr-prikryl @kuci-JK
    • Danish by @MikkelOlesen @Andersborrits
    • Finnish by @Ricky-Tigg
    • German by @confusedalex @Cramcon @cebo29
    • Hungarian by @Kabika82
    • Norwegian Bokmål by @dvc05
    • Portuguese (Brazil) by @alghostzx @jpmaior
    • Russian by @NickSkier @stokito
    • Slovak by @pecer @mbalko
    • Slovenian by @thehijacker
    • Spanish by @fitojb
    • Swedish by @Cotignac @Landrash @stolpee

Internal

  • Update tailwindcss to v4 by @mikiher in #4126
  • Github workflow to run frontend component tests by @mikiher in #4151
  • Docker build workflows updated to use ubuntu-24.04

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.20.0…v2.21.0