About this project

Kazumi is a custom-rule-based anime collection and online viewing program developed with Flutter, with its interface and logic written in Dart. The core idea is to let users build their own collection rules using at most five lines of Xpath-based selectors, thereby obtaining anime catalogs, search results, and playback addresses from different video sources, and supporting rule import and sharing. Main features include: rule editor, anime catalog, anime search, anime schedule, anime subtitles, episode playback, built-in video player, multi-video-source support, rule sharing, hardware acceleration, high refresh rate adaptation, follow list, anime danmaku, online updates, history, playback speed, color schemes, cross-device sync, wireless casting (DLNA), external player playback, super-resolution, as well as watch together and anime download. Planned features also include anime update reminders and other to-do items. On the technical side, the project uses Anime4K for real-time super-resolution, danmaku interaction integrates with the DanDanPlay open platform, anime metadata comes from the Bangumi open API, the watch-together feature is based on the SyncPlay protocol and public servers, image-based anime recognition uses trace.moe, cross-platform media playback capability comes from media-kit, persistent storage uses hive, and it leverages avbuild's out-of-tree patches to play non-standard video streams. Supported platforms include Android 10 and above, Windows 10 and above, macOS 10.15 and above, experimental Linux, iOS 13 and above (requires sideloading), and HarmonyOS 5.0 and above (also requires sideloading, available in a branch repository). Android can be obtained via F-Droid, and Linux can be installed via Flathub or AUR. The project is licensed under GPL-3.0, states that it does not collect user data and does not use telemetry components, and reminds users to comply with local laws and regulations and not to infringe third-party intellectual property rights. The README also includes FAQ sections for users, rule writers, and developers, such as ads coming from video sources, super-resolution requiring high GPU performance, low-memory mode limiting cache, and some video sources' anti-hotlinking measures cannot be handled by external players. Regarding rule writing, current support for Xpath syntax is incomplete; only selectors starting with // are supported, and it is recommended to refer to example rules.