Skip to content

Another attempt creating an automation of metadata inserter: Anime. Made hybrid by PowerShell and Python

License

Notifications You must be signed in to change notification settings

ryuuganime/metadataCreator-anime

Repository files navigation

metadataCreator-anime

Warning

This project is still in development, and is not ready for production use.

Another attempt creating an automation of metadata inserter: Anime. Made hybrid by PowerShell and Python

Warning

PowerShell Core version 7 and above is required to run this script.

Table of Contents

Required 3rd Party Services and Tool

Shows Database

Name Type Description Uses Python? Dependency
aniDB Relation Get anime relation to current title for ID Anime API
AniList Metadata Search and retrieve anime metadata
Anime API Relation Search and Retrieve relation to other sites
Anime News Network Relation Get anime relation to current title for ID SIMKL
Anime-Planet Metadata Retrieve anime metadata Yes Anime API
aniSearch Relation Get show relation to current title for ID Anime API
Annict (アニクト) Relation Get show relation to current title for ID
Bangumi Relation Get anime relation to current title for ID
IMDb Relation Get show relation to current title for ID SIMKL
Kaize Relation Get anime relation to current title for ID Yes Anime API
Kitsu Metadata Retrieve anime metadata Yes Anime API
MyAnimeList Metadata Search and retrieve anime metadata
MyShows Relation Get show relation to current title for ID The TVDB
Nautiljon Relation Get show relation to current title for ID Yes
Notify Relation Retrieve relation to other sites Anime API
Otak Otaku Relation Get show relation to current title for ID Yes
SIMKL Metadata Retrieve show metadata MyAnimeList
The Movie Database Relation Get show relation to current title for ID SIMKL, Notify.moe
The TVDB Relation Get show relation to current title for ID The Movie Database
Trakt Relation Get show relation to current title for ID SIMKL
TV Time Relation Get show relation to current title for ID The TVDB
TVMaze Relation Get show relation to current title for ID The Movie Database
TvRage Relation Get show relation to current title for ID TVMaze, MyShows
Кинопоиск Relation Get show relation to current title for ID MyShows
Шикимори Relation Get show relation to current title for ID MyAnimeList

TV Schedule Database

Name Type Description Uses Python? Dependency
LiveChart Relation Get anime relation to current title for ID Anime API
しょぼいカレンダー Relation Get anime relation to current title for ID Notify.moe

Music Database

Name Type Description Uses Python? Dependency
Apple Music Relation Retrieve song ID by looking up ISRC code attached on another site Spotify, MusicBrainz
Spotify Music Search and retrieve song information used on show's opening and ending
Last.fm Music Search and retrieve song information used on show's opening and ending
MusicBrainz Music Search and retrieve song information used on show's opening and ending
Discogs Music Search and retrieve song information used on show's opening and ending

Other

Name Type Description Uses Python? Dependency
Fanart.tv Assets Retrieve show image assets: poster, background, logo The Movie DB, IMDb, Trakt, The TVDB
SilverYasha DB Relation Get show relation to current title for ID Anime API
Wikipedia Metadata Retrieve show metadata Yes

Getting Started

Prerequisites

Installation

  1. Fork this repo! You can do this by clicking the Fork button on the top right corner of this page.

  2. Clone your forked repo to your local machine. To do this, open your terminal and run the following command:

    git clone https://github.com/<your_username>/metadataCreator-anime.git
  3. Run the setup.ps1 script to install the required PowerShell modules, Python packages, and other binary dependencies automatically.

    pwsh ./setup.ps1
    • Currently supported package managers for automatic install:
      • Linux: apx (Vanilla OS), apt (Debian or Ubuntu deriv.), rpm (Red Hat deriv.), yum (Red Hat deriv.), pacman (Arch deriv.), apk (Alpine)
      • macOS: brew
      • Windows: choco, winget, scoop

Usage

Simply run this command on working directory in a console!

pwsh ./main.ps1

FAQ

Why PowerShell?

As the time of writing, the maintainer of this repo has advanced knowledge in PowerShell and not Python. Although it is entirely doable in Python, it is just matter of comfortability of the maintainer.

Why hybrid?

PowerShell although is the primary scripting language used in this repo, there is undoubtedly a need for Python, especially the use of HTML parser.

This is because PowerShell does not have a built-in HTML parser, and the only way to do it is by using the Invoke-WebRequest cmdlet. However, this cmdlet is not suitable for this repo as it is not able to parse the HTML code properly, and there is no modules that could do such for ability to run this script cross-platform. Therefore, Python is used to parse the HTML code with the help of the BeautifulSoup library.

All responses made in Python will be returned as JSON, and PowerShell will do the rest of the task.

Note

Currently maintainer found a module on PowerShell that could parse HTML easily. At the moment, it was being checked for cross platform compatibility.

If the module can be used on any platform, Python will be dropped from language of choice.

About

Another attempt creating an automation of metadata inserter: Anime. Made hybrid by PowerShell and Python

Topics

Resources

License

Stars

Watchers

Forks