Anime auto-downloader tool using anime-sama website.
Important
This tool does not contains copyrighted content nor endorse Copyright infringement. Use it at your own risks.
Important
This project is still in WIP and will change a lot and some features might be broken at this time. We plan to release tag versions for better continuity.
- node >= v22
- axios - Node HTTP requests
- cli-progress - bar progress for downloads
- inquirer - User inputs handle
- puppeteer - Simulates web browsers
- ts-log - Logs
git clone https://github.com/Fire0902/anime-sama-downloader.gitnpm installAnd the project is now ready to use.
Launch a terminal, then start the main interface:
cd ~/path/to/project
npm run start:cliYou can also start a automatic download by creating a JSON file at ~/path/to/project/json/anime.json
Name it 'animes.json' or it won't work.
Here is an example of a file:
{
"One Piece": {
"_comment": "url is optionnal it's only use to make sure the app find the good one",
"url": "https://anime-sama.org/catalogue/one-piece/",
"_comment1": "if seasons = ALL episodes is useless else episodes is required else seasons format is 1-N | 1,5,7 | 6, just in case first season is 1 not 0",
"seasons": "1-4",
"_comment2": "episodes format is 1-N | 1 | 1,5,7,19 | ALL",
"episodes": "ALL"
},
"Vinland Saga": {
"url": "",
"seasons": "ALL",
"episodes": ""
},
"One Punch Man": {
"url": "",
"seasons": "3",
"episodes": "ALL"
}
}A JSON file template is also available at ~/path/to/project/json/anime.json.tpl.
To start auto-download:
cd ~/path/to/project
npm start:downloadHere are the main things we plan to do:
-
Main goal: Implements an api to download from HTTP request with JSON
-
Show Mo instead of timestamp download progression
-
Add self host web version to make the program user friendly
-
Make a Jellyfin extension to communicate with api (not a priority)
-
Use search methods from Inquirer lib for dynamic anime and season search during CLI inputs.
-
Implements logger for engine and CLI.
-
Implements usage of SBoudrias/Inquirer.js lib for better CLI inputs.
-
Make the program with waitForSelector from the library puppeteer
-
Refactor anime download implementation.
-
Convert engine and CLI from js to typescript.
-
Reorganise project as cli, engine and config sections
-
Remove duplicate function in FileReader and UrlBuilder
- Fix the bug that make FileReader infinitly \n without any reason (I suppose it's due to cli-progress unclose bar)