Public Domain Ebook RAG Feed
Under maintenancePricing
Pay per usage
Public Domain Ebook RAG Feed
Under maintenancePublic-domain books for RAG/LLM pipelines from Project Gutenberg's catalog and Open Library. Clean chunked text, author death years and an EU life+70 public-domain status per book.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Dennis
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Public-domain books for RAG and LLM pipelines, delivered as clean, chunked text with full metadata. Sources: Project Gutenberg's own catalog feed (78,000+ texts, clean plain text via its mirror network) and Open Library / Internet Archive (public-domain scans with OCR text). Independent tool, not affiliated with these projects. Every book tells you why it is considered public domain, and adds something most catalogs don't: an EU public-domain status (life + 70 years) computed from the death years of the author and translator.
When should an AI agent use this?
- "Build a RAG corpus of 19th-century English novels, split by chapter."
- "Give me public-domain French or German literature that is also free to use in the EU."
- "Find all Project Gutenberg editions of Pinocchio and tell me which translations are still protected in Europe."
- "Fetch clean, boilerplate-free text of Pride and Prejudice in ~2,000-character chunks with overlap."
- "List public-domain books on a subject (e.g. 'Science fiction', 'Philosophy') with author birth/death years."
What this Actor does
- Project Gutenberg, the official way. Uses Gutenberg's daily catalog feed (
pg_catalog.csv) and fetches book text from the official mirror (gutenberg.pglaf.org), following Gutenberg's published robot-access policy. It does not crawl the gutenberg.org website and does not depend on third-party wrappers. The Project Gutenberg license header and footer are stripped, so your chunks contain only the book itself. - Open Library as second source. Covers books that are not on Gutenberg. An Open Library record counts as public domain only when Open Library flags it as a full public scan (
public_scan_bandebook_access: public). Modern in-copyright editions of classic titles are correctly reported as copyrighted. For public-domain scans, the OCR text comes from Internet Archive. - No duplicates across sources. When an Open Library record points to a Gutenberg edition, the cleaner Gutenberg record is used instead.
- EU public-domain status per book.
likely,not-yetorunknown, based on the death year of every author, editor and translator (illustrators are ignored because only the text is delivered). Example: Collodi died in 1890, but Carol Della Chiesa, who translated the Gutenberg English Pinocchio, died in 1972. That translation is public domain in the US and still protected in the EU until 2043. The Actor reports it asnot-yet. - RAG-ready chunking that never drops text.
chaptersplits on real chapter headings (CHAPTER I, Book Two, …).paragraphpacks whole paragraphs up to your size limit.fixeduses a character window. Every chunk respectsmaxChunkChars, and overlap repeats whole trailing paragraphs instead of cutting mid-word. - Fast repeat runs. The 21 MB Gutenberg catalog is cached for 24 hours in a named key-value store, so scheduled runs don't re-download it.
Input
| Field | Type | Description |
|---|---|---|
search | string | Words that must all appear in the title or author names (case-insensitive). |
languages | array | ISO 639-1 codes, e.g. ["en", "fr"]. Empty = all languages. |
subjects | array | Keep books whose subjects or bookshelves contain any of these terms. |
copyright | boolean | false (default) = public domain in the US. Full text is only fetched for public-domain books. |
euPublicDomainOnly | boolean | Keep only books that are likely public domain in the EU too. |
limit | integer | Max books (default 100, 0 = no limit). |
sources | array | gutenberg, openlibrary (default: both). standard-ebooks is currently skipped. |
chunking.enabled | boolean | true (default) = one item per text chunk; false = one metadata item per book. |
chunking.strategy | string | chapter (default), paragraph or fixed. |
chunking.maxChunkChars | integer | Maximum characters per chunk (default 2000). |
chunking.overlapChars | integer | Overlap between adjacent chunks (default 200). |
mode | string | full (default). watchlist is reserved for a future release and currently behaves like full. |
Output
Each dataset item is a text chunk (chunking enabled) or a book (chunking disabled). Every chunk carries the full book metadata, so a RAG pipeline needs no extra lookups.
{"bookId": "gutenberg:1342","source": "gutenberg","title": "Pride and Prejudice","author": "Austen, Jane","contributors": [{ "name": "Austen, Jane", "birthYear": 1775, "deathYear": 1817 }],"subjects": ["England -- Fiction", "Love stories", "Courtship -- Fiction"],"bookshelves": ["Best Books Ever Listings", "Harvard Classics", "Romance"],"languages": ["en"],"issued": "1998-06-01","copyright": false,"copyrightSource": "gutenberg-catalog","publicDomainIn": "US","euPublicDomain": "likely","pageUrl": "https://www.gutenberg.org/ebooks/1342","textUrl": "https://gutenberg.pglaf.org/1/3/4/1342/1342-0.txt","gutenbergIds": ["1342"],"chunkIndex": 3,"totalChunks": 230,"text": "CHAPTER I.\n\nIt is a truth universally acknowledged, that a single man in possession of a good fortune must be in want of a wife. ...","charCount": 3960,"chunkStrategy": "chapter"}
Open Library records use bookId: "openlibrary:<work id>", copyrightSource: "openlibrary-scan-flag", an iaIdentifier, and euPublicDomain: "unknown" (Open Library search results don't include death years).
Use cases
- Build RAG knowledge bases and retrieval benchmarks from classic literature.
- Assemble multilingual, rights-annotated text corpora for LLM fine-tuning or evaluation.
- Filter a corpus down to works that are safe to use in the EU, not just the US.
- Find every edition and translation of a work, with its contributors and their dates.
- Feed literary or educational AI agents with clean, chapter-aware context.
Pricing
Pay per event:
- book-metadata: $0.002 per book delivered as metadata only (chunking disabled, or no public-domain text available).
- book-chunk: $0.0002 per text chunk. A full novel such as Pride and Prejudice is about 230 chunks at 4,000 characters (≈ $0.05) or about 400 chunks at the default 2,000 characters (≈ $0.08).
Use chunking.enabled: false to browse the catalog cheaply first, then fetch text only for the books you need.
Legal
- Public domain is country-specific.
copyright: falsemeans public domain in the United States. Project Gutenberg and Internet Archive both follow US law. TheeuPublicDomainfield applies the EU rule (life + 70 years, counted from 1 January after the year of death) to every author, editor and translator. It isunknownwhenever a death year is missing or uncertain; the Actor never guesses. It is a good-faith indicator, not legal advice. Check the rules of your own country before commercial use. - Sources and terms. The Project Gutenberg catalog and mirror are used as Gutenberg's robot-access policy describes. Project Gutenberg is credited as the source (
source,pageUrl), which Gutenberg's permission page allows, including for commercial use. "Project Gutenberg" is a registered trademark: if you republish texts commercially under that name, Gutenberg's license and royalty terms apply to you. This Actor strips the Gutenberg license header and footer and delivers the underlying public-domain text. This Actor is not affiliated with or endorsed by Project Gutenberg, Open Library or Internet Archive. Open Library and Internet Archive public-domain scans are used as published. - No personal data. The output contains bibliographic data about authors and contributors, most of them long deceased.
FAQ
Why not Gutendex? Gutendex is an unofficial third-party wrapper. It is blocked on many cloud IP ranges, and its text links point at the gutenberg.org website, which Gutenberg asks robots not to crawl. Gutenberg's own catalog feed and mirror give the same books in a more reliable and compliant way.
Why is a book unknown for the EU?
At least one relevant contributor (author, editor or translator) has no death year in the catalog: an anonymous work, an organisation, or a translator listed without dates. To be safe, those books are not marked as EU public domain.
How accurate is chapter detection? It recognises common headings (CHAPTER/Chapter/BOOK/PART/STAVE followed by a number, Roman numeral or word). Texts without such headings (poetry, essays, plays) automatically fall back to paragraph packing. No text is dropped in either case.
Does Open Library text look as clean as Gutenberg text? No. It is OCR of scanned books, so it can include library stamps, publisher pages and occasional OCR errors. That is one reason Gutenberg editions are preferred when both exist.
Is an API key needed? No. All sources are public and keyless.
Related Actors
No other live actor from this account pairs directly.
Zoekwoorden: Project Gutenberg, publiek domein, e-books, RAG, tekstcorpus, LLM-training, auteursrecht EU
Keywords
public domain, project gutenberg, open library, internet archive, ebook, rag, text corpus, llm training, chunking, eu copyright, life plus 70, literature, translations, metadata, plain text
Changelog
0.2.0
- Replaced the unofficial Gutendex API (blocked on cloud IPs) with the official Project Gutenberg catalog feed and mirror, used as Gutenberg's robot policy describes; the license header and footer are now stripped.
- Open Library: public-domain status is now based on its public-scan flag instead of a hardcoded value, OCR text comes from Internet Archive, and records are deduplicated against Gutenberg editions.
- New fields:
contributors(with roles and birth/death years),euPublicDomain,publicDomainIn,copyrightSource,pageUrl,textUrl,gutenbergIds,iaIdentifier;bookIdis now a stable string. - New input
euPublicDomainOnly. - Chunking rewritten:
chapternow splits on real chapter headings, no text is dropped, every chunk respectsmaxChunkChars, andfixedno longer loops when overlap ≥ chunk size. - Pricing:
book-chunkis now charged per chunk at $0.0002, which matches the documentation (0.1.0 charged once per book).
0.1.0
- Initial release: Gutendex fetcher with RAG chunking, multi-language/subject filters, and public-domain filtering.