AnimeDB

You can use Git to clone the repository via the web URL. Download snapshot (zip)
 
descriptionOffline software for IMDB / GoodReads style bookkeeping of watched anime.
websitehttps://fietkau.software/animedb
last changeSat, 7 Oct 2023 21:55:45 +0000 (23:55 +0200)
shortlog
2023-10-07 Julian FietkauBugfix: Prevent crash when changing entry status by... main
2022-08-24 Julian FietkauInitial public version
readme

AnimeDB

AnimeDB is an offline software for IMDB / GoodReads style bookkeeping of watched anime that can also export its list as HTML files for self-hosting. It was written primarily for personal use and is being made available as free and open source software for technically-minded users who at minimum feel comfortable editing configuration files by hand.

The local part of the application is written in Python and uses GTK 3 for its GUI. Its main purpose is to allow the user to catalogue anime shows, movies etc. that they have watched or are planning to watch. Completed shows can be rated and tagged.

Compared to MyAnimeList, an interesting new addition that can be found here is the use of scalar tags: instead of tags being either present or not, each tag can be rated on an individual scale, allowing for more fine-grained descriptions of how much each tag applies to each show.

Via the press of a button, the tool can export a static HTML view of the list which can then be hosted on any web server. The design is custom-made and fully responsive for different form factors. The list can be sorted by title, type, rating, or by any particular tag.

Project website: https://fietkau.software/animedb

Requirements

This application requires a reasonably recent Python 3 along with GTK 3.0, Jinja2 and PIL or Pillow.

It has only been tested on Ubuntu Linux running Wayland. Use at your own risk.

Usage

Before running the application for the first time, edit the first entry in config.json to where you want your database to be stored (relative or absolute path). As long as your database is still empty, you can change the tags to your liking without any issues. The categories should almost certainly not be changed as the code relies on their names.

Start anime_db.py to launch the application. If your Python installation is missing any required modules, the terminal output will tell you. If not, you should see a database initialization dialog where you can set a title for your list (this will be visible in the HTML exports later) and a password for your plan-to-watch list. If you leave the password field empty, the plan-to-watch list will be easily accessible in the HTML version. If you set a password, that will be required to access the plan-to-watch section.

You will also be asked to pick a source for anime metadata. You can go with one of the provided ones or add your own source_*.py file to the program directory if you want to use a custom data source. Please be aware that the data source should not be changed after any anime have been added to the database, since that is likely to lead to anime ID conflicts and potentially data loss.

From there you should be ready to go. You can add some anime to your “Completed” list and click the globe icon in the top right to view the rendered HTML version. Metadata and images will be fetched if they are available, which may take some time. Files will be generated in the html subdirectory.

If you have a location where you want your HTML export deployed every time, you can add the deploy_root key to your database file's _meta section. The value should be a path that can be passed to rsync (i.e. this can be on a remote host). You can also set the deploy_url key to the known URL of the export location for correct meta tags in the HTML head. Lastly, you can use the custom_intro key to replace the template's intro text with your own HTML snippet.

You can put files of your own into the html subdirectory if you like, just note that any ending in .html are deleted before the render operation. If there is a file named extra.css, its content will be inlined into the main stylesheet. If you have any favicons you want to use, name them favicon-n.png where n is their pixel size. (File formats other than PNG should work too.)

Known Issues

Because the application does all its I/O in the GTK render thread, the UI lags while searches are performed or metadata is retrieved. This has not bothered me enough to fix it thus far.

License

AnimeDB (c) 2022 Julian Fietkau

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE for details.