Audiobookshelf Versions Save

Self-hosted audiobook and podcast server

v2.9.0

3 weeks ago

Added

  • OpenID Connect Auth supports setting user type and permissions #2523 (also fix #2440) by @Sapd in #2769
  • OpenID Connect Auth supports setting signing algorithm by @apocer in #2820
  • Podcast library filter for language
  • Support for webp images in cbz/cbr comic files #2792
  • Hebrew translations by @arcmagedr #2756
  • Ukrainian translations by @cor-bee in #2757
  • Bengali translations by @soaibsafi in #2840

Fixed

  • Podcast episode downloads failing to download with some embedded cover art (now excluding non-audio streams) #2858
  • Library "Match Books" only running on first 100 books #2096
  • metadata.json files not being updated when using item metadata utils #2837
  • Enabling/disabling library watcher not taking effect until server restart #2775
  • Local (offline) listening sessions from mobile clients set on the wrong day #2795
  • Scanner issue after renaming/moving files #2686 #2767 by @mikiher in #2773
  • Server crash when scanning bad epub file #2856
  • Server crash when matching an item with cover and cover fails to download #2857
  • Server crash when using a custom metadata provider by @rasmuslos in #2784
  • Server crash when matching a book and the author name ends in a comma #2796
  • "Skip earlier books in Continue Series" library setting returning less than 10 books by @justcallmelarry in #2789
  • Podcast episode audio file meta tag for "subtitle" being used for episode description over "description" meta tag #2843
  • UI/UX: Home page default view always showing horizontal scrollbar
  • UI/UX: Audio player playback icons overlapping on smaller screen #2799
  • UI/UX: Multiple series on book page not showing comma separator by @lkiesow in #2821

Changed

  • ASINs are case insensitive when matching #2849
  • Transcoder falls back to forcing AAC (to handle bad m4b encodes) #2720
  • UI/UX: Updated UI to support RTL languages by @mikiher in #2797
  • UI/UX: Audiobook page shows chapters table above tracks table (matching mobile apps) #2778
  • UI/UX: Listening sessions table & modal shows client name by @rasmuslos in #2805
  • UI/UX: Edit item modal cover tab cleaned up for small screens #2832
  • UI/UX: Show language detail on podcast/book item page #2834
  • UI/UX: "Tags Accessible to User" setting shows tags in alphabetical order #2667
  • UI/UX: Library stats page formats number strings based on locale + cleanup #2861
  • API Update: Removed old/unused "missingParts" and "invalidAudioFiles" from Book object and "invalid" from AudioFile object
  • More strings translated
    • Bengali by @soaibsafi in #2840
    • Simplified Chinese by @springsunx in #2817
    • Italian by @burghy86 in #2777
    • Ukrainian by @cor-bee in #2757
    • Portuguese (Brazil) by @pmangro in #2760 #2802
    • Hebrew by @arcmagedr in #2756

Internal

  • Implementing OpenAPI spec for Author API endpoints by @nichwall in #2803
  • Github workflow for validating i18n files by @nichwall in #2780 #2841
  • Readme includes translations guide by @nichwall in #2787
  • Github workflow fix for unit tests on PRs by @mikiher in #2757
  • Github workflow to trigger Windows tray app releases by @mikiher in #2791
  • Github workflow for CodeQL by @jorgectf in #1888

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.8.1...v2.9.0

v2.8.1

2 months ago

Added

  • Book library setting to skip earlier books in Continue Series home page shelf #2687 by @justcallmelarry in #2737
  • Sorting options to authors page #2547 by @KeyboardHammer in #2580
  • Keyboard navigation for multi-select dropdown inputs #2555 by @mikiher in #2721
  • Book library filters for "Has no ebook" and "Has no supplementary ebook" #1889 by @Teekeks in #2677
  • Abridged checkbox to batch edit page overwrite map details box #2695
  • Traditional Chinese translations by @den13501 in #2732
  • Vietnamese translations (thanks saigonviral in Discord!) by @nichwall @2726
  • Hungarian translations by @megamegax in #2636
  • Estonian translations by @RasmusKoit in #2644

Fixed

  • Applying backups not overwriting an existing sqlite db file and not resetting API cache after applied
  • Web client audio player handling HLS transcodes #2748 #2720
  • Chapters modal not always scrolling to the current chapter
  • Audible match provider incorrect series sequence parsing (now pulls first number) #2710 by @mikiher in #2734
  • Author text input getting clipped in edit book details modal #2700 by @mikiher in #2714
  • Resizing page not updating chapter ticks in audio player #2707
  • Podcast schedule max new episodes unable to set to 0 #2680
  • After cover update, cover appears broken until page is reloaded #2556 #2593 by @mikiher in #2573
  • Logger showing incorrect error source by @lkiesow in #2692
  • File names with URL control characters improperly encoded (specific to XAccel) by @lkiesow in #2691
  • Broken BinaryManager.isBinaryGood test by @mikiher in #2742
  • Server crash when matching a book and store cover with item is enabled (race condition) #2693 by @mikiher in #2724
  • Server crash during quick match (from duplicate authors) #2650 by @mikiher in #2659
  • Server crash on logout with OIDC and logout URL is not set by @Sapd in #2738

Changed

  • Login page includes logo and improved UI #2682 by @mfcar in #2688
  • Custom metadata provider allows for ISBN searching by @kaldigo in #2733
  • Setting Cache-Control for cover image requests (client side cover image caching) by @mikiher in #2694
  • Increased OIDC request timeouts to 10s (from 3.5s) #2669
  • Login page username/password leading and trailing whitespace #2628
  • Binary manager for windows installer set to use ffmpeg/ffprobe v5.1 (fixes #2689)
  • Login form inputs include "name" attributes to assist password managers by @Schiriki123 in #2740
  • Included robots.txt disallow all and noindex meta tag
  • SKIP_BINARIES_CHECK env variable is supported (fixes #2741)
  • Included Unit tests github workflow by @mikiher in #2745
  • More strings translated
    • Traditional Chinese by @den13501 in #2732
    • Vietnamese by @nichwall in #2726
    • Hungarian by @megamegax in #2636
    • Estonian by @RasmusKoit in #2644
    • Italian by @burghy86 in #2629
    • Portuguese (Brazil) by @pmangro in #2634 #2639 #2676 #2699
    • German by @lonezel @Teekeks @JBlond in #2635 #2641 #2657
    • Spanish by @DownloadableFox in #2638
    • French by @Machou in #2673

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.8.0...v2.8.1

v2.8.0

2 months ago

Note: ARMv7 Docker images are no longer supported (drops support for all 32bit OS docker installs)

Added

  • Allow adding a custom message on login page (from auth config page) #2552
  • Ability to add custom metadata providers (from item metadata utils) by @Dewyer @FlyinPancake in #2486
  • Crash logs are stored in /metadata/logs/crash_logs.txt (fixes #706)
  • Portuguese (Brazil) translations by @pmangro in #2620
  • Podcast library setting to set iTunes search region (currently only US and China) by @liaochuan in #2491
  • OpenID: Edit user modal shows button to unlink user from OpenID #2587

Fixed

  • Rich text editor labels not being translated
  • Raw cover art shown on lockscreen by @ipcintron in #2567
  • Return PNG from audiobookcovers.com search by @Weldawadyathink in #2570
  • Mobile offline listening sessions storing incorrect last update timestamp
  • Global search menu width on mobile screen size
  • Audio player buttons to be proper HTML buttons for screen readers #2599
  • Trim whitespace for ASIN chapter lookups #2605
  • Year in Review page crashes server (when item has a null genre) #2623
  • Logging out and logging into new user not reconnecting socket
  • Library filter data cache not clearing on updates #2527 #2597

Changed

  • Dropped support for ARMv7 Docker images
  • Updated to Node 20
  • Author matching uses closest levenshtein distance match #2624
  • Library item description and author description are clamped to 4 lines with read more button #2614
  • OpenID: Implement Logout + Fix state + Fix URL Regex by @Sapd in #2553
  • Binary manager for windows install checks for ffmpeg v5.1 and v6.x by @mikiher in #2554
  • Podcast episode downloads show progress in debug logs and show full ffmpeg debug log output on failures
  • PWA iOS app icon to match icon used in the iOS app #2520 by @ipcintron in #2617
  • PWA theme color matches appbar color #2618 by @ipcintron in #2619
  • Audiobook RSS feeds only use chapter titles for episodes if all audio tracks match chapter times #2543
  • Readme update with HAProxy example by @Torstein-Eide in #2510
  • More strings translated
    • German by @bloodscript @Teekeks in #2559 #2564
    • Portuguese (Brazil) by @pmangro in #2620

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.7.2...v2.8.0

v2.7.2

4 months ago

Added

  • Scanner parses epub metadata and extracts cover art #1479
  • Scanner parses comic metadata (limited) and extracts cover art #1837
  • Playlist button to podcast episodes on latest page #2455
  • Binary manager for Windows install by @mikiher in #2391

Fixed

  • Library folder browser for Debian installs
  • Refresh podcast episode table when new episodes are downloaded
  • Improve performance for podcast rss feed episodes modal with large rss feeds
  • Export OPML not escaping characters #2487
  • Parse series sequence from OPF in specific cases #2505
  • Specific podcast rss feed cannot be fetched due to Accept header #2446
  • Comic reader page menu highlighting the wrong current page

Changed

  • Media session uses raw cover art #2514
  • Library item & podcast episode cards with truncated titles show tooltip on hover #2451
  • Add tini as PID 1 handler in container image by @FreedomBen in #2488
  • Update logger to replace dev logs with debug by @FreedomBen in #2506
  • Hide audiobook management tools for Windows installs
  • More strings translated
    • French by @Machou in #2485 #2503

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.7.1...v2.7.2

v2.7.1

4 months ago

Fixed

  • Podcast performance server side: Slow queries for podcasts with many episodes #2073
  • Podcast performance client side: Slow/unusable podcast page when podcast has many episodes (added lazy loading) #1549
  • Playlist navigation button not showing on mobile screens #2469
  • Server crash when file is added and removed quickly #2332 by @thevoltagesource in #2465
  • Merging chapters from multiple audio files when audio files have the same chapter titles #2461
  • Unable to fetch RSS feed for specific podcasts (updated request header) #2446
  • Book scanner not updating sequence if only the sequence was changed
  • Podcast episode showing 0 seconds remaining when toggling finished

Changed

  • OPF file supports multiple series by @jedrus2000 in #2444
  • Add a SIGINT handler for proper server shutdown by @mikiher in #2445 #2454
  • CORS for /cover API endpoint for use in canvas in the mobile apps

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.7.0...v2.7.1

v2.7.0

4 months ago

Note: OpenID Connect Authentication requires mobile app v0.9.70-beta or up

Added

  • Year in review stats images to user stats page #2373
  • Ability to fetch book data in uploader by @kieraneglin in #2333
  • Zoom controls to comic reader by @pablojimenezmateo in #2431

Fixed

Changed

  • Listening sessions table allows multi-select to delete, sorting with column headers & changing rows per page
  • Initial startup database cleanup includes removing playback sessions that have a listening time of 3s or less
  • Sort audible match results by closest duration #2238 and other match improvements by @mikiher in #2400
  • Audible series sequences that include spaces will only take the first part of the string (and commas removed) #2380
  • SSO/OpenID: Use a mobile-redirect route (Fixes #2379 and #2381) by @Sapd in #2386
  • SSO/OpenID: Provide error messages to logs by @Sapd in #2365
  • Sample Docker Compose file comments by @nichwall in #2415
  • Readme update for synology reverse proxy by @treyg in #2420
  • More strings translated
    • Gujarati by @Dr-Blank in #2293
    • German by @JBlond in #2397 #2413 #2442
    • Russian by @Nab0y in #2411
    • Simplified Chinese by @springsunx in #2417

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.6.0...v2.7.0

v2.6.0

5 months ago

Added

  • SSO via OpenID Connect authentication #998 by @lukeIam and @Sapd in #1636 Guide
  • Simple API caching for /libraries* requests by @mikiher in #2343
  • NFO files as book metadata source by @mikiher in #2305
  • Czech translations
  • Swedish translations

Fixed

  • Server crash when matching specific characters in author names #2265
  • Podcast episode cron not adding/removing library items #2277
  • Watcher fails to add single audio file to library if library is audiobooks-only #2282 by @mikiher in #2283

Changed

  • Library scanner settings metadata precedence reversed in the UI to be more intuitive (1 is highest priority)
  • Podcast "Search" page renamed to "Add" #2301
  • "Delete from file system" checkbox in delete modal persists locally #1689
  • "Full Path" option for tables persists locally #2285
  • Generated RSS feed updates to support certain podcast apps by @clement-dufour in #2272
  • Collection table rows hide duration if 0 #2278 by @brianjaustin in #2291
  • Log lines include milliseconds by @lkiesow in #2325
  • Unit testing implemented by @mikiher in #2300
  • Multiple items added socket event inserts items to recently added shelf on the home page instead of refreshing all shelves #2323
  • Env flag to enable dev logs in production by @lkiesow in #2326
  • More strings translated
    • Czech by @radekmuhlfeit2 @Plazec in #2274 #2276
    • Swedish by @ScuttleSE in #2288
    • Italian by @burghy86 in #2299
    • German by @JBlond in #2336 #2351

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.5.0...v2.6.0

v2.5.0

6 months ago

Added

  • Scanner settings tab in the edit library modal to manage the scanners metadata precedence (See scanner guide)
  • Tools tab in the edit library modal to batch remove all metadata.json or metadata.abs files in library folders
  • Support for pasting semicolon separated strings into multi-select inputs #1198
  • Scanner recognizes ASIN when inside brackets. e.g. [B002UZJGYY] #1852
  • Epub ereader setting to change font family (serif/sans-serif) by @MxMarx in #2253
  • Epub ereader search for text within epubs in the TOC sidemenu #2045 by @MxMarx in #2255
  • Ereader device setting to allow users to send ebooks to device #1982
  • API endpoint to post file changes to the watcher #2204 by @mikiher in #2249
  • API endpoints for uploading and removing an author image
  • Danish translations

Fixed

  • Vulnerability report https://github.com/advplyr/audiobookshelf/security/advisories/GHSA-mgj7-rfx8-vhpr
  • Server crash when scanner find covers fails #2164
  • Server crash when searching for a cover without an author #2174
  • Server crash when downloading book that is a file in the folder root directory #2199
  • Server crash when removing the last item of a playlist #2211
  • Server crash when searching for episodes of certain RSS feeds #1996
  • Old streams stored in /metadata/streams not being cleaned up on server initialization #2209
  • Local playback sessions from mobile not showing in stats chart #2168
  • Global search not working with non-ASCII characters due to capitalization #2187
  • Scanner not detecting file renames #1161
  • Line breaks not showing for author description #2218
  • Patreon RSS feeds not showing already downloaded episodes #2207
  • Book scanner not setting item as missing when it has no media files #2226
  • Different aspect ratio for author images being used on authors landing page (now using 1:1.25) #2227
  • Version in bottom left side rail overlapping navigation buttons #2195
  • Watcher selecting incorrect folder due to incorrect subpath check #2244 by @mikiher in #2245
  • Authors still being shown to users when they have no access to the books by that author #2250
  • Watcher triggering scan before file is fully copied to folder #1362
  • Opening an RSS feed for a collection or series doesn't respect prevent indexing flag #2047

Changed

  • Removed support for metadata.abs files (upgrade creates metadata.json files if they don't exist)
  • Clicking the cover image on the library item page or the audio player opens shows an enlarged view #1853 by @MxMarx in #2246
  • Replaced cover path inputs in the library item and author modal with an input to download image via URL from the web
  • Removed server settings for "Prefer OPF metadata", "Prefer audio metadata" and "Prefer overdrive media markers"
  • Improved fuzzy matching by @mikiher in #2186
  • Book match list items shows a comparison of the current books duration #1803
  • HLS transcoder always falls back to forcing AAC for AAC supported files #2157 by @Alistair1231 in #2171
  • Library scan toast notification replaced with task shown in the notification widget #1279
  • Watcher scans are shown in the notification widget
  • Library item page description width matches the width of the library file tables
  • Scan button is displayed on the libraries table
  • Help icons added in admin config pages to link to docs or guides
  • More strings translated
    • Spanish by @MarshDeer in #2175
    • Simplified Chinese by @springsunx in #2215
    • German by @JBlond @Hallo951 in #2229 #2233

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.4.4...v2.5.0

v2.4.4

7 months ago

Added

  • Fuzzy matching for metadata providers #396 by @mikiher in #2099
  • Norwegian translations by @husjon in #2138
  • Delete author button shown on edit author modal #2124

Fixed

  • (improved) Home page & library item page loading speeds #2073
  • Scanner overwriting user edited details when metadata file is not stored with media #2155
  • Books with ebook not setting the ebookType correctly (causing mobile pages not to load) #2126
  • Book rescan extracting cover from audio file again #2110
  • Open RSS feeds not updating with new feed episodes #2139
  • Search metadata providers incorrectly encoding inputs #2128 by @mikiher in #2129
  • Scanner never finishing when running a quick match on a library with no items #2118
  • Collapse sub-series showing JSON object on hover instead of series name #2140
  • Listening sessions config page showing wrong user on open sessions when filtering by user #2136
  • Scanned in OPF files creating empty tags and genres #2142
  • Adding a new podcast with auto download enabled not setting the schedule correctly #2160
  • Newest episodes home page shelf not showing episodes #2119
  • Recent series home page shelf shows single book series when "hide single book series" library setting is enabled #2134
  • Downloading podcast episodes creating duplicates #2122
  • Bad backup file causing other backup files to not be displayed on backup page #1961
  • x-accel: encode all paths to URIs by @itzexor in #2120

Changed

  • Backup page shows location path & downloads show filename #2043 by @mfcar in #2133
  • Authors page shows authors with no books (previously filtered out)
  • Library folder path in library edit modal is editable until submit #2150
  • Add ability to enable DEV logs of Sqlite queries by @selfhost-alt in #2102
  • More strings translated
    • Norwegian by @husjon in #2138
    • German by @Hallo951 @JBlond in #2121 #2146
    • Dutch by @92Kev in #2162

New Contributors

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.4.3...v2.4.4

v2.4.3

7 months ago

Fixed

  • Duplicate authors and series being created #2106
  • Scanner purge old cover image cache when new cover is found
  • Slow queries on server init that check for invalid db records by @selfhost-alt in #2103
  • Server crash when parsing full names by @selfhost-alt in #2101
  • Server crash when removing an item from a playlist #2115

Full Changelog: https://github.com/advplyr/audiobookshelf/compare/v2.4.2...v2.4.3