Part of Keikakku Dashboards
This repository is for transferring data from the node based AniList GraphQL database to a local DuckDB relational database. The anime entries retrieved are roughly ~13,000 rows as of 2025 January 10.
AniList database -> GraphQL API -> DuckDB
8 tables currently exist in the database:
- Anime: Stores detailed information about the anime shows.
- Review: Stores reviews of anime.
- Status: Stores statistics about anime user statuses.
- User: Stores user information.
- WebAsset: Stores web assets related to anime.
- Studio: Stores information about studios associated with anime.
- Tag: Stores tags associated with anime.
- Genre: Stores genres associated with anime.
Note
Primary keys are for enforcing uniqueness. Foreign keys are not recommended as GraphQL is inherently node based and not relational.
demo.mp4
Requirements:
- Python
git clone https://github.com/iragca/anilist-data-transfer.git
cd anilist-data-transfer
bash setup.sh
source .venv/bin/activate
pip install -r requirements.txt
python src/init_db.py
python src/data_transfer.py 1940 2025 10 # <inclusive: start year> <exclusive: end year> <optional: cooldown; default: 10>
git clone https://github.com/iragca/anilist-data-transfer.git
cd anilist-data-transfer
pip install virtualenv
virtualenv .venv
source .\.venv\Scripts\activate
pip install -r requirements.txt
python .\src\init_db.py
python .\src\data_transfer.py 1940 2025 10 # <inclusive: start year> <exclusive: end year> <optional: cooldown; default: 10>
Basic reports are made for each table and are available on project folder root/eda