Marian the Librarian helps Hardcover.app contributors and other online book data enthusiasts view and capture book metadata from popular retail and catalog sites. With a single click, the sidebar pulls down titles, contributors, identifiers, descriptions, cover art, and more so you can manage clean data without endlessly scrolling, copying, and pasting.
Book pages on these sites are currently supported by Marian. To request support for another site, create an issue or submit a pull request.
- AbeBooks (ZVAB, IberLibro)
- Amazon
- Audible
- Barnes & Noble
- Books-A-Million
- Bookshop.org
- German National Library
- Goodreads
- Google Books
- Google Books Classic
- ISBN Search
- ISBN.de
- ISBNdb
- IndieBookstores.ca
- The Internet Speculative Fiction Database (ISFDB)
- Libby
- LibraryThing
- Libro.fm
- Open Library
- OverDrive
- Penguin Random House
- Rakuten Kobo
- Romance.io
- The StoryGraph
- TeachingBooks
- Tor Publishing Group
- WorldCat
- inventaire
Creating an extractor requires adding any URL's the extractor has to support to the manifest.base.json file, and then create an extractor that goes into the extractors folder.
Refer to the extractors README for more info on what a extractor consists of and requires
This project supports building browser extension packages for both Chrome (Manifest V3) and Firefox (Manifest V2).
- Node.js (LTS recommended)
- npm (comes with Node.js)
To verify installation:
node -v
npm -vFrom the root directory:
npm installNote: If there are no dependencies listed in package.json, this step is optional.
To build the extension for both browsers:
npm install
npm run buildThis script:
-
Copies all files from
app/into thedistro/directory -
Applies the correct manifest version for each browser:
- Chrome →
distro/chrome/manifest.json(usesmanifest.base.jsonandmanifest.chrome.json) - Firefox →
distro/firefox/manifest.json(usesmanifest.base.jsonandmanifest.firefox.json)
- Chrome →
⚠️ Extensions loaded this way are not auto-updated. You will need to repeat the steps for future versions.
⚠️ Disclaimer: Unpacked Chrome extensions loaded via "Developer Mode" will remain active across browser restarts, but Chrome may display a warning banner each time. These extensions are intended for development and testing purposes only.In Firefox, temporary add-ons loaded through
about:debuggingwill be deactivated when the browser is closed. To persist an extension in Firefox, it must be signed and installed as a.xpifile which is not yet available.
Chrome:
- Navigate to
chrome://extensions - Enable Developer mode
- Click Load unpacked
- Select the
distro/chrome/folder
Firefox:
- Navigate to
about:debugging - Click This Firefox
- Click Load Temporary Add-on
- Select the
distro/firefox/manifest.jsonfile
You can also download prebuilt versions from the latest GitHub Release. Look for files named:
<repo>-chrome.<version>.zip<repo>-firefox.<version>.zip
Steps:
- Download and extract the
.zipfile for your browser. - Follow the same steps as Option 1, but select the extracted folder instead of
distro/.
To test the absolute latest changes before they are released:
- Go to the Actions tab in the repository.
- Click on the latest workflow run (usually named "Build and Release").
- Scroll down to the Artifacts section.
- Download the artifact starting with
marian-extension-chrome.(VERSION)ormarian-extension-firefox.(VERSION). - To use either:
- Extract the zip file to a folder and follow Option 1, selecting the extracted folder.
- Use directly
- On Chrome: Enable Developer mode and drag the zip file onto the window (if you just enabled it refresh first)
- On Firefox: Go to Debugging Add-ons (about:debugging#/runtime/this-firefox) and click Load Temporary Add-on and select the zip file