Audiobookshelf logo

Audiobookshelf

Self-hosted audiobook and podcast server

Alternative to: audible, overcast, pocket-casts

Audiobookshelf screenshot

About Versions (100)

v2.18.0

2025-01-19

Note: For those running from source, prod.js will be removed in a future release. Use index.js instead. (See #3808)

Added

  • Subdirectory support #385 (See #3535) by @mikiher in #3810

Fixed

  • Unable to create new library when adjusting the “Mark media item as finished” setting #3856
  • “Continue Reading” and “Read Again” shelves not populating for books that are ebook only #3800
  • Server crash for playlists containing deleted items #3784 in #3787
  • Transcoding fails when streams directory contains spaces #3793 by @mikiher in #3794
  • API Cache Manager route uses case-insensitive match by @nichwall in #3780
  • Ffmpeg concat file not properly escaping UNC paths by @mikiher in #3776
  • Matching a book with a new cover image doesn’t update the cover in UI #3807
  • Server crash scanning some CBZ files #3804
  • Merging embedded chapters for multi-track audiobooks giving incorrect chapter ids https://github.com/advplyr/audiobookshelf/issues/3361#issuecomment-2585790509
  • UI/UX: Podcast page episodes table showing blank rows and not removing deleted episodes by @mikiher in #3822
  • UI/UX: Podcast page episodes table scrolling shows blank rows (due to browser font size change) #3511 by @mikiher in #3842
  • UI/UX: Stats listening time rounding error #3817 by @daneroo in #3832
  • UI/UX: User stats heatmap playback sessions number inaccurate for smaller screen sizes

Changed

  • Audiobook RSS feeds now space out audio track episode pub dates by minutes instead of seconds #3442
  • Podcast episode download falls back to downloading without embedding when embed fails (handles inaccurate RSS feeds) #3837
  • Podcast episode description rich text editor improvements by @mikiher in #3816
  • Support env var PODCAST_DOWNLOAD_TIMEOUT to use a custom timeout (ms) for episode downloads #3662 by @sbyrx in #3771
  • Handle Podcast RSS feeds that aren’t using CDATA for description fields with html tags #3778
  • API: Get all library items supports include=stats query param (used in android auto to filter for items with audio tracks)
  • UI/UX: Bookmark timestamps are relative to playback speed #3728 in #3847
  • UI/UX: Editing a bookmark no longer closes the modal (and more UI cleanup) See #3847
  • UI/UX: Library schedule tab includes a message when disabled. See https://github.com/advplyr/audiobookshelf/issues/3734#issuecomment-2581367473
  • UI/UX: Podcast page episodes fall back to displaying the description when the subtitle is empty
  • UI/UX: Podcast episode pub date input shows error when date is invalid/incomplete #3775 by @nichwall in #3805
  • UI/UX: Audio player volume tooltip opens below the icon to prevent blocking the playback speed icon
  • More strings translated
    • Belarusian by @i-Nosferatu-i
    • Catalan by @martinezpenya
    • Chinese (Simplified Han script) by @springsunx
    • Croatian by @biuklija @milotype
    • Czech by @kuci-JK
    • Danish by @WiredMic
    • Dutch by @matieke
    • Finnish by @deusatiam
    • German by @Vito0912 @D0ckW0rka
    • Hungarian by @ugyes
    • Norwegian Bokmål by @soteland
    • Slovenian by @thehijacker
    • Spanish by @martinezpenya @diamondtipdr
    • Swedish by @zOOge @Cotignac

Internal

  • Migrating to new LibraryItem model and removing old. #3779 #3785 #3789 #3798 #3800
  • Merge prod.js and index.js by @mikiher in #3808
  • Readme update nginx reverse proxy example by @mikiher in #3828

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.17.7…v2.18.0