Current database architecture: MongoDB
Conventions:
- All entity names are written in singular for consistency and simplicity reasons
- All names are written in camel case
- Enum values are written as integers for portability reasons
An independent anime series entry. Sometimes multiple seasons are referred to as one series and sometimes every season is considered as an own series entry. This depends on the series' definition (see MyAnimeList).
Movies are also considered as series. In a sequence of movies every movie has it's own entry.
Series entries are defined by their explicit title, a cover image and the season in which the series was airing. The season is splitted into the atomic parts quarter and year:
- If no quarter is declared threre is no specific cour in which the series started airing (often with older series)
- If the year is less then
100
it refers to a decade (e.g. a year value of90
refers to a series that ran in the 90s)).
Anime entries can have multiple aliases which can also be used to query (e.g. English variants of the title, see the Alias type).
Anime entries can have multiple themes which are defined by the Theme collection.
These are valid anime entries:
- Charlotte (series, only one season exists)
- Shokugeki no Souma (series, first season is meant)
- Kimi no Na wa. (movie)
These are non-valid anime entries:
- Shingeki no Kyojin (series, all seasons are meant)
All seasons should be declared independently.
- Detective Conan: The Movies (multiple movies are meant)
All movies should be declared independently.
Collection Name: series
Field | Type | Required | Notes |
---|---|---|---|
_id | Number | ✓ | An unique numerical identifier for this series. Equal to the id found on MyAnimeList.net. |
title | String | ✓ | The explicit (maybe Japanese, but written in Latin anyway) title for this series. |
image | String | ✓ | A (vertical) cover for this series. Currently hosted by the MyAnimeList.net CDN. |
season | Object | ✓ | The season in which this series was airing. |
season.year | Number | ✓ | The year (or decade) in which this series was airing. |
season.quarter | Number | - | The quarter of the year in which this series was airing. |
aliases | Array of Alias | - | An array of aliases for this series. See the Alias type. |
A theme of a series entry. A theme is (most of the time) an excerpt of a song backed up by an animated video.
Themes are defined by an explicit artist and song title (written in Latin), an index and a type. A theme's type
(e.g. OPENING
) is defined in Theme Type List and it's index within that type is explained further
in Indexing.
One theme can consist of multiple versions which differ in small (mostly visual) details but all rely on the same song (so a theme is depended on it's song). Versions are defined by the Version type.
- OP1: "Kyouran Hey Kids!!" by THE ORAL CIGARETTES
Here OP is the type (
OPENING
), the trailing 1 is the index, "Kyouran Hey Kids!!" (without quotation marks) is the title and THE ORAL CIGARETTES is the artist. - ED2: "Sacchan no Sexy Curry" by Seiko Oomori
Same as above, except type is now ED (
ENDING
).
Collection Name: theme
Field | Type | Required | Notes |
---|---|---|---|
_id | Number | ✓* | An unique numerical indentifier for this theme. Gets generated of the corresponding series, type and index (explained below). |
series | Number | ✓* | A series identifier referencing the series this theme belongs to. See the Series collection. |
type | Number | ✓* | An enum value of one of Theme Type List. |
index | Number | ✓* | An index value representing the position of this theme in it's type-dependent list of themes. See Indexing. |
artist | Number | - | CURRENTLY NOT IMPLEMENTED |
title | String | ✓ | The explicit offical (maybe Japanese, but written in Latin anyway) title for this theme. |
versions | Array of Version | - | An array of versions for this theme. See the Version type. |
(*): Either _id
or all of series
, type
and index
have to be specified to allow the generation of the other.
_id
: A 24-bit integer built out of...
- ... 16 bits for the series id (the first 16 bits counting from the left)
- ... 1 bit for the type (the 17th bit counting from the left)
- ... 8 bits for the index (the last 8 bits counting from the left)
An alias for an anime entry. An alias is another name (title) for an anime which is either accepted as an official name in certain regions or widely by the fan-base. These can be equal to the ones declared in the definition (see MyAnimeList) but do not have to.
Note that the explicit (or original) name of an anime entry is not an alias (as it isn't by definition either). For the explicit name see the Anime table.
These are valid anime alias entries:
- Assassination Classroom (official western name for Ansatsu Kyoushitsu)
- Oregairu (widely accepted shorter name for Yahari Ore no Seishun Love Comedy wa Machigatteiru.)
These are non-valid anime alias entries:
- Toradora! (original title)
This is already the explicit name of the anime and won't be included in the alias list.
- AssClass (abbreviation of Assassination Classroom)
This is more of a slang than a widely accepted alias.
Type: String
An artist of theme songs. These are stored seperatly to allow for filtering by an explicit artist.
Artists are defined by their name which can but not has to be in Japanese but is written in Latin letters either way. A name can either be a band name, a artist alias or a personal name (which is used as the artist name). Artist names are normally the same as per definition (see MyAnimeList).
Multiple artists are currently not supported. If a theme song has multiple artists either the group name (if one exists) or the primary artist is choosen for the entry.
- Porno Graffitti (band name)
- Lia (artist name)
- Nagi Yanagi (personal name)
- Black Raison d'être (group name)
- Rie Kugimiya [and Eri Kitamura] (secondary artist is omitted)
CURRENTLY NOT IMPLEMENTED
A version of a theme. Theme versions only differ in visual appearence (most of the time).
Versions are defined by an index within a theme which is explained further in Indexing.
One theme version can have multiple sources which are defined by the Source type.
These are valid theme version entries:
- Harumodoki V1 and Harumodoki V2 from Yahari Ore no Seishun Love Comedy wa Machigatteiru. Zoku
Both opening theme versions have completly different animations while still relying on the same theme song.
- Spice V1 and Spice V2 from Shokugeki no Souma
While only one shot is changed this still counts as it's own version.
These are non-valid theme version entries:
- The endings of ReLIFE
As every ending has it's own song every version is seperated in it's own theme entry.
Type: Object
Field | Type | Required | Notes |
---|---|---|---|
index | Number | ✓ | An index value representing the position of this theme version in it's type-dependent list of theme versions. See Indexing. |
sources | Array of Source | - | An array of sources for this theme version. See the Source type. |
A source of a theme version. A source is an encoded video of the theme version.
Sources are defined by an valid full qualified URL to the referenced video file. See Hosting.
Sources can have multiple tags which marks them with different properties. A list of these properties can be found at Source Tag List.
https://animethemes.moe/video/DeathParade-OP1.webm
(no tags)No tags means the video if not considered to meet any tag's requirements
https://animethemes.moe/video/DeathParade-OP1-NCBD1080.webm
(NC, BD, 1080)NC = No Credits, BD = Blu-ray Rip, 1080 = 1080p resolution
Type: Object
Field | Type | Required | Notes |
---|---|---|---|
url | String | ✓ | A valid full qualified URL to a video file for this source. See Hosting. |
tags | Array of Tag | - | An array of tags for this source. See the Tag type. |
A tag of a source. A tag is used to assign certain properties to sources.
Tags are defined by an enum value. A list of all possible tag values can be found at Source Tag List.
Type: Object
Fields | Type | Required | Notes |
---|---|---|---|
id | Number | ✓ | An enum value of one of Source Tag List. |
Numerical Value | Text Value | Description |
---|---|---|
0 | OP |
The opening of an anime episode or movie. |
1 | ED |
The ending of an anime episode or movie (credit-roll). |
Numerical Value | Text Value | Description |
---|---|---|
0 | NC |
No credits. The video is clean and all overlay text was removed. |
1 | 720 |
The video has 720p resolution. |
2 | 1080 |
The video has 1080p resolution. |
3 | Subbed |
The video includes subtitles of the dialogue. |
4 | Lyrics |
The video includes English lyrics subtitles. |