Skip to content

Project Gutenberg · Catalogue snapshot · 28 October 2026

Project Gutenberg by language and format: what 78,446 text records list

In Project Gutenberg’s bulk catalogue snapshot of 28 October 2026, 78,032 of 78,446 entries typed only as Text listed HTML, EPUB and plain text together: 99.47%. PDF was listed for 1,285 entries, or 1.64%. These figures describe recorded reading routes, not tested files or unique works. Listings can change as records are enriched, especially after a new release; use the dated results as a guide to what to check next, not a permanent availability guarantee.

Published
Share
Share this page
EmailCite & reuse this study
Key findings as text
Reusable imagesProject Gutenberg by language and format: what 78,446 text records list — 99.47%: Listed HTML, EPUB and plain text together. 78,032 of 78,446 Text-only catalogue IDs in the 28 October 2026 snapshot; listed metadata, not tested downloads.Download sharing image (JPG) ↓

Key findings

99.47%

Listed HTML, EPUB and plain text together

78,032 of 78,446 Text-only catalogue IDs in the 28 October 2026 snapshot; listed metadata, not tested downloads.

1.64%

Listed an existing PDF route

1,285 of the same 78,446 Text-only IDs on 28 October 2026. Browser printing and format conversion were not tested.

68

Distinct language tags in the Text-only subset

78,446 IDs carried 78,670 overlapping language memberships; 218 IDs were multilingual. Snapshot: 28 October 2026.

79,697

Distinct IDs in the complete source archive

The 28 October 2026 archive contained 78,446 Text-only IDs and 1,251 excluded non-text IDs. These are catalogue entries, not distinct literary works.

Start with the reading route you need

A large ebook catalogue can answer several different questions. How many entries carry a particular language tag? How many list a format your reading software accepts? Does the file actually open, contain the edition you want and work with your access needs? This study answers the first two questions using Project Gutenberg’s published metadata. It leaves the third for a separate check of the individual item. Keeping these questions apart makes the numbers more useful for readers, librarians and people building catalogues.

The central result is straightforward: almost all included catalogue entries listed three familiar routes together. HTML or XHTML appeared for 78,300 entries, EPUB for 78,085, and plain text for 78,263, out of 78,446 Text-only IDs. The overlap of those three groups contained 78,032 IDs. A reader who can consider any of these formats therefore has a different starting point from someone who specifically needs an existing PDF listing, which appeared for 1,285 IDs.

These are observations about one nonprofit’s catalogue. Project Gutenberg is the source of the metadata; this is an independent analysis by Alisson Bento. It is not a government dataset, a survey of reading behaviour or a catalogue of every free ebook. The practical purpose is to help you interpret a search result or a reference list accurately before deciding which item to inspect.

Why the format percentages do not add to 100%

A catalogue entry may list several files. The same ID can therefore appear in the HTML, EPUB, plain-text and PDF totals. The format table counts an ID once within each category, regardless of how many matching files it lists. Its rows are overlapping sets, rather than slices of a single pie. Adding their percentages would count the same entries repeatedly and would not produce a meaningful total.

The all-three measure is more demanding than the presence of any one format. It requires an HTML or XHTML listing, an EPUB listing and a plain-text listing under the same catalogue ID. There were 414 Text-only IDs without that complete combination in the frozen archive. That does not mean 414 unreadable books: an entry may list one or two of these categories, another kind of file, or metadata that changes after the snapshot.

Plain text also has a narrower companion measure. A total of 78,154 entries, or 99.63% of the 78,446 included IDs, explicitly listed plain text with a UTF-8 character-set parameter. The broader plain-text count includes any recorded encoding. The difference concerns what the MIME metadata explicitly says; it is not a count of files with corrupted characters, and the audit did not open files to inspect their encoding.

Language counts and format coverage answer different questions

The Text-only subset carried 68 distinct language tags. Every included ID had at least one tag, and 218 IDs carried more than one. Counting each ID once for every distinct tag it bears produced 78,670 language memberships. This is why the language rows cannot be added to recover the total of 78,446 IDs. A multilingual item can legitimately appear in several rows without being a duplicated catalogue record.

The six-language reference makes the distinction between size and coverage concrete. The English tag, en, appeared on 62,102 included IDs, of which 61,788 listed all three formats. The French tag, fr, appeared on 4,252 IDs, with 4,209 listing all three. The German figures were 2,455 and 2,419; the Italian figures 1,111 and 1,109; the Spanish figures 914 and 914; and the Portuguese figures 656 and 655. Each percentage uses its own tag’s count as the denominator.

Spanish’s 100.00% result describes all 914 Spanish-tagged IDs meeting the metadata rule in this snapshot. It does not establish that every linked file works, that the catalogue covers all Spanish literature, or that its editions have been assessed for accessibility. Nor does the lower German proportion prove a lasting disadvantage. Counts measure the size of recorded tag groups; percentages measure listed coverage within them. Neither is a measure of reader demand, quality or national publishing output.

How to read the complete 68-language table

The full language table retains every observed tag, including small groups. Begin with the Text-only IDs column: this is the denominator for that row. The next columns give counts with listed HTML, EPUB and plain text, followed by the count and percentage listing all three together. The PDF column is a separate listed-format count. The downloadable CSV retains the additional UTF-8 measure and percentages at four decimal places; the page rounds percentages to two.

Small denominators deserve particular care. A difference of one or two entries can move a percentage sharply when a tag appears on only a few IDs. For example, the Irish tag ga appeared on seven included IDs, five of which listed all three formats: 71.43%. This is an exact description of those seven records. It is not a stable estimate of Irish-language ebook availability beyond the catalogue, and it does not identify why two records lacked the complete combination.

Raw language codes remain visible so readers can join the results to the source without guessing which translated label was used. The tags describe catalogue metadata, not author nationality, reader location or the language of every passage. Studying a text’s principal language, translation direction or country of origin would require other fields and separate validation. The full table is useful precisely because its narrow unit and denominator stay visible.

Three ways to use the results

For a reader choosing a title, use the results to set expectations about possible routes, then inspect the current catalogue record for the specific ID. Check the edition or volume as well as the format label. If a PDF listing is essential, search for that requirement explicitly rather than assuming that a broadly available text also has a PDF. This audit did not test printing an HTML page, converting an EPUB or opening any ebook file, so those possibilities are outside its measurements.

For a librarian preparing a reading list, preserve the source ID alongside the title and language label. Record the date on which you checked a particular link and distinguish a catalogue listing from a locally verified resource. If the intended readers depend on assistive technology, a MIME label is only a starting point: consult Project Gutenberg’s own accessibility documentation and assess the chosen item against the actual requirement. The aggregate percentages cannot replace that item-level work.

For a developer building a metadata search or reference page, keep entry counts separate from file counts and make overlapping language memberships explicit. An ID with three matching files should not become three books. A multilingual ID should remain one catalogue record even when it appears in several language filters. Store the snapshot date with imported fields, and label an unobserved format as not listed in that snapshot. This wording leaves room for later enrichment and avoids turning metadata absence into a claim of download failure.

A recent-release pattern that needs its date attached

An exploratory check after the primary calculation split Text-only IDs by Project Gutenberg release date. Among 78,059 entries released before 1 September 2026, 77,856 listed all three formats, or 99.74%. Among 387 released from 1 September through 28 October 2026, 176 did so, or 45.48%. The latter group accounted for 211 of the 361 included IDs without an observed EPUB MIME listing. The chart shows a real pattern in the frozen metadata, but the interpretation must remain narrow.

Project Gutenberg’s Bibliographic Record documentation explains that records can begin with minimal metadata and be enriched after release; generated formats and catalogue fields can change. That makes recency a useful diagnostic to inspect. It does not establish the cause of this particular pattern, prove that ebook files were absent or show a permanent service problem. No follow-up download test or later snapshot is part of these figures.

The cutoff was chosen during exploration after the main table was calculated. It was not a preregistered hypothesis, and it should not be presented as one. Gutenberg release dates are also different from the original publication dates of printed works. Anyone quoting the recent-release comparison should retain both the 28 October 2026 observation date and this exploratory status. A fresh catalogue check is needed before using the comparison to describe current listings.

Why the study counts catalogue IDs

The complete archive contained 79,697 distinct IDs with no repeated ID records or parse failures in the audit. The inclusion rule retained an ID only when its complete set of type values was exactly Text. It excluded 1,251 non-text entries: 1,114 Sound, 89 Dataset, 33 Image, eight MovingImage, four Collection and three StillImage. This keeps the denominator consistent with the question about text reading routes, rather than treating audio and image entries as equivalent text ebooks.

An ID is still not the same thing as a unique literary work. Separate volumes, editions, serial issues and alternative versions can have separate records. The audit retained them because collapsing them would require a defensible work-identification method. A diagnostic based on normalized title, creator and language found 400 candidate matching groups containing 902 entries, but these were not confirmed duplicate works. Some missing-title labels also matched, making automatic deduplication especially unsuitable.

One included Text record had an empty title, and 130 included records listed none of the three principal MIME categories. They remained in the declared denominator. Removing inconvenient records after seeing the results would make the coverage percentages look cleaner without answering the stated question. The analysis instead reports the source-based population and its imperfections, so another researcher can reproduce the same decision.

What this snapshot adds to earlier Gutenberg research

Gutenberg’s language distribution and metadata have been studied before. Gerlach and Font-Clos’s 2020 Standardized Project Gutenberg Corpus characterizes texts and languages for statistical analysis. Egloff, Adamou and Picca’s 2020 study of ontology-based access examines Gutenberg RDF and its metadata structure. The CORGIS Classics teaching dataset exposes format information too. These precedents are part of the context for this study, not discoveries attributable to this page.

Timm’s Gutenberg Atlas, version 1.0.0 published on 24 October 2026, focuses on publication-year and author metadata for English-language Gutenberg books. Its scope differs from this cross-language matrix of listed formats. The contribution here is a dated, reproducible explanation for readers: explicit type exclusions, consistent MIME rules, all 68 language tags, exact denominators and a clearly separated recency check. It is not a claim to be the first Gutenberg catalogue analysis or a substitute for those research resources.

The three timestamps and the reproduction trail

The source was the official bulk RDF archive linked from Project Gutenberg’s Offline Catalogs and Feeds page. Its HTTP Last-Modified value was 28 October 2026 at 14:35:54 UTC. Retrieval completed that day at 21:44:48.970368 UTC, and the recorded analysis timestamp was 21:47:05.820155 UTC. These timestamps identify different events. The article’s publication date is separate again and should never be inferred from the age of an ebook or the archive’s modification time.

The frozen archive contained 126,835,043 bytes. Its SHA-256 fingerprint is c5ee946cea46fb32ffb2d55af670384064ccd818ab59d900c362a63b6bb29a65. A fingerprint lets a reproducer check that the input bytes match the analysed snapshot. Downloading a later archive from the same address may produce different records and totals, which would be a new observation rather than a failed replication of these frozen results.

The public downloads provide aggregate CSV tables, the result JSON, the methodology, the source manifest and reproduction scripts. Copy the scripts into a separate working folder before running them because they write their derived outputs there. Reproduction requires the matching frozen archive; the raw archive and ebook texts are not bundled with this article. The source manifest records the input identity, while the methodology explains the inclusion and MIME rules in a form that can be checked against the code.

A takeaway you can quote with its limits intact

Alisson Bento’s analysis of Project Gutenberg’s 28 October 2026 bulk RDF snapshot found that 78,032 of 78,446 catalogue IDs typed only as Text, or 99.47%, listed HTML, EPUB and plain text together. The same subset contained 68 overlapping language tags. These are dated metadata listings, not unique-work counts or tests of file functionality, accessibility or ebook rights; listings may change as catalogue records are enriched.

When reusing a table or figure, retain the date, unit and denominator in the caption rather than relying on surrounding prose to supply them. Credit Project Gutenberg for the source metadata and Alisson Bento for the original calculations and explanation. If you change a chart, its labels or its scope, say what changed. A standalone image should remain understandable when separated from this page, especially where overlapping groups or the exploratory release-date comparison are involved.

Listed reading formats

Percentage of 78,446 Text-only IDs listing each format, snapshot 28 October 2026. Categories overlap.

Full chart and source
Listed reading formats. Percentage of 78,446 Text-only IDs listing each format, snapshot 28 October 2026. Categories overlap.

Scroll horizontally to inspect the chart. ↔

Chart and values
  1. HTML or XHTML99.81% (78,300 / 78,446)
  2. EPUB99.54% (78,085 / 78,446)
  3. Plain text, any recorded encoding99.77% (78,263 / 78,446)
  4. PDF1.64% (1,285 / 78,446)
  5. HTML, EPUB and plain text together99.47% (78,032 / 78,446)
MIME metadata presence only; files were not tested. All three is the HTML/EPUB/plain-text intersection.

Download chart (SVG) ↓ · Download chart (PNG) ↓

Six language tags: counts and coverage

Text-only catalogue IDs bearing each tag; multilingual rows overlap. Snapshot 28 October 2026. Bar length represents IDs, while the label gives within-tag all-three coverage.

Full chart and source
Six language tags: counts and coverage. Text-only catalogue IDs bearing each tag; multilingual rows overlap. Snapshot 28 October 2026. Bar length represents IDs, while the label gives within-tag all-three coverage.

Scroll horizontally to inspect the chart. ↔

Chart and values
  1. English (en)62,102 IDs; 61,788 all three (99.49%)
  2. French (fr)4,252 IDs; 4,209 all three (98.99%)
  3. German (de)2,455 IDs; 2,419 all three (98.53%)
  4. Italian (it)1,111 IDs; 1,109 all three (99.82%)
  5. Spanish (es)914 IDs; 914 all three (100.00%)
  6. Portuguese (pt)656 IDs; 655 all three (99.85%)
Counts are not unique works. The all-three percentage means listed HTML, EPUB and plain text, not tested accessibility.

Download chart (SVG) ↓ · Download chart (PNG) ↓

Exploratory release-recency check

All-three MIME-listing percentage by Gutenberg release cohort at 28 October 2026; not original print-publication date.

Full chart and source
Exploratory release-recency check. All-three MIME-listing percentage by Gutenberg release cohort at 28 October 2026; not original print-publication date.

Scroll horizontally to inspect the chart. ↔

Chart and values
  1. Released before 1 September 202699.74% (77,856 / 78,059)
  2. Released 1 September–28 October 202645.48% (176 / 387)
Cutoff selected after primary calculation. Transient metadata listings can change; this does not prove unavailable files, a permanent gap or its cause.

Download chart (SVG) ↓ · Download chart (PNG) ↓

Data & downloads

Scroll horizontally to see all columns.

Listed format totals
Listed formatEntriesShare (%)
HTML or XHTML78,30099.81
EPUB78,08599.54
Plain text, any recorded encoding78,26399.77
Plain text explicitly tagged UTF-878,15499.63
PDF1,2851.64
HTML, EPUB and plain text together78,03299.47

28 October 2026 snapshot. Each denominator is 78,446 Text-only IDs. Format rows overlap and must not be added.

Scroll horizontally to see all columns.

All 68 language tags
Language tagText-only IDsHTML listedEPUB listedPlain text listedAll three listedAll three (%)PDF listed
en62,10262,00061,83561,96061,78899.491,102
fr4,2524,2344,2134,2304,20998.9936
fi3,6893,6803,6803,6893,68099.760
de2,4552,4362,4202,4352,41998.5368
nl1,1201,1201,1141,1201,11499.461
it1,1111,1111,1091,1111,10999.8258
es914914914914914100.009
pt65665665565665599.851
hu655655655655655100.001
zh44344344344244299.773
sv257257257257257100.000
el221221221221221100.006
eo145145145145145100.003
la144144144144144100.002
ca979795979597.940
da8585858585100.000
tl6060606060100.000
pl3131313131100.002
no2323232323100.000
fy2222222222100.000
ja2121212121100.000
af1717171717100.000
cy1515151515100.000
cs1212121212100.001
fur77777100.000
ga7757571.430
is77777100.000
bg66666100.000
enm66666100.000
he66666100.000
te66666100.000
ro55555100.000
ru55555100.001
sl55555100.000
ang44444100.000
gla44444100.001
sr4443375.000
ceb33333100.000
gl33333100.000
grc33333100.000
ilo33333100.000
myn33333100.000
nah33333100.000
nai33333100.000
nav33333100.000
arp22222100.000
brx22222100.000
mi22222100.001
oc22222100.000
ale11111100.000
ar11111100.000
bgs11111100.000
bo11111100.000
br11111100.000
csb11111100.000
et11111100.000
fa11111100.000
hai11111100.000
ia11111100.000
iu11111100.000
kha11111100.000
kld11111100.000
ko11111100.000
nap11111100.000
oji11111100.000
rmq11111100.000
sa11111100.000
sco11111100.000

28 October 2026 snapshot. Each row uses the Text-only IDs bearing that language tag as its denominator. Multilingual IDs appear in several rows; do not sum rows. Listings were not tested.

Scroll horizontally to see all columns.

Six-language reference
Language tagText-only IDsAll three listedAll three (%)
en62,10261,78899.49
pt65665599.85
es914914100.00
fr4,2524,20998.99
it1,1111,10999.82
de2,4552,41998.53

Overlapping language memberships; all-three shares use their own language-tag denominator. Snapshot 28 October 2026.

Scroll horizontally to see all columns.

Exploratory release-date sensitivity
Release cohortText-only IDsAll three listedAll three (%)
Before 1 September 202678,05977,85699.74
1 September–28 October 202638717645.48

Gutenberg release date, not original print-publication year. Cutoff selected after the primary analysis. A one-time metadata pattern, not a cause or permanent condition.

Evidence & method

How we calculated it

  1. The audit enumerated the official bulk RDF archive rather than drawing a sample. It streamed each archive member without extracting archive paths, parsed the RDF and retained the catalogue ebook ID. The 79,697 regular files yielded 79,697 distinct IDs, with no parse errors or repeated IDs. The input archive was frozen and checked against the SHA-256 fingerprint reported above.
  2. An entry was included only when its distinct dcterms:type values formed exactly the set {Text}. The six excluded non-text types remain in the type audit. IDs were not merged by title, author, edition or volume. Language memberships were created once per distinct language tag per included ID, allowing a multilingual ID to appear in multiple rows. No included ID lacked a language tag.
  3. For each listed dcterms:hasFormat/pgterms:file, the audit read the recorded MIME values and removed parameters before matching base types. HTML means text/html or application/xhtml+xml; EPUB means application/epub+zip; plain text means text/plain; and PDF means application/pdf. The separate UTF-8 flag requires a text/plain MIME value explicitly containing charset=utf-8, with case and spaces normalized. An EPUB MIME label does not identify an EPUB version.
  4. Each format flag was counted at most once per ID. The all-three flag required HTML, EPUB and plain text on that same ID. Cover images, ZIP containers and RDF files were not used as proxies for a reading format. The included records had no repeated file URLs and no listed files without MIME values, but these checks did not test the linked files themselves.
  5. Overall percentages divide format counts by 78,446 Text-only IDs. Language percentages divide by the included IDs bearing that tag. Source calculations retain four decimal places; displayed tables use two. The exported counts were reconciled against the JSON results, including every language denominator and the two recency cohorts. The recency cutoff of 1 September 2026 was an exploratory choice after the primary analysis.
  6. This is a complete descriptive enumeration of a selected archive under a stated rule, not a probability sample of world literature. Sampling confidence intervals would not address the main uncertainties here. Catalogue selection, metadata accuracy, changing listings and the difference between IDs and works remain relevant even when every included record has been counted.

What the data cannot tell us

  • Listed formats are not verified reading experiences. No ebook file was opened to test download success, content completeness, edition fidelity, malware, screen-reader behaviour or accessibility conformance. A missing MIME match means that the audit did not observe that format in the frozen metadata; it does not prove that a usable file was unavailable.
  • The source covers one catalogue. It cannot estimate all public-domain books, all free ebooks, the global publishing market, contemporary romance availability or what people read. Text includes material beyond novels. Catalogue IDs may represent multiple editions or volumes of a work, and the study makes no unique-work total.
  • Language tags overlap and do not establish a text’s principal language, an author’s nationality, translation direction or a reader population. Very small denominators can produce large percentage changes. Comparisons between tags are descriptive observations, not causal explanations or stable service-quality rankings.
  • Metadata reuse and ebook rights are separate. Project Gutenberg’s public-domain grant concerns catalogue data, and the inspected RDF sample contains a CC0 licence URI. These facts do not establish the copyright status of each ebook everywhere. Consult the source’s own licence and rights guidance for the particular item and intended use; this audit makes no legal determination.
  • The snapshot records one point in time. Project Gutenberg release dates are not original print-publication dates, and the recent-release comparison was exploratory. Later enrichment can change a listing without changing the underlying work. Preserve the observation date when quoting the results and obtain fresh evidence for claims about current catalogue conditions.

Original sources

  1. Project Gutenberg: Offline Catalogs and Feeds

    Official bulk RDF metadata route; frozen catalogue snapshot 28 October 2026.

    Accessed October 28, 2026

  2. Project Gutenberg: Robot Access

    Catalogue metadata public-domain grant and permitted bulk access route; not ebook text rights.

    Accessed October 28, 2026

  3. Project Gutenberg: Bibliographic Record

    Record fields, release dates and progressive enrichment of metadata and generated formats.

    Accessed October 28, 2026

  4. Project Gutenberg: EPUB3 Accessibility Conformance Report

    Accessibility assessment scope; listed MIME presence is not an accessibility test.

    Accessed October 28, 2026

  5. Project Gutenberg: License

    Ebook rights and trademark guidance; metadata permission does not establish worldwide ebook rights.

    Accessed October 28, 2026

  6. Gerlach and Font-Clos (2020): A Standardized Project Gutenberg Corpus

    Prior characterization of the Gutenberg corpus and its languages; DOI 10.3390/e22010126.

    Accessed October 28, 2026

  7. Egloff, Adamou and Picca (2020): Enabling Ontology-Based Data Access to Project Gutenberg

    Prior analysis of Gutenberg RDF, including language and format metadata.

    Accessed October 28, 2026

  8. Timm (2026): Gutenberg Atlas

    English publication-year and author metadata, version 1.0.0, published 24 October 2026; DOI 10.5281/zenodo.23628668.

    Accessed October 28, 2026

  9. CORGIS Datasets Project: Classics

    Earlier teaching dataset containing catalogue format fields; no first-ever analysis claim.

    Accessed October 28, 2026

  10. Project Gutenberg bulk RDF catalogue

    Source archive SHA-256 c5ee946cea46fb32ffb2d55af670384064ccd818ab59d900c362a63b6bb29a65; last modified 28 October 2026 14:35:54 UTC, retrieved 21:44:48 UTC.

    Accessed October 28, 2026

Cite & reuse this study

Alisson Bento. Project Gutenberg by language and format: what 78,446 text records list. Catalogue snapshot: 28 October 2026. Source: Project Gutenberg bulk RDF catalogue; original analysis by Alisson Bento. https://alissonbento.com/research/project-gutenberg-language-format-coverage/ https://alissonbento.com/research/project-gutenberg-language-format-coverage/

Reuse the original analysis, explanatory text, charts and reproduction code with credit to Alisson Bento, a link to this study, the snapshot date of 28 October 2026 and an indication of changes. Credit Project Gutenberg separately for the source catalogue metadata, which its official policy grants to the public domain and whose inspected RDF sample carries a CC0 licence URI. These metadata permissions do not license ebook texts or establish worldwide ebook copyright status. No Project Gutenberg affiliation or endorsement is implied. See the rights and reuse download for the scope of these terms.

Corrections or editorial questions

Pass it on.

Project Gutenberg by language and format: what 78,446 text records list | Alisson Bentoalissonbento.com

WhatsAppFacebookXTelegramRedditThreadsEmailSMS