Identify missing audiobooks from the series you own
Designed for use with Audible series and AudiobookShelf.
Live demo: completeseries.lily-pad.uk
By default this project uses JavaScript to authenticate with your AudiobookShelf server. To achieve this CORS acceptions must be added in AudiobookShelf. These settings are found in the Audiobook main settings page under "Allowed CORS Origins". You should add the domain you are accessing this project from, e.g. you are accessing it form https://completeseries.lily-pad.uk you should add that URL into the Allow CORS Origins text area. If you are hosting locally e.g. http://localhost:8080, then add that URL instead.
Potential issues with CORS; you can not access an HTTP URL from an HTTPS URL. E.g. you are accessing this app from https://completeseries.lily-pad.uk and trying to connect to your AudiobookShelf server at http://audiobooks.example.com. This will always fail.
If you are unable to connect using JavaScript this project can use PHP to make server-side requests, acting as a proxy to avoid CORS issues β specifically for authenticating with your AudiobookShelf server. This is a manually selectable option to increase security and avoid sending authentication information to a potentially unknown server.
β οΈ A word of caution:
In many PHP-based projects, usernames, passwords, or URLs can be logged, either accidentally or intentionally.
That is not the case here.
This project's PHP scripts do not store or log any credentials or personal data.
You can inspect the full source code in this repository to verify that yourself. If you have any concerns about privacy or want full control, itβs strongly recommended to self-host this project on your own server.
Complete My Series helps you find audiobooks missing from your library's series collections. It integrates with your AudiobookShelf server and uses data from Audible to determine which titles you're missing from each Audible series.
- π Connects securely to your AudiobookShelf server
- π Automatically identifies missing books in Audible series
- π Supports filtering for unique titles only (no duplicates)
- π Hide unwanted books or series to reduce clutter
- π¬ Full metadata view via modals, with direct links to Audible and download options
- π Region support (UK, US, CA, AU, FR, DE, JP, IT, IN, ES, BR)
- π View and download full debug reports to understand exactly why results were filtered
- π₯ Download local cache to avoid being forced to request book metadata again
- Enter your AudiobookShelf credentials
- URL, username, and password are required to retrieve your audiobook and series list.
1(b). Enter your AudiobookShelf credentials - API Key
- If you use API keys instead of username and password enable this option in the advanced section.
-
Choose your settings
- Default behavior: shows only unique, unabridged titles you're missing.
- Uncheck "Ignore matching titles" to allow duplicates with the same name.
-
Choose your library
- If you have more than one library, pick the one(s) to search against and produce results.
- If you have a single library this screen will not be shown and the default library will be used.
-
Discover missing books
- The app fetches your library, finds the first book in each series, then uses that to get the full series metadata from Audible.
- If the series metadata has already been fetched, internal storage is used to improve performance and reduce requests.
-
Review and buy
- Click a series tile to see all missing titles.
- Click a book to see more info and a purchase link on Audible.
-
Hide content you don't want
- Use the ποΈ icon to hide series or books permanently.
- Hidden items are tracked and can be managed from the sidebar (burger menu).
-
Apply new filters
- Change the filters used and get an updated results page without logging in again
- Clear cached contents to force a new request
-
Download results
- Download the results to CSV or Json format
-
Debug Modal
- The Debug Modal provides a detailed, real-time view of your libraryβs data and applied filters, helping with troubleshooting and understanding the appβs logic.
- Group results
- Filter results
- Download results as JSON or CSV
You can host your own version or use the one at https://completeseries.lily-pad.uk. The project is as client-side as possible, however older AudiobookShelf installs and certain setups rely on PHP to stop CORS issues. By default the application tries to use JavaScript but does give the option to fallback to using a PHP proxy if needed. The proxy option is found in the advanced section of the home page.
This repository ships with a full, production-grade toolchain so you can build and host your own optimised bundle instead of running the raw dev files. The build process bundles and minifies JS/CSS, rewrites HTML to use content-hashed assets, and copies required assets/ and optional php/ proxy files into dist/ for zero-config deployment. Linting (ESLint) and formatting (Prettier) configs are included to keep contributions consistent. See the commands below to install, build, preview, and lint your local clone.
npm install # or: npm ci
npm run build
npm run serve:all
npm run watch
npm run lint && npm run lint:fix && npm run format
MIT β Use it, improve it, share it.














