Installation of animdl can be done using:
python -m pip install git+https://www.github.com/justfoolingaround/animdl
Note that you need to have git installed, else, you would need to download the repository and then, use:
python -m pip install .
Support: Python 3.6 and higher
Installing mpv
- The easiest way to install mpv is by using chocolatey package manager, it's an amazing tool can that be installed by following their official documentation.
- After chocolatey is installed,
mpv
can be installed through a console window (For example: cmd) with an admininstrator priviledge by the command:choco install mpv
.
- For users using a Debian-based distro,
mpv
can be installed usingsudo apt install mpv
. - For users using an Arch-based distro,
mpv
can be installed usingsudo pacman -S mpv
.
mpv
can be installed usingbrew install mpv
.
- Abuses the developer's knowledge of internal streaming mechanisms in various different sites to hunt down high quality stream links.
- Doesn't make a single unnecessary request; the official site may make 1k requests, this tool makes 3~5.
- Doesn't use any heavy dependencies such as Selenium or Javascript Evaluators.
- Effectively bypasses DRMs in several streaming sites.
- Integrates powerful, fast and efficient internal HLS downloader.
- Only tool in existence to bypass 9Anime's cloudflare protection.
- Operates with full efficiency and speed by using Python's generator functions to their full capacity.
- Supports downloading with Internet Download Manager optionally.
- Supports optional downloading with
ffmpeg
(see Using ffmpeg). - Supports streaming with
mpv
,iina
andvlc
(see Streaming)
Usage: animdl [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
download Download your favorite anime by query.
grab Stream the stream links to the stdout stream for external usage.
schedule Know which animes are going over the air when.
search Search for an anime in the provider.
stream Stream your favorite anime by query.
test Test the scrapability power.
Examples:
Streaming One Piece's episode 1 on AnimePahe by placing a search forehand:
-
animdl stream "one piece" -r 1
Streaming One Piece's episode 1 on AnimeOut by placing a search forehand:
-
animdl stream "animeout:one piece" -r 1
Streaming One Piece's episode 1 on AnimeOut directly:
-
animdl stream "https://www.animeout.xyz/download-one-piece-episodes-latest/" -r 1
Downloading and grabbing is the same as the examples, except the download
and the grab
command should be used.
Note: Downloading will take place in the working directory of this project!
-r
is a command created to select ranges.
1-10
will select from 1 to 10, 10-
will select everything after 10 and -10
will select everything before 10.
Instead of -
, :
and .
will also work.
For example:
20 12 10-3 40-50
will select episodes from 3 to 10 (inclusive), 12, 20 and from 40 to 50 (inclusive).
Website | Searcher Prefix | Available Qualities | Status / Elapsed Time | Content Extension |
---|---|---|---|---|
9Anime | 9anime |
720p, 1080p | ![]() |
MP4 / TS |
AllAnime | allanime |
720p, 1080p | ![]() |
MP4 / TS |
AnimePahe | animepahe |
720p, 1080p | ![]() |
MP4 |
AnimeOut | animeout |
720p, 1080p | ![]() |
MKV |
Animixplay | animixplay |
480p, 720p, 1080p | ![]() |
MP4 / TS |
Animtime | No searcher included | 720p, 1080p | ![]() |
MP4 |
Crunchyroll | crunchyroll |
All | ![]() |
TS |
Kawaiifu (NSFW) | kawaiifu |
720p, 1080p | ![]() |
MP4 |
GogoAnime | gogoanime |
480p, 720p, 1080p | ![]() |
MP4 / TS |
Nyaa | nyaa |
All | - |
Torrent |
Haho (NSFW) | haho |
720p, 1080p | ![]() |
MP4 |
Tenshi | tenshi |
720p, 1080p | ![]() |
MP4 |
Twist | twist |
720p, 1080p | ![]() |
MP4 |
Zoro | zoro |
720p, 1080p | ![]() |
MP4 |
Currently, there are no plans to add more sites as AnimDL supports top sites that stream anime. However, this does not mean that this is it for the sites. You can raise as many issues as possible for requesting a new site.
Note: Your request may be denied in case of Cloudflare protections and powerful anti-bot scripts in the site.
Streaming will require either mpv
or vlc
. You will require these to be in your PATH
, if not, simply make a animdl_config.yml
on the working directory and add these configurations appropriately:
players:
mpv:
executable: "mpv"
opts: []
vlc:
executable: "vlc"
opts: []
iina:
executable: "iina-cli"
opts: []
celluloid:
executable: "celluloid"
opts: []
ffmpeg
can be used with animdl using the config file.
use_ffmpeg: true
This config will make the downloader use ffmpeg for HLS streams.
ffmpeg is set as optional because:
- It is ridiculously slow, the internal HLS downloader has higher speeds.
- It makes this project partially heavy-weighted.
stderr
stream reading for cases such asmpd
when using tqdm did not work.
The disclaimer of this project can be found here.