35,766 anime works. Ready for language models.

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

Headline numbersWhat the release contains

All figures are exact for release 2.1.0 and reflected in every export and the checksum manifest.

MetricValueArtifact
Unique anime works with a title35,766anime.jsonl
Characters283,477characters.jsonl
Staff / voice-actor rows535,642staff.jsonl
Studios2,966studios.jsonl
Genre / theme vocabulary43 / 422genres.jsonl · themes.jsonl
Episodes linked to anime276,763episodes.jsonl
Relationship edges (sequel/prequel/…)39,226relationships.jsonl
Alternative titles135,425alt_titles.jsonl
Question / answer pairs317,907qa.jsonl
Instruction-tuning examples235,395instructions.jsonl
RAG chunks with source refs206,906rag_chunks.jsonl
Entity-link records77,681entity_links.jsonl
Split train / val / test32,189 / 1,788 / 1,789split field on every row

What's insideA structured, text-only corpus

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.

Identity

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.

Narrative

Episodes & relations

276k episodes with titles and dates; 39,226 relationship edges (sequel, prequel, side story, adaptation) and 23,980 franchise clusters built from them.

People

Cast & crew

283,477 characters and 535,642 staff rows with roles — the raw material for character Q&A, dialogue-style data, and voice-actor modelling.

Text

Record summaries

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.

Training

QA & instructions

317,907 grounded QA pairs and 235,395 instruction examples — chat-style, ready to shard for SFT, LoRA/QLoRA and DPO.

Retrieval

RAG chunks

206,906 semantic chunks, each with source references, sized for embedding models and retrieval-augmented generation.

Knowledge graph

Entity links

77,681 records mapping every internal anime ID to external source IDs with method and confidence — for entity linking and KG construction.

Provenance

Sources & confidence

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.

Get itNine ways to access, clone, or train

The same schema, three releases: full (gated), 30% preview (free, instant), and a public CC0 subset.

#MethodWhat you getHow
1Clone the repositorycode, schemas, docs, pipelinegit clone https://github.com/muqeet-1138/anime-text-dataset.git
2Full release35,766 works, 2.2 GB, gatedrequest access on Hugging Face
330% free preview10,729 works, 713,238 rows, instantget free access
4Public CC0 subset969 works, 8,654 rows, no gatedirect download
5Hugging Face datasetsa sharded, streamable Datasetload_dataset("muqeet-1138/anime-text-dataset-preview", "qa", split="train")
6Stream JSONL in Pythontrain-ready rows, no full loadopen("exports/qa.jsonl", encoding="utf-8")
7SQLite databasejoins and referential queriessqlite3 exports/anime_dataset.sqlite
8Parquet + DuckDB / pandasfast analyticsduckdb -c "select ..."
9CSV + training recipesspreadsheet view and fine-tuned modelsexports/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.

SourcesBuilt from five public catalogues

Factual metadata aggregated from publicly documented catalogues, with per-record provenance and per-source license status.

SourceWorksDetailLicense status
AniList22,61722,257 full-depth recordspublic API; content © rights holders — tier permission_required
Kitsu22,494276,763 episodespublic API, no redistribution grant — tier permission_required
Shikimori24,00923,602 detail recordsno licence located — tier unresolved
Wikidata8,561items & labelsCC0-1.0 — tier cc0_only
ANN encyclopedia—789 sample pages, raw storage onlynot linked into exports
License note: original code, structure and generated text are CC-BY-4.0. Retained upstream synopses, biographies and tag definitions are excluded from that grant: every prose row carries 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.

SplitsLeak-free train / validation / test

90 / 5 / 5 by work, not by row

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.

Your filter is one line

import json
train = [q for q in
  map(json.loads,
      open("exports/qa.jsonl",
           encoding="utf-8"))
  if q["split"] == "train"]

Quick startRun it from any terminal

These commands work in Windows CMD, PowerShell, Git Bash and WSL. Replace python with python3 where needed.

Clone & install

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

Verify the data

python -m src.cli validate
python -m src.cli checksums

Inspect without training

# 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.

Reproducible buildEvery part of the release is one command

A single deterministic driver (python -m src.cli) regenerates every table from source payloads. Each phase is resumable and checkpointed.

P0python -m src.cli discoverids per source
P1python -m src.cli dedup35,766 canonical works
P2python -m src.cli enrichdepth-tier detail
P3python -m src.cli entities → normalizecharacters · staff · studios · episodes, deduped
P4python -m src.cli relationships39,226 edges
P5python -m src.cli descriptions63,396 texts
P6python -m src.cli qa317,907 pairs
P7python -m src.cli instructions235,395 examples
P8python -m src.cli franchisefranchise clusters
P9python -m src.cli rag206,906 chunks
P10python -m src.cli split90/5/5 per work
P11scripts/license_tiers.py → python -m src.cli exporttier + split joined into every row
QApython -m src.cli validate · checksums · report21 checks + report

TrainNine recipes, one guide

From a first LoRA fine-tune to full domain pretraining and retrieval embeddings — with runnable code and honest hardware guidance.

SFT

Instruction fine-tuning

Teach a chat model to answer anime questions with qa.jsonl + instructions.jsonl.

Efficient

LoRA / QLoRA

Fine-tune a 7–13B model on a single 8–16GB GPU with peft adapters.

Preference

DPO

Train the model to prefer grounded answers over hallucinated ones.

Retrieval

RAG & embeddings

Index rag_chunks.jsonl with FAISS and fine-tune readers and embedders.

Pretrain

Domain continued pretraining

Make a base model fluent in anime facts using descriptions.jsonl.

Structured

Classification & KG

Genre classifiers, score rankers, entity linking and relation prediction.

Read the full training guide

FormatsOne release, every shape

FormatFilesBest for
JSONL19 tablesstreaming into trainers and pipelines
SQLiteanime_dataset.sqlitejoins, referential queries, small servers (full release only)
Parquet10 filesanalytics (DuckDB, pandas, Spark)
CSVanime.csvspreadsheets and quick inspection
Checksumsper-file .sha256 + manifestintegrity verification

CiteFor humans and AI systems

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.