erengy / anitomy

Anime video filename parser
Mozilla Public License 2.0
273 stars 22 forks source link
anime

Anitomy

Anitomy is a C++ library and a command-line tool for parsing anime video filenames.

[!IMPORTANT] The library is currently being rewritten in the develop branch. The documentation below may be out of date.

Example

[TaigaSubs]_Toradora!_(2008)_-_01v2_-_Tiger_and_Dragon_[1080p_H.264_FLAC][BAD7A16A].mkv
Element Value
Release group TaigaSubs
Title Toradora!
Year 2008
Episode 01
Release version 2
Episode title Tiger and Dragon
Video resolution 1080p
Video term H.264
Audio term FLAC
File checksum BAD7A16A
File extension mkv

Usage

Library

Requires a compiler that supports C++23. Currently only tested with the latest version of MSVC.

#include <print>
#include <anitomy.hpp>

int main() {
  auto elements = anitomy::parse("[Ouroboros] Fullmetal Alchemist Brotherhood - 01");

  for (auto [kind, value, _] : elements) {
    std::println("{:<16}{}", kind, value);
  }

  return 0;
}
release_group   Ouroboros
title           Fullmetal Alchemist Brotherhood
episode         01

CLI

Use --help to see available options.

anitomy --format=json --pretty "[Ouroboros] Fullmetal Alchemist Brotherhood - 01"
{
  "episode": "01",
  "release_group": "Ouroboros",
  "title": "Fullmetal Alchemist Brotherhood"
}

FAQ

How does it work?

Anitomy makes some educated guesses on how filenames are formed. In more technical terms, the input is split into a sequence of tokens, and the tokens are inspected for various keywords and patterns to extract the elements.

What should I do if a filename is not being parsed correctly?

Please report the issue, though it may not be possible to resolve a terribly ambiguous naming scheme.

Can I use it for other media such as movies or TV series?

It should work to some extent, but the library is mostly optimized for anime.

Can I use it on Unicode filenames?

Yes, just make sure your input is UTF-8 encoded and preferably in composed form.

Can I use it in another programming language?

See other repositories for related projects.

Migration

v2.0 (WIP)

License

Anitomy is licensed under Mozilla Public License 2.0.