Skip to content

EdwardPrado/marian-extension

 
 

Repository files navigation

Marian the Librarian icon

Marian the Librarian

Latest Release Install in Chrome Install in Firefox Contributors

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.

Supported Sites

Book pages on these sites are currently supported by Marian. To request support for another site, create an issue or submit a pull request.

List of supported sites

Retailers

  • AbeBooks (ZVAB, IberLibro)
  • Amazon
  • Audible
  • Barnes & Noble
  • Books-A-Million
  • Bookshop.org
  • IndieBookstores.ca
  • Libro.fm
  • Rakuten Kobo

Online Trackers & Social

  • Anilist
  • Anime-Planet
  • Goodreads
  • Kitsu
  • LibraryThing
  • MangaDex
  • MangaUpdates
  • MyAnimeList
  • Novel Updates
  • Romance.io
  • The StoryGraph

Libraries & Borrowing

  • German National Library
  • Libby
  • OverDrive
  • WorldCat

Reference & Metadata

  • ISBN Search
  • ISBN.de
  • ISBNdb
  • The Internet Speculative Fiction Database (ISFDB)
  • TeachingBooks
  • inventaire

Publishers

  • Penguin Random House
  • Tor Publishing Group

Digital Archives & Search Engines

  • Classic Google Books
  • Google Books
  • Open Library

Self Publishing

  • Archive of Our Own (AO3)
  • FanFiction.net
  • Royal Road
  • Scribble Hub
  • Spacebattles
  • Wattpad

Creating an extractor

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

Building from Source

This project supports building browser extension packages for both Chrome (Manifest V3) and Firefox (Manifest V2).

Prerequisites

  • Node.js (LTS recommended)
  • npm (comes with Node.js)

To verify installation:

node -v
npm -v

Install Dependencies

From the root directory:

npm install

Note: If there are no dependencies listed in package.json, this step is optional.


Build the Extension

To build the extension for both browsers:

npm install
npm run build

This script:

  • Copies all files from app/ into the distro/ directory

  • Applies the correct manifest version for each browser:

    • Chrome → distro/chrome/manifest.json (uses manifest.base.json and manifest.chrome.json)
    • Firefox → distro/firefox/manifest.json (uses manifest.base.json and manifest.firefox.json)

Load the Extension

Option 1: From Source

⚠️ 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:debugging will be deactivated when the browser is closed. To persist an extension in Firefox, it must be signed and installed as a .xpi file which is not yet available.

Chrome:

  1. Navigate to chrome://extensions
  2. Enable Developer mode
  3. Click Load unpacked
  4. Select the distro/chrome/ folder

Firefox:

  1. Navigate to about:debugging
  2. Click This Firefox
  3. Click Load Temporary Add-on
  4. Select the distro/firefox/manifest.json file

Option 2: From Prebuilt ZIP (Recommended for Testing)

You can also download prebuilt versions from the latest GitHub Release. Look for files named:

  • <repo>-chrome.<version>.zip
  • <repo>-firefox.<version>.zip

Steps:

  1. Download and extract the .zip file for your browser.
  2. Follow the same steps as Option 1, but select the extracted folder instead of distro/.

Option 3: From GitHub Actions (Latest Development Builds)

To test the absolute latest changes before they are released:

  1. Go to the Actions tab in the repository.
  2. Click on the latest workflow run (usually named "Build and Release").
  3. Scroll down to the Artifacts section.
  4. Download the artifact starting with marian-extension-chrome.(VERSION) or marian-extension-firefox.(VERSION).
  5. 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

Updating the groups json file

In the event where a new group is registered, the groups.json file can be updating by running

npm run update-groups

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 96.3%
  • HTML 3.7%