A Python-based tool for downloading anime series from AnimeUnity, featuring progress tracking for each episode. It efficiently extracts video URLs and manages downloads.
- Downloads multiple episodes concurrently.
- Supports batch downloading via a list of URLs.
- Supports downloading a specified range of episodes.
- Supports custom download location.
- Tracks download progress with a progress bar.
- Automatically creates a directory structure for organized storage.
- Python 3
requests- for HTTP requestsBeautifulSoup(bs4) - for HTML parsingrich- for progress display in terminalfake_useragent- for generating fake user agents for web scrapinghttpx- for making asynchronous HTTP requests
Show directory structure
project-root/
├── helpers/
│ ├── crawlers/
│ │ ├── crawler.py # Module for crawling tasks
│ │ └── crawler_utils.py # Utilities for extracting media download links
│ ├── config.py # Manages constants and settings used across the project
│ ├── download_utils.py # Utilities for managing the download process
│ ├── file_utils.py # Utilities for managing file operations
│ ├── general_utils.py # Miscellaneous utility functions
│ └── progress_utils.py # Tools for progress tracking and reporting
├── anime_downloader.py # Module for downloading anime episodes
├── main.py # Main script to run the downloader
└── URLs.txt # Text file containing anime URLs
- Clone the repository:
git clone https://github.com/Lysagxra/AnimeUnityDownloader.git- Navigate to the project directory:
cd AnimeUnityDownloader- Install the required dependencies:
pip install -r requirements.txtTo download a single anime, you can use the anime_downloader.py script.
Run the script followed by the anime URL you want to download:
python3 anime_downloader.py <anime_url> [--start <start_episode>] [--end <end_episode>]<anime_url>: The URL of the anime series.--start <start_episode>: The starting episode number (optional).--end <end_episode>: The ending episode number (optional).
To download all episodes:
python3 anime_downloader.py https://www.animeunity.so/anime/1517-yuru-yuriTo download a specific range of episodes (e.g., episodes 5 to 10):
python3 anime_downloader.py https://www.animeunity.so/anime/1517-yuru-yuri --start 5 --end 10To download episodes starting from a specific episode:
python3 anime_downloader.py https://www.animeunity.so/anime/1517-yuru-yuri --start 5In this case, the script will download all episodes starting from the --start episode to the last episode.
To download episodes up to a certain episode:
python3 anime_downloader.py https://www.animeunity.so/anime/1517-yuru-yuri --end 10In this case, the script will download all episodes starting from the first episode to the --end episode.
- Create a
URLs.txtfile in the project root and list the anime URLs you want to download.
- Example of
URLs.txt:
https://www.animeunity.so/anime/1517-yuru-yuri
https://www.animeunity.so/anime/3871-chainsaw-man
https://www.animeunity.so/anime/2598-made-in-abyss
- Ensure that each URL is on its own line without any extra spaces.
- You can add as many URLs as you need, following the same format.
- Run the main script via the command line:
python3 main.pyIf the --custom-path <custom_path> argument is used, the downloaded files will be saved in <custom_path>/Downloads. Otherwise, the files will be saved in a Downloads folder created within the script's directory
python3 main.py --custom-path <custom_path>python3 main.py --custom-path /path/to/external/drive