Create local backup of anime/manga list from Anilist.co.
View Project History | Contribute to AniPy | Report Issues |
---|
- Export User Anime/Manga list to JSON file.
- Export User Anime/Manga list to MyAnimeList XML export file (Can be imported to MyAnimeList).
- Uses Authentication to Fetch private lists.
- Compare against Tachiyomi backup, and lists all entries not on your library.
- Create Tachiyomi backup file containing Anilist entries not on your library. (Skips COMPLETED AND DROPPED)
- Separate NSFW entries. Create files with prefix 'nsfw_'.
- Cannot get full information from "Re-watches / Re-reads".
- Cannot cherry-pick entries. (Planned feature)
- anime.json / manga.json : Local backup of User Anilist.co.
- anime.xml / manga.xml : MyAnimeList XML export. Can be imported into MAL.
- anime_NotInMal.json / manga_NotInMal.json : Entries not existing on MAL.
- animemanga_stats.txt : Save Entries' stats. (Average score, Watch/Read count, etc..).
- manga_NotInTachi.json : Anilist manga entries not on your Tachiyomi library.
- manga_TachiyomiBackup.json : Tachiyomi backup file which contains Anilist entries not on your Tachiyomi library. Import it to your Tachiyomi, and Migrate each entries from 'Anilist' category to appropriate sources.
- Python 3.9
- 2GB RAM, or higher.
- Stable internet connection.
- Install required packages (run Command Prompt in the same folder as 'main.py'):
pip3 install -r requirements.txt
- Go to Anilist Settings -> Developer, and click Create client.
- Type whatever in Name field, and use
https://anilist.co/api/v2/oauth/pin
as Redirect URL. - Get information from created client and input them in anilistConfig.json (Automatically created if not existing, you need to input the credentials).
- File must contain these lines. Replace lines with appropriate values:
{
"aniclient": "ID",
"anisecret": "Secret",
"redirectUrl": "https://anilist.co/api/v2/oauth/pin"
}
- Alternatively, you can directly run 1 of the script modes to input the credentials.
- Navigate to folder where you saved the source code.
- Run main.py, with command:
python main.py
. - Follow on-screen instructions.
- Run command using:
python anipy.py -[parameters] --[switches]
-user "<type_here>"
-> Anilist username, if using 'Public Lists Mode'.-mal "<type_here>"
-> MyAnimeList username. Will export XML file if provided.-tachi "<full_filepath>"
-> Full filepath where Tachiyomi JSON backup file is located.
--a
-> Use Authentication to fetch for lists. Disregards the-user
parameter.--t
-> Trim lists, showing which entries are not on MAL. Also, write stats to file.--n
-> Separate NSFW entries on generating output files. Creates files with prefix 'nsfw_'.--c
-> Clear existing output files.--m
-> Use Anilist as MAL username, if MAL username is not provided.
- Backup all ANIME and MANGA using Authenticated Mode:
python anipy.py --a
- Backup all ANIME and MANGA using Public Mode:
python anipy.py -user Jace
- Trim current list and export Tachiyomi backup:
python anipy.py -tachi "D:\Tachi\backup.json" --t
anipy.py : Advance script, with one-liner command.
main.py : Easy-to-follow script.
func / main.py : Main global functions.
func / anilist_getMedia.py : Generate Anime and Manga JSON/XML files with entries from Anilist.co.
func / anilist_request.py : Query Requests to Anilist.co.
func / getNotOnTachi.py : Generates list of Entries not in Tachiyomi library.
func / trim_list.py : Generate list of Entries not in MAL. Also gets stats.
requirements.txt : List of packages required.