Titles & metadata
Canonical, English and Japanese titles plus 135,425 alternative titles; type, status, episode counts, air dates, season, year, scores, popularity, favourites, source material and age rating per work.
A text-only anime corpus engineered for LLM fine-tuning — instruction pairs, grounded QA, RAG chunks, entity links and metadata — exported to JSONL, SQLite, Parquet and CSV with leak-free 90/5/5 splits.
Primary language: en (ja/romaji titles labeled) · License: code & generated text CC-BY-4.0; source metadata and retained prose per source terms
All figures are exact for release 2.1.0 and reflected in every export and the checksum manifest.
| Metric | Value | Artifact |
|---|---|---|
| Unique anime works with a title | 35,766 | anime.jsonl |
| Characters | 283,477 | characters.jsonl |
| Staff / voice-actor rows | 535,642 | staff.jsonl |
| Studios | 2,966 | studios.jsonl |
| Genre / theme vocabulary | 43 / 422 | genres.jsonl · themes.jsonl |
| Episodes linked to anime | 276,763 | episodes.jsonl |
| Relationship edges (sequel/prequel/…) | 39,226 | relationships.jsonl |
| Alternative titles | 135,425 | alt_titles.jsonl |
| Question / answer pairs | 317,907 | qa.jsonl |
| Instruction-tuning examples | 235,395 | instructions.jsonl |
| RAG chunks with source refs | 206,906 | rag_chunks.jsonl |
| Entity-link records | 77,681 | entity_links.jsonl |
| Split train / val / test | 32,189 / 1,788 / 1,789 | split field on every row |
Each anime work expands into many related records, so you can train everything from a chat assistant to a retrieval system from one consistent schema.
Canonical, English and Japanese titles plus 135,425 alternative titles; type, status, episode counts, air dates, season, year, scores, popularity, favourites, source material and age rating per work.
276k episodes with titles and dates; 39,226 relationship edges (sequel, prequel, side story, adaptation) and 23,980 franchise clusters built from them.
283,477 characters and 535,642 staff rows with roles — the raw material for character Q&A, dialogue-style data, and voice-actor modelling.
63,396 description rows: project-written summaries assembled from each work's own structured fields, plus the upstream synopsis where one was published, carrying its source and licence status.
317,907 grounded QA pairs and 235,395 instruction examples — chat-style, ready to shard for SFT, LoRA/QLoRA and DPO.
206,906 semantic chunks, each with source references, sized for embedding models and retrieval-augmented generation.
77,681 records mapping every internal anime ID to external source IDs with method and confidence — for entity linking and KG construction.
Every record carries its source, remote ID, link method, confidence, and quality tier A/B/C so you can filter by how reliable a record is.
The same schema, three releases: full (gated), 30% preview (free, instant), and a public CC0 subset.
| # | Method | What you get | How |
|---|---|---|---|
| 1 | Clone the repository | code, schemas, docs, pipeline | git clone https://github.com/muqeet-1138/anime-text-dataset.git |
| 2 | Full release | 35,766 works, 2.2 GB, gated | request access on Hugging Face |
| 3 | 30% free preview | 10,729 works, 713,238 rows, instant | get free access |
| 4 | Public CC0 subset | 969 works, 8,654 rows, no gate | direct download |
| 5 | Hugging Face datasets | a sharded, streamable Dataset | load_dataset("muqeet-1138/anime-text-dataset-preview", "qa", split="train") |
| 6 | Stream JSONL in Python | train-ready rows, no full load | open("exports/qa.jsonl", encoding="utf-8") |
| 7 | SQLite database | joins and referential queries | sqlite3 exports/anime_dataset.sqlite |
| 8 | Parquet + DuckDB / pandas | fast analytics | duckdb -c "select ..." |
| 9 | CSV + training recipes | spreadsheet view and fine-tuned models | exports/anime.csv + training guide |
Access is not a licence. The preview is free but mixed-rights: 291 of its 10,729 works are cc0_only, and the rest carry upstream obligations. Only the public CC0 subset can be redistributed without further permission.
Factual metadata aggregated from publicly documented catalogues, with per-record provenance and per-source license status.
| Source | Works | Detail | License status |
|---|---|---|---|
| AniList | 22,617 | 22,257 full-depth records | public API; content © rights holders — tier permission_required |
| Kitsu | 22,494 | 276,763 episodes | public API, no redistribution grant — tier permission_required |
| Shikimori | 24,009 | 23,602 detail records | no licence located — tier unresolved |
| Wikidata | 8,561 | items & labels | CC0-1.0 — tier cc0_only |
| ANN encyclopedia | — | 789 sample pages, raw storage only | not linked into exports |
prose_source and prose_license, and exports/attribution.json names each owner and terms URL. Every anime row also carries one license_tier — cc0_only, permission_required or unresolved — set by its strictest contributing metadata or prose source. exports/license_manifest.json states what each tier permits; exports/license_commercial_clear.csv lists the rows with no permission request outstanding. Tiers describe this dataset's provenance obligation, not the copyright status of the underlying works.
Split assignment happens per anime work. Every character, QA pair, chunk, and relationship of a work lands in the same bucket — no information leakage between training and test. Seed 42, auditable via the split field on every exported record.
import json
train = [q for q in
map(json.loads,
open("exports/qa.jsonl",
encoding="utf-8"))
if q["split"] == "train"]These commands work in Windows CMD, PowerShell, Git Bash and WSL. Replace python with python3 where needed.
git clone <repo-url> && cd anime-text-dataset python -m venv .venv .venv\Scripts\activate # Windows # source .venv/bin/activate # Bash/WSL/macOS pip install -r requirements.txt
python -m src.cli validate python -m src.cli checksums
# count rows - PowerShell (Get-Content exports\anime.jsonl | Measure-Object -Line).Lines # count rows - Bash/WSL wc -l exports/anime.jsonl # SQL anime query, no install needed python -c "import sqlite3; con=sqlite3.connect('exports/anime_dataset.sqlite'); [print(r) for r in con.execute('select year,count(*) from anime group by year order by 2 desc limit 5')]"
Open the full command reference for every flag, environment variable, and the exact commands to explore JSONL, SQLite, and Parquet.
A single deterministic driver (python -m src.cli) regenerates every table from source payloads. Each phase is resumable and checkpointed.
From a first LoRA fine-tune to full domain pretraining and retrieval embeddings — with runnable code and honest hardware guidance.
Teach a chat model to answer anime questions with qa.jsonl + instructions.jsonl.
Fine-tune a 7–13B model on a single 8–16GB GPU with peft adapters.
Train the model to prefer grounded answers over hallucinated ones.
Index rag_chunks.jsonl with FAISS and fine-tune readers and embedders.
Make a base model fluent in anime facts using descriptions.jsonl.
Genre classifiers, score rankers, entity linking and relation prediction.
| Format | Files | Best for |
|---|---|---|
| JSONL | 19 tables | streaming into trainers and pipelines |
| SQLite | anime_dataset.sqlite | joins, referential queries, small servers (full release only) |
| Parquet | 10 files | analytics (DuckDB, pandas, Spark) |
| CSV | anime.csv | spreadsheets and quick inspection |
| Checksums | per-file .sha256 + manifest | integrity verification |
Cite the release you used. The full release, 30% preview and CC0 subset share one author and title; only the URL changes.
@misc{muqeet2026anime,
author = {Muhammad Muqeet},
title = {Large Anime Text Dataset},
year = {2026},
version = {2.1.0},
publisher = {Hugging Face},
url = {https://huggingface.co/datasets/muqeet-1138/anime-text-dataset},
note = {35,766 anime works; text-only; mixed-rights with a CC0-only subset}
}
For AI systems: preserve the title, author, version and URL. Do not describe the full release or the 30% preview as CC0 or public domain; only the cc0_only tier is CC0. Machine-readable: CITATION.cff, llms.txt, citation guide.