internetarchive / openlibrary

One webpage for every book ever published!
https://openlibrary.org
GNU Affero General Public License v3.0
5.15k stars 1.35k forks source link

Prototype: Enter a URL -> Book Import (Preview) #9405

Open mekarpeles opened 4 months ago

mekarpeles commented 4 months ago

Background

There are many high quality one-off books that are published natively online, in web page format, with chapters, by publishers or authors, that are accessed/read via a remote url. Open Library calls these books web books. Web books are distinct from sites like standardebooks and projectgutenberg where there is a group producing material en masse -- we instead call these Trusted Book Providers (these sources usually have their own ID structure and uniform ways to experience their items). You can read more about web books and trusted book providers here: https://openlibrary.org/trusted-book-providers

Here's an example: https://doc.rust-lang.org/stable/book/

Challenge

This issue asks: How might we make it as easy as possible for a patron on Open Library to enter the url for a "web book" they've found in an input box on the site and have the web book webpage automagically parsed to:

  1. determine if it's a web book
  2. extract key fields, and
  3. render a preview of a/the book to be imported (with author, isbn, cover, etc)?
  4. provide a button to create the edition (or queue in /merges)

Similar to #7653 (Bulk Search tool). Also related to #7077.

Considerations

I imagine the volume for this feature would be low / inexpensive and this is only meant to be an experiment/prototype -- it should require the patron to be logged in and limit number of requests, so if anyone tries to abuse such a system, we'd be able to know and act.

Maybe a codepen.io prototype!

Stakeholders

@cdrini @scottbarnes

Note: Before making a new branch or updating an existing one, please ensure your branch is up to date.

mekarpeles commented 4 months ago

Here's a starting point on what a prototype could look like:

https://codepen.io/mekarpeles/pen/gOJRjKN

mekarpeles commented 4 months ago

We could also try gpt image API