SkillAgentSearch skills...

Animdl

A highly efficient, fast, powerful and light-weight anime downloader and streamer for your favorite anime.

Install / Use

/learn @justfoolingaround/Animdl
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<h1 align="center"><img src="https://capsule-render.vercel.app/api?type=soft&fontColor=703ee5&text=justfoolingaround/animdl&height=150&fontSize=60&desc=Ridiculously%20efficient,%20fast%20and%20light-weight.&descAlignY=75&descAlign=60&color=00000000&animation=twinkling"></h1> <p align="center"><sup>A highly efficient, powerful and fast anime scraper.</sup></p> <p align="center"> <img src="./animdl_demo.gif"></p>

Overview

Installation

This project can be installed on to your device via different mechanisms, these mechanisms are listed below in the order of ease.

  1. PIP Installs Packages aka PIP Installation

    pip install animdl
    
  2. Installation from source

    First ensure Poetry is installed.

    Then run the following command:

    git clone https://www.github.com/justfoolingaround/animdl.git \
    && cd animdl \
    && poetry build \
    && pip install animdl \
    && cd ..
    

Support

You can contact the developer directly via this email. However, the most recommended way is to head to the discord server.

<p align="center"> <a href="https://discord.gg/gaX2Snst2j"> <img src="https://invidget.switchblade.xyz/gaX2Snst2j"> </a> </p>

If you run into issues or want to request a new feature, you are encouraged to make a GitHub issue, won't bite you, trust me.

Usage

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.

The stream option is disabled automatically if the project cannot find any of the supported streamers.

stream / download / grab

These commands are the main set of command in the project. All of them scrape the target site, the only difference is how it is used.

  • The stream option tosses the stream url to a player so that you can seamlessly binge your anime.

    • Streaming supports Discord Rich Presence with pypresence.
  • The download option downloads the anime to your local machine.

    • Downloading is done in the directory where you run the project.
    • -d flag can be used to specify a download folder as well.
    • Internet Download Manager is supported and can be used via --idm flag. This downloader cannot download HLS streams.
    • The project cannot modify the content type. That means, videos in the ts format need to be converted to other formats externally post download.
    • The downloading process cannot be controlled.
      • If download speed fluctuates, it is a server-side problem. The project cannot "fix" it.
      • If the download is slow, it is based on the server's upload speed. The project cannot "fix" it. Speedtests are not reliable and their results will not correspond to the download speeds obtained through the project.
    • The project utilises the fastest and the most straight-forward way to download, there is no further optimisation, period.
  • The grab option simply streams the stream url to the stdout stream.

    • This is useful for external usage and testing.
animdl stream "One Piece" 
<p align="center"> <sub> Providers can be specified by using provider prefix, <code>9anime:One Piece</code>, will use the 9Anime provider. </sub></p> <p align="center"> <sub> You can specify direct urls to the provider; the project will automatically detect the provider and continue scraping. This method ignores searching.<sub></p>

-r / --range argument

This argument is shared by stream, download and grab, it can be used to hand over custom ranges for selecting episodes.

  • This argument constructs a check for the episodes, hence, will not throw error if the episode count does not meet the scraping count.
  • This argument can be used in reverse order, the constructer will automatically fix the order.
  • Range intersections will not cause issues.
  • 1 will be treated as a singular range from 1 to 1.
  • 1-2 will be treated as a range from 1 to 2.
  • 1-2,230-340 will be treated as two different checks. The first check will be from 1 to 2, the second from 230 to 340.
  • You can use any separators, the project will automatically parse your range string.

--index argument

This argument is shared by stream, download and grab, it can be used to automatically select the search result. The default argument for index is 1, that is, the first stream.

--index 2 will automatically select the second search result without prompt.

-s / --special argument

This argument is shared by stream and download, it can be used to hand over the latest episode of the anime by using -s latest. Similarly, the latest 2 episodes can be selected via latest-2.

  • This argument is compatible with -r, you will get the last episode of the range.

-q / --quality argument

This argument is incredibly powerful and can be used to select streams from their attributes.

  • 1080 will select the stream with the resolution of 1080.
  • 1080/worst will do the above but will also select the worst quality stream if that stream is not available.
  • best[title] will select the best stream that has the title attribute.
  • best[title=r'^DUB'] will select the stream with the title attribute that matches the regular expression. If r is not used, the expression will be treated as a literal string.
  • The normal integers can be substituted with best and worst for special parsing.
  • You need not mention the quality in the argument if you just want an attribute.

You can find out what attributes are available for each stream by using the grab command.

[
  {
    "stream_url": "https://yqwym.vizcloud.digital/simple/EqPFI_kQBAro1HhYl67rC8UuoVwHubb7CkJ7rqk+wYMnU94US2El/br/list.m3u8#.mp4",
    "headers": {
      "referer": "https://vizcloud.digital/embed/83P7OX0N8PLE"
    }
  },
  {
    "stream_url": "https://yqwym.vidstream.pro/EqPVIPsMWl322yVezviuGdNz9wsVp_2ySFow5Od52MBlQ9QQG34s9aQ0yhbkTfyI+tzdG4991O3X4fVqACOikmeZRvMNGrBeQ5aivXxFIkYzNJElHAM1icyfowvCviiceQevRCxV9F7i7CIYt0hIz61716gsQxXskJ6eV4Gg4_OC/br/list.m3u8",
    "headers": {
      "referer": "https://vizcloud.digital/embed/83P7OX0N8PLE"
    }
  },
  {
    "stream_url": "https://yzqq.mcloud.to/12a3c523f910040ae8d4785897aeeb0bc52ea15c07b9b6fb0a427baea96ed0842f54d0184c6820e9f935c248a146eb8df28cc21a817ad2e8c0eefd680420a692659945f21618bd454698bcbf6e42394f3d4ee734180c3281ce9bb00fcaa2298e7913aa40036bbb0abaf07046a14442c2f32c9df66b1a/r/list.m3u8",
    "headers": {
      "referer": "https://mcloud.to/embed/k18xp6"
    }
  }
]

This is the prettified output of animdl grab "9anime:one piece", and the stream has headers and stream_url attributes.

If you feel that a particular stream is fast enough for you, -q [stream_url=r'.+mcloud\.to.+']<sub>(or equivalent, this is just for testing)</sub> will select that stream.

Conclusion

This project posses powerful commands and arguments to aid them, there are many arguments that aren't specified here but are available in the project. This is done because these commands are advanced usage commands which may just cause confusion. Feel free to ask about them.

Providers

Please head to animdl's official provider benchmarks.

The images in that repository are automatically updated every few hours, hence, please be aware that the developers already know what's broken.

Some providers may not work due to DDoS protection services. We try our best to fix what's fixable. There are plenty of alternatives even if one goes down in the project.

<p align="center"><b>The project contains providers that aren't mentioned here. This is intentional.</b></p>

Configurations

Configuration files can be globally or locally be specified.

You can use the ANIMDL_CONFIG environment variable to specify a configuration file on a global level.

Else, a file with the name animdl_config.yml in the working directory will be used if available.

Futhermore, the configuration files can be globally placed at:

  • Windows:
    • %USERPROFILE%/.animdl/config.yml
  • Anything else:
    • $HOME/.config/animdl/config.yml

Only a singular configuration file in t

View on GitHub
GitHub Stars1.5k
CategoryDevelopment
Updated1d ago
Forks111

Languages

Python

Security Score

100/100

Audited on Apr 4, 2026

No findings