# OYOTTA Public Source Library
- **Built**: 2026-09-13T06:35:21.031228+00:00
- **Source Catalog**: `public-catalog.json` (generated `2026-09-12T22:01:11Z`)
- **Total Records**: 80
- **Records with Text**: 80
- **Texts Output**: 80 files in `texts/`
## Contents
- `source-library.json` — Complete structured dataset with full cleaned text, titles, URLs, and cryptographic hashes.
- `source-library.csv` — Metadata index of all source records without full text bodies.
- `texts/*.txt` — Individual cleaned text files keyed by URL slug for direct inspection and NLP use.
- `checksums.sha256` — SHA-256 verification hashes for all generated files.
## Record Schema
| Field | Type | Description |
|-------|------|-------------|
| `source_url` | string | Original catalog source URL requested |
| `retrieval_time_utc` | string | ISO 8601 UTC timestamp of retrieval |
| `http_status` | integer | HTTP response status code (all retained records are 200 OK) |
| `final_url` | string | Resolved URL after following HTTP and client-side meta-refresh redirects |
| `canonical_url` | string | Target specified in `` |
| `title` | string | Extracted page title |
| `cleaned_text` | string | Extracted article/sample text with navigation, scripts, and boilerplate stripped |
| `raw_html_sha256` | string | SHA-256 hash of the raw HTTP response body |
| `cleaned_text_sha256` | string | SHA-256 hash of the extracted cleaned text |
| `source_limitations` | string | Provenance notes (e.g. `meta_refresh_to:...`, `http_redirect_to:...`, `none`) |
| `content_length` | integer | Byte length of raw HTML response |
## Selection & Provenance Rules
- **Allowed Roots**: Public OYOTTA domains only (`publishing.oyotta.org`, `music.oyottaofficial.com`, `oyottaofficial.com`, `features.oyottaofficial.com`, `art.oyottaofficial.com`, `archive.oyottaofficial.com`, `knowledge.oyottaofficial.com`, `stream.oyotta.org`, `oyotta.org`, `theoyotta.com`).
- **Exclusions Enforced**: `/edition/` and `/editions/` (paid manuscript editions), `/cron/`, `/account/`, `/admin/`, `/private/`, and preview queries are strictly excluded.
- **Client-Side Redirect Resolution**: Pages serving `` client-side redirects are resolved to their target destinations up to 5 hops with domain boundary checks.
- **Deduplication**: Records are deduplicated by canonical URL and cleaned text SHA-256 hash, keeping only substantive content captures.
- **Independence**: Zero external dependencies (standard Python library only). Zero Git operations. Zero invented dates or citations.