{"id":13623490,"url":"https://github.com/bokusu/animeManga-autoBackup","last_synced_at":"2025-04-15T14:33:15.095Z","repository":{"id":50288425,"uuid":"518280368","full_name":"bokusu/animeManga-autoBackup","owner":"bokusu","description":"Automatically/manually backup your anime (and manga) list from MAL etc.","archived":false,"fork":false,"pushed_at":"2024-08-11T09:11:46.000Z","size":597,"stargazers_count":10,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-11T10:26:56.477Z","etag":null,"topics":["anilist","anime","anime-planet","annict","autobackup","automation","bangumi","kitsu","manga","mangadex","mangaupdates","myanimelist","notifyme","notifymoe","otakotaku","powershell","shikimori","simkl","trakt","wayback-machine"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bokusu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-27T02:20:23.000Z","updated_at":"2024-08-11T09:11:49.000Z","dependencies_parsed_at":"2023-12-14T15:50:21.529Z","dependency_job_id":"ffe4d723-7fa6-4233-bbb1-bee6c9161527","html_url":"https://github.com/bokusu/animeManga-autoBackup","commit_stats":null,"previous_names":["bokusu/animemanga-autobackup","animanga-initiative/animemanga-autobackup"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bokusu%2FanimeManga-autoBackup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bokusu%2FanimeManga-autoBackup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bokusu%2FanimeManga-autoBackup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bokusu%2FanimeManga-autoBackup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bokusu","download_url":"https://codeload.github.com/bokusu/animeManga-autoBackup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223677644,"owners_count":17184518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anilist","anime","anime-planet","annict","autobackup","automation","bangumi","kitsu","manga","mangadex","mangaupdates","myanimelist","notifyme","notifymoe","otakotaku","powershell","shikimori","simkl","trakt","wayback-machine"],"created_at":"2024-08-01T21:01:32.398Z","updated_at":"2024-11-08T11:30:55.640Z","avatar_url":"https://github.com/bokusu.png","language":"PowerShell","funding_links":[],"categories":["PowerShell"],"sub_categories":[],"readme":"\u003c!-- cSpell:disable --\u003e\n\u003c!-- markdownlint-disable MD013 MD033 MD034 MD028 --\u003e\n\n\u003e \u003c!-- omit in toc --\u003e\n\u003e # Early Deprecation Notice\n\u003e\n\u003e This PowerShell script repository for backing up your data is about to be\n\u003e deprecated in favor of a newly rewritten Python executable module that you\n\u003e can install directly with PIP and that is much easier to update.\n\u003e\n\u003e At the time of this writing, the project is under development and does not\n\u003e have a production release date. Have a look at the [`bokusu`](https://github.com/bokusu/bokusu)\n\u003e repo to see the progress.\n\u003e\n\u003e Once the module is completed, this repository will be archived, won't get\n\u003e updated and supported, and will have a deprecation note in your script's\n\u003e log. We will provide instructions for migrating in this repo and as well\n\u003e in `bokusu`. However, looking at the massive infrastructure gaps, only\n\u003e some of secrets and configurations were copied.\n\n\u003c!-- omit in toc --\u003e\n# Anime Manga Auto Backup\n\n[![The MIT License](https://img.shields.io/badge/license-MIT-orange.svg?style=for-the-badge)](LICENSE)\n[![PowerShell](https://img.shields.io/badge/Made_With-PowerShell-blue.svg?style=for-the-badge)](http://github.com/powershell/powershell)\n[![Discord](https://img.shields.io/discord/923830321433149450?label=Discord\u0026color=%235865F2\u0026logo=discord\u0026logoColor=%23FFFFFF\u0026style=for-the-badge)](https://discord.gg/2NXkkrbjMW)\n[![Deploy](https://img.shields.io/badge/github-deploy-gray?style=for-the-badge\u0026logo=github\u0026labelColor=black)](https://github.com/new?template_name=animeManga-autoBackup\u0026template_owner=bokusu)\n\nAutomatically (and also manually) backup your anime and manga libraries from\n[several anime, manga, TV shows, movies, and books tracking sites](#supported-sites).\nMade possible with PowerShell Core.\n\n\u003e **Warning**\n\u003e\n\u003e This project requires PowerShell Core 7 or higher.\n\u003e\n\u003e Please download the latest version from [here](https://github.com/PowerShell/PowerShell/releases),\n\u003e or write this command for Windows 10 and higher on command prompt or Windows PowerShell:\\\n\u003e `winget install --id Microsoft.PowerShell -e`\n\n\u003c!-- omit in toc --\u003e\n## Table of Contents\n\n* [About](#about)\n* [Supported Sites](#supported-sites)\n* [Files Generated and Importability](#files-generated-and-importability)\n* [Features](#features)\n  * [Wayback Machine Snapshot](#wayback-machine-snapshot)\n* [Getting Started](#getting-started)\n  * [Prerequisites](#prerequisites)\n    * [Required softwares/packages for locally run the script](#required-softwarespackages-for-locally-run-the-script)\n    * [Run the script by service worker (GitHub Actions)](#run-the-script-by-service-worker-github-actions)\n  * [Setting Environment Variables](#setting-environment-variables)\n    * [Based on where you run](#based-on-where-you-run)\n      * [For Local Machine](#for-local-machine)\n        * [Automated](#automated)\n        * [Manual](#manual)\n      * [For GitHub Actions](#for-github-actions)\n* [Variable Keys](#variable-keys)\n  * [AniList](#anilist)\n  * [Anime-Planet](#anime-planet)\n  * [Annict](#annict)\n  * [Baka-Updates' Manga Section (MangaUpdates)](#baka-updates-manga-section-mangaupdates)\n  * [Bangumi](#bangumi)\n  * [Kaize.io](#kaizeio)\n  * [Kitsu](#kitsu)\n  * [MangaDex](#mangadex)\n  * [MyAnimeList](#myanimelist)\n  * [Notify.moe](#notifymoe)\n  * [Otak Otaku](#otak-otaku)\n  * [SIMKL](#simkl)\n  * [Shikimori](#shikimori)\n  * [Trakt](#trakt)\n  * [Visual Novel Database (VNDB)](#visual-novel-database-vndb)\n* [Configurations](#configurations)\n  * [Network](#network)\n  * [Repository](#repository)\n  * [Schedule](#schedule)\n  * [Wayback Machine Integration](#wayback-machine-integration)\n* [Usage](#usage)\n  * [On Local Machine](#on-local-machine)\n  * [On GitHub Actions](#on-github-actions)\n    * [If the repo is forked](#if-the-repo-is-forked)\n    * [If the repo is generated from template](#if-the-repo-is-generated-from-template)\n\n## About\n\n\"Anime Manga Auto Backup\" is my personal take to automate process in back-up\nyour anime and manga libraries, automatically using worker like GitHub Actions\nor execute manually from your machine, from MyAnimeList.net, Kitsu, AniList,\nAnnict, Baka-Updates Manga, Shikimori, Anime-Planet, Notify.moe, SIMKL, and\nTrakt. I use [PowerShell Core](https://github.com/powershell/powershell) to\nwrite the script because it is cross-platform and easy to use.\n\nThis project **requires you to set the library/list as public** as most API used\nin this projects are from 3rd party and **User Agent string may required to be\nfilled in environment variable** for the backup progress works.\n\n## Supported Sites\n\n\u003e [!NOTE]\n\u003e\n\u003e For better readability, any sites that is does not have specific requirements\n\u003e are marked with `-` (dash).\n\n\u003e [!WARNING]\n\u003e\n\u003e I am not responsible and liable for warranty for any damage caused by using\n\u003e this project.\n\n| Site Name                                    | Country of Origin    | Languages                                           | Media Type to Backup         |                         FOSS\\*                         | Supported |     Method      | Public? |  UA\\*?  | PAT\\*?  | Notes                                                                                 |\n| :------------------------------------------- | :------------------- | :-------------------------------------------------- | :--------------------------- | :----------------------------------------------------: | :-------: | :-------------: | :-----: | :-----: | :-----: | :------------------------------------------------------------------------------------ |\n| [AniList](https://anilist.co)                | United Kingdom       | English                                             | Anime, Manga                 |                           -                            |     ✅     |      `API`      |    -    |    -    |    -    |                                                                                       |\n| [Anime-Planet](https://www.anime-planet.com) | United States        | English                                             | Anime, Manga                 |                           -                            |     ✅     |      `3PA`      | **Yes** | **Yes** |    -    | Uses MAL Exporter from Azure Website                                                  |\n| [Annict](https://annict.com)                 | Japan                | Japanese, English                                   | Anime                        |    [**Yes**](https://github.com/kiraka/annict-web)     |     ✅     |      `API`      |    -    |    -    | **Yes** | User can generate Personal Access Token from account                                  |\n| [Baka-Updates](https://www.mangaupdates.com) | United States†       | English                                             | Manga                        |                           -                            |     ✅     |      `API`      |    -    |    -    |    -    | Logging in with API,\u003cbr\u003ebut CSV/TSV export is undocumented API path                   |\n| [Bangumi](https://bgm.tv)                    | China                | Chinese                                             | Anime, Manga, Games, TV Show |     [**Yes**](https://github.com/bangumi/frontend)     |     ✅     |      `API`      |    -    |    -    | **Yes** |                                                                                       |\n| [Kaize.io](https://kaize.io)                 | Switzerland†         | English                                             | Anime, Manga                 |                           -                            |     ✅     |    `SCRAPE`     | **Yes** |    -    |    -    | Scrapes user's profile page and lists                                                 |\n| [Kitsu](https://kitsu.app)                    | United States        | *Multiple languages*                                | Anime, Manga                 | [**Yes**](https://github.com/hummingbird-me/kitsu-web) |     ✅     |      `API`      |    -    |    -    |    -    |                                                                                       |\n| [MangaDex](https://mangadex.org)             | Vietnam†             | English                                             | Manga                        |                           -                            |     ✅     |      `API`      |    -    |    -    |    -    | Will be deprecated soon,\u003cbr\u003e2FA-enabled account and OAuth not supported               |\n| [MyAnimeList](https://myanimelist.net)       | United States, Japan | English                                             | Anime, Manga                 |                           -                            |     ✅     |      `3PA`      | **Yes** | **Yes** |    -    | Uses MAL Exporter from Azure Website                                                  |\n| [Notify.moe](https://notify.moe)             | Korea, Japan         | English                                             | Anime                        | [**Yes**](https://github.com/animenotifier/notify.moe) |     ✅     |      `API`      | **Yes** |    -    |    -    |                                                                                       |\n| [Otak Otaku](https://otakotaku.com)          | Indonesia            | Indonesian, Japanese                                | Anime                        |                           -                            |     ✅     |      `API`      | **Yes** | **Yes** |    -    | Uses official undocumented API endpoint                                               |\n| [Shikimori](https://shikimori.one)           | Russia               | Russian, English                                    | Anime, Manga                 |   [**Yes**](https://github.com/shikimori/shikimori)    |     ✅     |    `COOKIE`     |    -    | **Yes** |    -    | Uses `_kawai_session` cookie saved on browser                                         |\n| [SIMKL](https://simkl.com)                   | United States        | English                                             | TV Show, Movie, Anime        |                           -                            |     ✅     |      `API`      |    -    |    -    |    -    |                                                                                       |\n| [Trakt](https://trakt.tv)                    | United States        | English                                             | TV Show, Movie               |                           -                            |     ✅     |      `API`      |    -    |    -    |    -    | Uses `traktexport` Python package/module                                              |\n| [VNDB](https://vndb.org)                     | The Netherlands†     | English                                             | Visual Novel (Game)          |     [**Yes**](https://code.blicky.net/yorhel/vndb)     |     ✅     | `API`, `SCRAPE` |    -    | **Yes** | **Yes** | Uses `vndb_auth` cookie saved on browser for XML,\u003cbr\u003eJSON uses official API via Token |\n|                                              |                      |                                                     |                              |                                                        |           |                 |         |         |         |                                                                                       |\n| [9Anime](https://9anime.to)                  | United States†       | English                                             | Anime                        |                           -                            |     🚫     |    `COOKIE`     |    -    | **Yes** |    -    | Unable to bypass security measures put by dev                                         |\n| [AniDB](https://anidb.net)                   | Germany†             | English                                             | Anime                        |    [**Yes**](https://git.anidb.net/public/projects)    |     💻     |      `API`      |    -    |    -    |    -    | Currently looking on how to fetch user's MyList safely                                |\n| [aniSearch](https://anisearch.com)           | Germany              | German, English, Spanish, French, Italian, Japanese | Anime, Manga, Live Action    |                           -                            |     🔔     |    `SCRAPE`     |    -    |    -    |    -    | Scrapes user's profile page and lists                                                 |\n| [Goodreads](https://goodreads.com)           | United States        | English                                             | Book                         |                           -                            |     🔔     |    `SCRAPE`     |    -    |    -    |    -    |                                                                                       |\n| [IMDb](https://imdb.com)                     | United States        | English                                             | Movie, TV Show               |                           -                            |     🔔     |    `SCRAPE`     |    -    |    -    |    -    |                                                                                       |\n| [LiveChart.me](https://livechart.me)         | United States†       | English                                             | Anime                        |                           -                            |     🚫     |    `API`     |    -    |    -    |    -    | Cannot bypass Cloudflare \"DDoS protection\"/\"I'm under attack\" mode, whatever method is                    |\n| [MyDramaList](https://mydramalist.com)       | United States†       | English                                             | Drama                        |                           -                            |     🔔     |    `SCRAPE`     |    -    |    -    |    -    |                                                                                       |\n| [Nautiljon](https://nautiljon.com)           | France               | French                                              | Anime, Manga, Drama          |                           -                            |     🚫     |    `SCRAPE`     |    -    |    -    |    -    | Cannot bypass Cloudflare \"DDoS protection\"/\"I'm under attack\" mode                    |\n| [The Movie Database](https://themoviedb.org) | United States        | English                                             | Movie, TV Show               |                           -                            |     🔔     |      `API`      |    -    |    -    |    -    |                                                                                       |\n\n\u003c!-- omit in toc --\u003e\n### Notes\n\nAll column header with `?` in the end means that the site may or may not require\nit.\n\n* †: Based on IP or ICANN Domain Lookup; as the site did not write contact\n  address on their terms of services and privacy policy, or does not have both.\n* \\* FOSS: Free and Open Source Software\n* \\* UA: User Agent\n* \\* PAT: Personal Access Token\n* `Method` Legends:\n  * `API`: Uses official API from the site; Python/PowerShell module also fall\n    in this category if it uses official endpoint\n  * `3PA`: Uses 3rd party API from other site.\n  * `COOKIE`: Uses official (undocumented) API from the site, and cookie may\n    required to be used as authentication (not to be confused with `PAT`)\n  * `SCRAPE`: Scrapes user's lists directly from HTML if the site does not have\n    API endpoint, uses Python.\n* `Supported` Legends:\n  * ✅ : Available\n  * 🚫 : Not Available\n  * 🔔 : Planned\n  * ⌛ : In Development\n  * 💻 : Technical difficulty, usually due to pagination or need to scrape\n    XML/HTML table and does not have capability to do so.\n\n## Files Generated and Importability\n\n\u003e [!NOTE]\n\u003e\n\u003e For better readability, any sites that is does not have capability are marked\n\u003e with `-` (dash).\n\n| Site Name    | File Saved As                       | MALXML Support | Can Be Imported Back? | Description                                                                                                                 |\n| ------------ | ----------------------------------- | :------------: | :-------------------: | --------------------------------------------------------------------------------------------------------------------------- |\n| AniList      | `.json`, **`.xml`**                 |      Yes       |          Yes          | You need to use [Automail] to import back to AniList in JSON. XML can be used for AniList, MyAnimeList, or other            |\n| Anime-Planet | **`.xml`**                          |      Yes       |        Limited        | Backup file is formatted as MyAnimeList XML, some entry might not restored if MAL did not list it                           |\n| Annict       | `.json`                             |       -        |           -           | -                                                                                                                           |\n| Baka-Updates | `.tsv`                              |       -        |           -           | -                                                                                                                           |\n| Bangumi      | `.json`                             |       -        |           -           | -                                                                                                                           |\n| Kaize        | `.json`, **`.xml`**                 |      Yes       |          Yes          | `.xml` export only available for anime list, `.json` is not importable                                                      |\n| Kitsu        | **`.xml`**, `.json`                 |      Yes       |          Yes          | Only `.xml` can be imported back to MyAnimeList or other                                                                    |\n| MangaDex     | `.json`, `.yaml`, **`.xml`**        |      Yes       |           -           | Only `.xml` can be imported back to MyAnimeList or other                                                                    |\n| MyAnimeList  | **`.xml`**                          |      Yes       |          Yes          | You can reimport back to MyAnimeList                                                                                        |\n| Notify.moe   | `.json`, `.csv`, `.txt`, **`.xml`** |      Yes       |        Limited        | Only `.xml` can be imported back to MyAnimeList or other. Reimporting requires MAL, Kitsu, or AL account                    |\n| Otak Otaku   | `.json`, **`.xml`**                 |      Yes       |          Yes          | To reimport back to Otak Otaku, archive manually `.xml` as `.gz`, plain `.xml` only can be imported to MyAnimeList or other |\n| Shikimori    | `.json`, **`.xml`**                 |      Yes       |          Yes          | You can reimport back to Shikimori using both formats or import to MyAnimeList and other sites using XML                    |\n| SIMKL        | `.json`, `.zip`, `.csv`, **`.xml`** |      Yes       |          Yes          | Use https://simkl.com/apps/import/json/ and upload ZIP file to import back. `.csv` can be imported on other sites           |\n| Trakt        | `.json`                             |       -        |           -           | -                                                                                                                           |\n| VNDB         | `.json`, `.xml`                     |       -        |           -           | **Export as `.json` only for manual/local backup**, GitHub Actions can not invoke the request due to unknown error          |\n\n* **MALXML** in this table refers to a XML format used by MyAnimeList, and is\n  used by some sites to import/export data.\n  * Please to check import feature availability on each site. We can not\n    guarantee if the site supports MALXML format by default.\n\n## Features\n\n* [x] Cross-compatible for Windows, Linux, and macOS\n* [x] Backup anime/manga list from supported sites\n* [x] Backup anime/manga list as MAL XML format, if supported\n* [x] Built-in Environment file generator if `.env` file is not found\n* [x] Automatically backup by schedule (only for automated method: GitHub Actions)\n* [x] Automatically update the script weekly (only for automated method: GitHub Actions)\n* [x] Configurable backup and update schedule (only for automated method: GitHub\n  Actions)\n* [x] Save snapshots (profile, lists, statistics) of supported sites using\n  [Wayback Machine](https://archive.org/web/).\n* [ ] Global statistic for all sites you have backup\n\n### Wayback Machine Snapshot\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This method is **very slow** and might take hours to finish. Use with care.\n\u003e Recommended to run this only on your local machine.\n\nThis repo supports snapshotting your profile, lists, and even statistics of your\nmedia progress in supported sites using Internet Archive's Wayback Machine,\nthanks to [waybackpy](https://github.com/akamhy/waybackpy).\n\nBy enabling the snapshot support by changing value `WAYBACK_ENABLE` to `True`\nmeans your profile from all snapshot-supported sites must be visible to public.\n\n| Site Name    | Supported? | Notes                   | Coverage                                                 |\n| ------------ | :--------: | ----------------------- | -------------------------------------------------------- |\n| AniList      |     -      | Page was returned blank | -                                                        |\n| Anime-Planet |    Yes     | -                       | Profile, anime, manga                                    |\n| Annict       |    Yes     | -                       | Profile, anime                                           |\n| Bangumi      |    Yes     | -                       | Profile, anime, manga, game, drama                       |\n| Kaize        |    Yes     | -                       | Profile, anime, manga, stats, KP, badges                 |\n| Kitsu        |    Yes     | -                       | Profile, anime, manga                                    |\n| MangaDex     |     -      | User profile is private | -                                                        |\n| MangaUpdates |    Yes     | -                       | Profile                                                  |\n| MyAnimeList  |    Yes     | -                       | Profile, anime, manga. history                           |\n| Notify.moe   |    Yes     | -                       | Profile, anime                                           |\n| Otak Otaku   |    Yes     | -                       | Profile                                                  |\n| Shikimori    |    Yes     | -                       | Profile, anime, manga, achievements                      |\n| SIMKL        |    Yes     | -                       | Profile, anime, TV, movies, stats                        |\n| Trakt        |    Yes     | -                       | Profile, stats, history, progress, collection, watchlist |\n| VNDB         |    Yes     | -                       | Profile, games, wishlist                                 |\n\nYou also can contribute to Internet Archive's Wayback Machine to snapshot\nhomepage of supported sites on this repo by modifying `WAYBACK_SNAPMAINSITE`\nvariable on `.env` file to `True`.\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your\nlocal machine or using GitHub Actions.\n\n### Prerequisites\n\n#### Required softwares/packages for locally run the script\n\nBefore starting the script, you need to install the following packages:\n\n* `curl` as fallback for several sites that requires cookies. Native method\n  using `Invoke-WebRequest` sometime failed to append cookies on requests.\n* `git`\n* PowerShell Core (`pwsh`) version \u003e= 7.0.0\n* `python` version \u003e= 3.7\n\nYou also need to fork the repository before cloning the repo to your local machine.\n\n#### Run the script by service worker (GitHub Actions)\n\n* Click following badge:\n  [![Deploy](https://img.shields.io/badge/github-deploy-gray?logo=github\u0026labelColor=black)](https://github.com/new?template_name=animeManga-autoBackup\u0026template_owner=bokusu)\n* Follow instructions on [# For GitHub Actions](#for-github-actions) to set the secrets.\n\n  \u003e [!WARNING]\n  \u003e\n  \u003e Do not ever modify [`.env.example`](.env.example) if you did not want your\n  \u003e password, username, secrets, etc revealed by public.\n* Follow instruction on [# On GitHub Actions](#on-github-actions) to\n  initialize/run GitHub Actions.\n\n### Setting Environment Variables\n\n#### Based on where you run\n\n##### For Local Machine\n\n###### Automated\n\n* Start `./script.ps1` as the script will run generator automatically if `.env`file can not be found.\n\n* Or, run the generator directly from working directory:\n\n  ```ps1\n  ./Modules/Environment-Generator.ps1\n  ```\n\n###### Manual\n\n1. Duplicate the `.env.example` file and rename to `.env` file.\n2. Follow the instructions in [# Variable Keys](#variable-keys) to set the variables.\n   * If you did not registered to some site, leave the value empty.\n\n##### For GitHub Actions\n\n\u003e [!NOTE]\n\u003e We recommend you to follow [# Automated](#automated) guide to ease the process. Then\n\u003e you can simply copy keys and values to your repo Settings \u003e Secrets \u003e Actions.\n\u003e\n\u003e Following steps will assume you know what you're doing and still prefer manual.\n\n1. Open repo settings.\n2. On the left sidebar, find \"**Secrets**\" and click **Actions**.\n3. Click \u003ckbd\u003eNew repository secret\u003c/kbd\u003e button.\n4. Follow the instructions in [# Variables Keys](#variable-keys) to set the\n   variables.\n   * The text on `code block` in the instruction mean a name, and Value is\n     the key/cookie.\n   * Repeat this step for all the variables listed in the instruction.\n   * If you did not registered to some site, leave the value empty.\n\n## Variable Keys\n\n### AniList\n\n**Website**: https://anilist.co\n\n| Variable Name           | Description                                                                                                                                     | Value Type                           | Example                                    |\n| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------ |\n| `ANILIST_USERNAME`      | AniList username                                                                                                                                | String                               | `nattadasu`                                |\n| `ANILIST_CLIENT_ID`     | AniList Client ID for API access.\u003cbr\u003eYou can generate one from your account via [Developer Settings](https://anilist.co/settings/developer)     | Integer                              | `1234`                                     |\n| `ANILIST_CLIENT_SECRET` | AniList Client Secret for API access.\u003cbr\u003eYou can generate one from your account via [Developer Settings](https://anilist.co/settings/developer) | String, 40 characters case sensitive | `AB12cd34EF56gh78IJ90kl12MN34op56QR78st90` |\n| `ANILIST_REDIRECT_URI`  | AniList Redirect URI for API access.\u003cbr\u003eMust be `https://anilist.co/api/v2/oauth/pin`                                                           | String, URI                          | `https://anilist.co/api/v2/oauth/pin`      |\n| `ANILIST_ACCESS_TOKEN`  | AniList Access Token to your account.\u003cbr\u003eMust be generated by [`./Modules/Get-AniListAuth.ps1`](./Modules/Get-AniListAuth.ps1)                  | String, JWT format                   | `eyJ0...`                                  |\n| `ANILIST_OAUTH_REFRESH` | AniList account refresh token\u003cbr\u003eMust be generated by [`./Modules/Get-AniListAuth.ps1`](./Modules/Get-AniListAuth.ps1)                          | String                               | `def...`                                   |\n| `ANILIST_OAUTH_EXPIRES` | AniList account refresh token expiration time\u003cbr\u003eMust be generated by [`./Modules/Get-AniListAuth.ps1`](./Modules/Get-AniListAuth.ps1)          | Integer, Epoch/Unix timestamp        | `1234567890`                               |\n\n* To get `ANILIST_ACCESS_TOKEN`, `ANILIST_OAUTH_REFRESH` and\n  `ANILIST_OAUTH_EXPIRES`, you need to generate them first.\n\n  To generate them, please fill your `ANILIST_CLIENT_ID`,\n  `ANILIST_CLIENT_SECRET` and `ANILIST_REDIRECT_URI` in your ENV file and\n  init/run [`./Modules/Get-AniListAuth.ps1`](./Modules/Get-AniListAuth.ps1),\n  then follow the instructions.\n\n### Anime-Planet\n\n**Website**: https://anime-planet.com\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This method requires [# User Agent](#network) configured properly\n\n| Variable Name          | Description           | Value Type | Example     |\n| ---------------------- | --------------------- | ---------- | ----------- |\n| `ANIMEPLANET_USERNAME` | Anime-Planet username | String     | `nattadasu` |\n\n### Annict\n\n**Website**: https://annict.com | https://en.annict.com | https://annict.jp\n\n| Variable Name                  | Description                                                                                                   | Value Type | Example                         |\n| ------------------------------ | ------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------- |\n| `ANNICT_PERSONAL_ACCESS_TOKEN` | Annict Personal Access Token\u003cbr\u003eGet the token via [Application Settings](https://en.annict.com/settings/apps) | String     | `f0O84r_Ba37h15I50u111yT3xt...` |\n\n### Baka-Updates' Manga Section (MangaUpdates)\n\n**Website**: https://mangaupdates.com\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This method requires [# User Agent](#network) configured properly\n\n| Variable Name           | Description           | Value Type | Example                  |\n| ----------------------- | --------------------- | ---------- | ------------------------ |\n| `MANGAUPDATES_USERNAME` | Baka-Updates username | String     | `nattadasu`              |\n| `MANGAUPDATES_PASSWORD` | Baka-Updates password | String     | `5up3rS3Cure_-_P@sSwOrd` |\n\n### Bangumi\n\n**Website**: https://bgm.tv\n\n| Variable Name                   | Description                                                                                                                                                                    | Value Type | Example                        |\n| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | ------------------------------ |\n| `BANGUMI_PERSONAL_ACCESS_TOKEN` | Bangumi Personal Access Token\u003cbr\u003eToken must be valid for 1 year (365天) maximum. Generate by [Token Generator](https://next.bgm.tv/demo/access-token) and click “查看所有令牌” | String     | `f0O84rBa37h15I50u111yT3xt...` |\n| `BANGUMI_PAT_EXPIRY`            | Bangumi Personal Access Token expiry date in `yyyy-MM-dd` format                                                                                                               | String     | `2021-12-31`                   |\n| `BANGUMI_USERNAME`              | Bangumi username                                                                                                                                                               | String     | `nattadasu`                    |\n\n### Kaize.io\n\n**Website**: https://kaize.io\n\n| Variable Name    | Description       | Value Type | Example     |\n| ---------------- | ----------------- | ---------- | ----------- |\n| `KAIZE_USERNAME` | Kaize.io username | String     | `nattadasu` |\n\n* Username can be obtained from the URL of your profile page.\n\n  Example:\n\n  ```text\n  https://kaize.io/user/username\n                        ^^^^^^^^\n  ```\n\n### Kitsu\n\n**Website**: https://kitsu.app\n\n| Variable Name    | Description    | Value Type | Example                  |\n| ---------------- | -------------- | ---------- | ------------------------ |\n| `KITSU_EMAIL`    | Kitsu email    | String     | `hello@nattadasu.my.id`  |\n| `KITSU_PASSWORD` | Kitsu password | String     | `5up3rS3Cure_-_P@sSwOrd` |\n\n### MangaDex\n\n**Website**: https://mangadex.org\n\n\u003e [!WARNING]\n\u003e\n\u003e This method (login via \u003cu\u003eraw password\u003c/u\u003e) would be deprecated in future!\n\u003e There is no ETA to implement OAuth2 using OpenID.\n\u003e See more regarding to the issue at [MangaDex Announcement Discord Server (#api-changelog)](https://discord.com/channels/833598287574990850/850131706022461440/1050086432011731034).\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e 2FA-enabled account is not supported!\n\n| Variable Name       | Description       | Value Type | Example                  |\n| ------------------- | ----------------- | ---------- | ------------------------ |\n| `MANGADEX_USERNAME` | MangaDex username | String     | `nattadasu`              |\n| `MANGADEX_PASSWORD` | MangaDex password | String     | `5up3rS3Cure_-_P@sSwOrd` |\n\n### MyAnimeList\n\n**Website**: https://myanimelist.net\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This method requires [# User Agent](#network) configured properly\n\n| Variable Name  | Description          | Value Type | Example     |\n| -------------- | -------------------- | ---------- | ----------- |\n| `MAL_USERNAME` | MyAnimeList username | String     | `nattadasu` |\n\n### Notify.moe\n\n**Website**: https://notify.moe\n\n| Variable Name        | Description                                        | Value Type               | Example     |\n| -------------------- | -------------------------------------------------- | ------------------------ | ----------- |\n| `NOTIFYMOE_NICKNAME` | Notify nickname/username, must be upper-first case | String, Upper-first case | `Nattadasu` |\n\n### Otak Otaku\n\n**Website**: https://otakotaku.com\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This method requires [# User Agent](#network) configured properly\n\n| Variable Name        | Description         | Value Type | Example     |\n| -------------------- | ------------------- | ---------- | ----------- |\n| `OTAKOTAKU_USERNAME` | Otak Otaku username | String     | `nattadasu` |\n\n### SIMKL\n\n**Website**: https://simkl.com\n\n| Variable Name        | Description                                                                                                                                      | Value Type            | Example                                                            |\n| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------- | ------------------------------------------------------------------ |\n| `SIMKL_CLIENT_ID`    | SIMKL Client ID, get it from [SIMKL Developer Settings](https://simkl.com/settings/developer/), with redirection URI `urn:ietf:wg:oauth:2.0:oob` | String, 64 characters | `AB12cd34EF56gh78IJ90kl12MN34op56QR78st90UV12wx34YZ56ab78cd90ef12` |\n| `SIMKL_ACCESS_TOKEN` | SIMKL access token, `SIMKL_CLIENT_ID` must be filled, and run [`./Get-SimklAuth.ps1`](./Modules/Get-SimklAuth.ps1) to generate                   | String, 64 characters | `AB12cd34EF56gh78IJ90kl12MN34op56QR78st90UV12wx34YZ56ab78cd90ef12` |\n\n### Shikimori\n\n**Website**: https://shikimori.one\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This method requires [# User Agent](#network) configured properly\n\n| Variable Name             | Description                                           | Value Type          | Example                 |\n| ------------------------- | ----------------------------------------------------- | ------------------- | ----------------------- |\n| `SHIKIMORI_USERNAME`      | Shikimori username                                    | String              | `nattadasu`             |\n| `SHIKIMORI_KAWAI_SESSION` | Shikimori session cookie under `_kawaii_session` name | String, URL encoded | `ABCD%3F51gsj021%20...` |\n\n### Trakt\n\n**Website**: https://trakt.tv\n\n| Variable Name         | Description                                                                                                                                                               | Value Type                    | Example                                                            |\n| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | ------------------------------------------------------------------ |\n| `TRAKT_USERNAME`      | Trakt username                                                                                                                                                            | String                        | `nattadasu`                                                        |\n| `TRAKT_CLIENT_ID`     | Trakt Client ID\u003cbr\u003eTo generate, go to [Trakt](https://trakt.tv/oauth/applications) and click \"Create New Application\". Set `urn:ietf:wg:oauth:2.0:oob` as `Redirect URIs` | String, 64 characters         | `AB12cd34EF56gh78IJ90kl12MN34op56QR78st90UV12wx34YZ56ab78cd90ef12` |\n| `TRAKT_CLIENT_SECRET` | Trakt Client Secret                                                                                                                                                       | String, 64 characters         | `AB12cd34EF56gh78IJ90kl12MN34op56QR78st90UV12wx34YZ56ab78cd90ef12` |\n| `TRAKT_OAUTH_EXPIRY`  | Trakt OAuth expiry generated by `traktexport` Python module                                                                                                               | Integer, Epoch/Unix timestamp | `1234567890`                                                       |\n| `TRAKT_OAUTH_REFRESH` | Trakt OAuth refresh token generated by `traktexport` Python module                                                                                                        | String, 64 characters         | `AB12cd34EF56gh78IJ90kl12MN34op56QR78st90UV12wx34YZ56ab78cd90ef12` |\n| `TRAKT_OAUTH_TOKEN`   | Trakt OAuth token generated by `traktexport` Python module                                                                                                                | String, 64 characters         | `AB12cd34EF56gh78IJ90kl12MN34op56QR78st90UV12wx34YZ56ab78cd90ef12` |\n\n* To get `TRAKT_OAUTH_EXPIRY`, `TRAKT_OAUTH_REFRESH`, `TRAKT_OAUTH_TOKEN`, run\n  `traktexport auth \u003cusername\u003e` with `\u003cusername\u003e` is your Trakt username, if not\n  installed, run `pip install traktexport` from terminal.\n\n  Follow instructions from the module, pasting in your Client ID/Secret from the\n  Trakt dashboard, going to the link and pasting the generated pin back into the\n  terminal.\n\n  After init done, run `type .traktexport\\traktexport.json` in\n  `%USERPROFILE%`/`~` directory on Windows or\n  `cat ~/.local/share/traktexport.json` on POSIX system (Linux/macOS) to copy\n  the credential.\n\n### Visual Novel Database (VNDB)\n\n**Website**: https://vndb.org\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This method requires [# User Agent](#network) configured properly\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e `VNDB_TOKEN`/JSON backup is only work for manual/local backup, not for\n\u003e automatic backup via GitHub Actions due to unknown error.\n\n| Variable Name | Description                                                   | Value Type                  | Example                                          |\n| ------------- | ------------------------------------------------------------- | --------------------------- | ------------------------------------------------ |\n| `VNDB_UID`    | VNDB user ID                                                  | Integer                     | `u1234`                                          |\n| `VNDB_AUTH`   | VNDB session cookie, used to export XML                       | String, 40 characters + UID | `AB12cd34EF56gh78IJ90kl12MN34op56QR78st90.u1234` |\n| `VNDB_TOKEN`  | VNDB token for JSON export, only work for manual/local backup | String, 38 characters       | `abcd-3f9h1-jk1mn-0p9-r5tuv-wxyza-8cd3`          |\n\n* To get `VNDB_UID`, click on any links that stated with \"My\" or your username,\n  and copy the fragment of your URL that is started with letter \"u\" and\n  ID number after it.\n\n  For example:\n\n  ```py\n  https://vndb.org/u123456/ulist?vnlist=1\n                   ^^^^^^^\n  ```\n\n* To get `VNDB_AUTH`, tap F12 or \"Inspect Page\" when right-clicking the site,\n  open \"Storage\" tab, and click \"Cookies\" of the site.\n\n  Find a name of the cookie that starts with `vndb_auth` and copy the value.\n\n* To grab `VNDB_TOKEN`, Go to your profile, click on `Edit` tab, and click on\n  `Application` tab.\n\n  Click on `New token` button, set application name, check **Access to my list\n  (including private items)**, and click `Submit` button below.\n\n  Copy the token from textbox and paste it below.\n\n  The token should be 38 characters long.\n\n## Configurations\n\nThe script allows user modify additional configurations. The configurations\nsaved in `.env` file for local, and GitHub's Repository Secrets for automated\nprocess using GitHub Actions.\n\nBelow are the keys of allowed configurations\n\n### Network\n\n| Variable Name | Description                                                                                                                                                | Required for                                                                                                   | Value Type | Example |\n| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ---------- | ------- |\n| `USER_AGENT`  | Your user agent. \u003cbr\u003eYou can get your current browser user agent from [WhatIsMyBrowser.com](https://www.whatismybrowser.com/detect/what-is-my-user-agent/) | Anime-Planet, MangaUpdates, MyAnimeList, Otak Otaku, Shikimori, VNDB, `WAYBACK_ENABLE`, `WAYBACK_SNAPMAINSITE` | String     | `...`   |\n\n### Repository\n\n| Variable Name | Description                                                                  | Required for              | Value Type                | Default | Example   |\n| ------------- | ---------------------------------------------------------------------------- | ------------------------- | ------------------------- | ------- | --------- |\n| `MINIFY_JSON` | Minify all JSON, not intended for use on manual inspection or Git `diff`     | -                         | Boolean (`True`, `False`) | `False` | `False`   |\n| `REPO_PAT`    | GitHub Personal Access Token to update repo automatically via GitHub Actions | Automated: GitHub Actions | String                    | -       | `ghp_...` |\n\n* `REPO_PAT` is your GitHub Personal Access Token to update repo from\n  [Settings / Developer Settings / Personal Access Tokens](https://github.com/settings/tokens/new?scopes=workflow).\n  Enable `workflow` option and set expiration date more than a month.\n\n  However, you are not needed to add `REPO_PAT` in your Environment File if you\n  run the script locally.\n\n### Schedule\n\n| Variable Name | Description                                                            | Required for              | Value Type   | Default       | Example       |\n| ------------- | ---------------------------------------------------------------------- | ------------------------- | ------------ | ------------- | ------------- |\n| `BACKUP_FREQ` | Tell GitHub Actions to do backup at the time scheduled                 | Automated: GitHub Actions | String, CRON | `0 0 * * SUN` | `0 0 * * SUN` |\n| `UPDATE_FREQ` | Tell GitHub Actions to check and update scripts and several components | Automated: GitHub Actions | String, CRON | `0 0 * * *`   | `0 0 * * *`   |\n\n### Wayback Machine Integration\n\n| Variable Name          | Description                                                                                          | Required for | Value Type                | Default | Example |\n| ---------------------- | ---------------------------------------------------------------------------------------------------- | ------------ | ------------------------- | ------- | ------- |\n| `WAYBACK_ENABLE`       | Enable Wayback Machine feature to snapshot the site you're backing up. `USER_AGENT` required         | -            | Boolean (`True`, `False`) | `False` | `False` |\n| `WAYBACK_SNAPMAINSITE` | Contribute Wayback Machine by snapshot the homepage of repo's supported sites. `USER_AGENT` required | -            | Boolean (`True`, `False`) | `False` | `False` |\n\n## Usage\n\n### On Local Machine\n\n1. Open Command Prompt/Terminal, type `pwsh`.\n2. Change directory to the directory where you cloned the project.\n3. Type `./script.ps1`, and let the script run by itself.\n\n### On GitHub Actions\n\n#### If the repo is forked\n\n1. Open Actions tab.\n2. Opt in the feature to enable.\n3. Done.\n\n#### If the repo is generated from template\n\n* Done. Basically, the Action is enabled by default.\n\n\u003e [!NOTE]\n\u003e\n\u003e The script will automatically run at 0:00 AM UTC every Sunday, or you can\n\u003e trigger manually from dispatch.\n\u003e\n\u003e You can change this behavior by modifying `BACKUP_FREQ` in environment.\n\n\u003c!-- Links --\u003e\n[Automail]: https://greasyfork.org/en/scripts/370473-automail\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbokusu%2FanimeManga-autoBackup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbokusu%2FanimeManga-autoBackup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbokusu%2FanimeManga-autoBackup/lists"}