JSON files give you texts to build an app around
Chinese Poetry gives you classical Chinese texts in JSON, including Tang and Song poetry, Song ci, and collections such as the Analects. Its main README and collection guides are in Chinese, and the repository lists no English README. A developer who reads Chinese can use the files for a reading app or search index without first scraping a website. English-language explanations and translations would be your own addition.
Our checkout occupied 371.7 MB across 2,285 files, despite containing only about 1,178 lines of source. That balance tells you what you're adopting: a substantial collection of text with some supporting code. GitHub labels it JavaScript, while our harness classified the run as Python. The Tang and Song guide shows records containing author, title, paragraphs, and note. Those fields are easy to inspect, but a readable record doesn't establish that its wording matches the edition your readers expect.
What happened when we ran it
Our sandbox installed commit b8594f8 in 7 seconds, adding 38 packages and using 42 MB on disk. The build step succeeded with a reported duration of 0 seconds. Tests were skipped because the harness found no test script or target. That is a successful setup path with no executed suite behind it, not evidence that every JSON record is valid or every poem is accurate.
We measured it on October 10, 2026, in an unprivileged Debian container with 3 CPUs and 8 GB of RAM, using ghcr.io/astral-sh/uv:python3.12-bookworm. The sandbox had no secrets. Pip-audit reported 2 known vulnerabilities. The supplied results don't name the affected packages or their severity, so they cannot support a claim about a specific exploit or about the safety of an internet-facing service.
The scan found 1 CI workflow file, no Dockerfile, and no tests directory. The measured build completion should not be read as a finished search server, a database import, or a checked literary edition. Those would require separate work and separate evidence.
The collection guide warns about textual errors
The Tang and Song collection guide says the texts are stored in traditional Chinese and still contain many errors needing correction. It also warns that character conversion can produce wording that doesn't fit its context. For a learner-facing app, automatically converting the whole corpus to simplified Chinese needs more care than turning on a display setting. Preserve the original text so a correction can be traced back.
A 371.7 MB checkout can be copied easily enough, but editorial confidence doesn't arrive with the files. The main README says the data came from the internet and that the original poetry collection process was not recorded. It links a separate account of collecting Song ci. If your use requires a documented source edition for each passage, that provenance gap is a reason to choose a different corpus or curate a smaller selection yourself.
Issue 424, opened in September 2026, questions the wording of Li Bai's Quiet Night Thought in poet.tang.8000.json. An open June correction PR addresses the same poem. These are reports about the actual collection, rather than a similarly named downstream app. They show why an educator should check familiar poems against a chosen edition. We haven't resolved that textual dispute, and a JSON parser cannot resolve it either.
The loader's configuration reveals different text fields
The repository's loader configuration selects paragraphs for several collections, content for others, and para for Nalan Xingde. It also excludes author files and other material when reading a directory. A single importer that assumes every JSON file holds poem records will miss these distinctions. Start with one collection and preserve its title, author, and source path alongside the text.
Across 2,285 files, those configuration choices deserve inspection before a bulk import. PlainDataLoader joins configured text fields into a list, using paths relative to its configured root. That may suit text experiments, while a reading app needs record boundaries and metadata. The configuration comments also identify material that doesn't fit the loader's expected structure. Extending your importer collection by collection is safer than assuming the helper covers every folder identically.
A JSON checker exists, but our harness skipped tests
The repository contains test_poetry.py, which recursively parses JSON under selected collection directories. Our run still found no runnable test target and skipped the test step. Both facts can be true. The scan's absence of a tests directory does not mean there is no checking code, and we aren't claiming this script passed. Its visible checks concern parseable JSON, which is a narrower question than correct authorship or wording.
The 2 known vulnerabilities from pip-audit are another separate question. A product that uses only copied JSON has a different runtime from one that deploys the repository's Python environment, but our results do not establish either product's exposure. Inspect the actual advisory details before adopting that environment. Reading static text files does not require an external API key, and a search database or web service would be something you add.
June code activity and September reports need separate judgments
GitHub records the last push on June 17, 2026, with 53,638 stars and 137 open issues and PRs combined in the October 10 snapshot. A loader fix closed on June 17, and the September poem report remains open. The latest-release endpoint returned no release. Those facts describe slower code activity with continuing user reports, not proof of abandonment. They also don't tell you when a particular disputed poem will be corrected.
Choose the raw files when owning the importer and the editorial decisions is acceptable. palemoky's API adds REST and GraphQL access, while Harold-y's database web app supplies a MySQL-based collection and reading interface. Both derive from this corpus family, so changing the delivery format doesn't settle provenance. Before putting a poem in a lesson, record which edition you checked it against.

