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

Overview

AnimDL Cover

AnimDL - Download & Stream Your Favorite Anime

AnimDL is an incredibly powerful tool for downloading and streaming anime.

Core features

  • 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 AnimeFillerList so that the user can filter out any fillers from downloading or streaming.
  • 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 streaming with mpv, an incredibly efficient, fast and light-weight dependency.

Usage

animdl.py [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.       

Commands:
  continue  Continue your downloads or stream from where t'was left.
  download  Download your favorite anime by query.
  grab      Stream the stream links to the stdout stream for external usage.
  stream    Stream your favorite anime by query.

Examples:

  1. Streaming One Piece on 9Anime from episode 1 by placing a search forehand:
  • animdl.py stream -q "one piece" -s 1
    
  1. Streaming One Piece on 4Anime from episode 1 by placing a search forehand.
  • animdl.py stream -q "4anime:one piece" -s 1
    
  1. Streaming One Piece on 9Anime with anime url from episode 1.
  • animdl.py stream -q "https://9anime.to/watch/one-piece.ov8" -s 1
    
  1. Streaming with the setting of 3 with AnimeFillerList integration that filters out fillers.
  • animdl.py stream -q "https://9anime.to/watch/one-piece.ov8" -s 1 -fl "https://animefillerlist.com/shows/one-piece" --fillers
    
  1. Continuing a previous stream / download session without worrying about the command.
  • animdl.py continue
    
  1. Scraping the episode stream links of One Piece from 9Anime to stdout without downloading:
  • animdl.py grab -q "https://9anime.to/watch/one-piece.ov8" -s 1
    

Downloading is the same as the examples 1-4, except the download command is used.

Installation

Clone / download the repository and simply run the following command in the working directory:

pip install -r requirements.txt

Support: Python 3.6 and higher

Supported Sites

Website Searcher Prefix Available Qualities Status Content Fetch Speed
(Per Episode)
Content Extension
4Anime 4anime 720p, 1080p

1.66s

MP4
9Anime 9anime 720p, 1080p

3.27s

MP4 / TS
Anime1 anime1 480p, 720p

23.29s

MP4
AnimeFreak animefreak 720p, 1080p

Untested MP4
AnimePahe animepahe 720p, 1080p

4.15s

TS
Animixplay animix 480p, 720p, 1080p

4.17s

MP4 / TS
GogoAnime gogoanime 480p, 720p, 1080p

2.34s

MP4 / TS
Twist twist 720p, 1080p

2.96s

MP4

More sites?

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

Streaming needs an additional dependency known as mpv, you can download it from here.

If you're having issues with the installation of mpv, you can make an issue to recieve full help on its installation and usage.

Disclaimer

Downloading or streaming copyrighted materials might be illegal in your country.

Comments
  • A Standalone executable with automated installation script and enhancement

    A Standalone executable with automated installation script and enhancement

    Hello, Got an eye on your project and it's great,there is one problem you need to have python installed and lets be real not every one who watches anime, is a programmer or there can be some other problem.i had a little time to spare from my exams, so i created a standalone executable for your script using Nuitka(a python compiler).it converts all the constructs to c,c++ so there is a significant boost over cpython.also i created a batch script(animedl_install.bat) for installation that automatically copies all the files to C:\Program Data and adds the executable to PATH.i could have created a installer but that would have needed some modification to your animedl.py file and i was lazy for that(but if you need i can create one).so after installation you just need to open cmd and type animedl to get started.i have uploaded the zip over my mega account.one more thing ,i recommend you also having a interactive user interface,for example if user uses it from cmd with arguments then run it like its running now but if user runs the executable or python script without giving any argument(i.e grab,download) then run it in a interactive mode with a menu like in this repo or better.its a sorry state script (using curses programming in python) i wrote a while back.supports selecting options from keyboard keys(UP/DOWN) and also mouse support.i can help you with the interactive menu,that is if i get any time from my exams😅.also one more thing ,add versioning to your git repo

    i hope that you go with some of my recommendations regards,

    pr: enhancements request: feature 
    opened by Justaus3r 15
  • New Quality Links not Working After Fix.

    New Quality Links not Working After Fix.

    After improving the quality links. it's giving me 302 redirect to another URL.

    And after the redirect that URL is not working?

    That URL giving me 403 Error!

    Can you please help me figure it out :)

    opened by NavDevP 11
  • [Feature request] parser-friendly stdout

    [Feature request] parser-friendly stdout

    Hey,

    First - amazing work. I'm very impressed by the efficiency of animdl. I have a request, which I would have PR'd myself if only I knew Python, but I believe it's reasonable enough to still ask.

    I'm going to make a wrapper around animdl for my own usage, and I'd love to avoid having to parse the CLI output. I was thinking that, given a flag, something like --json, all the output could be just JSON.

    Ideally, commands like animdl test, animdl grab "one piece" or animdl grab https://9anime.to/watch/one-piece.ov8 would only output JSON, without color or formatting (though that last command is pretty close).

    To be clear, I can totally parse everything even now, I just think it'd be very nice to have a reliable way to do so.

    opened by innocenzi 11
  • .animdl(configuration file not found)

    .animdl(configuration file not found)

    I have submitted this issue to inform that i wasnt able to find the configuration file nor the .animdl in the location which was mentioned and i even tried searching for it but it says not found

    inquiry: cli inquiry: api inquiry: code reason 
    opened by ILARIO-KAGOO 10
  • too bleeding edge and no older version available

    too bleeding edge and no older version available

    I'm on debian, and you are using libraries that are too new for my system.

    You have simply a master branch, no tags, no releases.... There's no easy way to use an older version. You should at least have some tags to segment the history so that we can download older versions. You could also consider not using libraries that are too new.

    bug: site error 
    opened by pirate486743186 9
  • Animxplay mega source not scraped

    Animxplay mega source not scraped

    Describe the bug

    animxplay when an episode is uploaded like 30 mmiuntes ago the source will be mega example from website html is

    "6":"https://mega.nz/embed/WD4XFQDD#Utyvsx4AicLnEQ5AxAzlgiwqIKEJkD3d6ZfhY-PGs3A"
    

    and the scraper doesnt get a link for it

    Did the error occur in between an active task (download / stream / grab)? all of them

    Screenshots [Optional] image

    Additional information

    • v1.6.21
    • animixplay.to
    bug: site error 
    opened by zezo357 8
  • Quality strings: How to select quality?

    Quality strings: How to select quality?

    Can't select the resolution in gogoanime When I tried to download anime it's starts downloading in 360p. Any solution...? I used this animdl download "gogoanime:castlevania" -q "[quality='720']" -r 1 Please reply

    inquiry: cli 
    opened by Sunderlevi 8
  • How to prefer no/soft subtitles?

    How to prefer no/soft subtitles?

    How do I tell animdl to prefer no/soft subtitles?

    Background: I'd like to use animdl for my Japanese immersion learning and stream anime without any subtitles so I can inject my own Japanese subtitle files into MPV. I was planning to use zoro since I believe it was the only source available that provides videos that don't have the subtitles baked into them.

    I scanned over the code and it seems the intelliq.py file is responsible for parsing the quality string but I couldn't figure out how to deal with subtitles.

    Could you tell me if/how this can be done? Thanks in advance.

    opened by Munzu 8
  • How do you use --idm actually?

    How do you use --idm actually?

    I use --idm but it doesn't seem to do anything and continuing download as normal via cmd.

    Also, some episodes also being downloaded with {number}ts/s and at the end, it only downloaded like 360p.

    opened by ajam123 8
  • Broken on python 3.11

    Broken on python 3.11

    On python 3.11 the program is broken, I always get this error: Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "C:\Users\onepi\scoop\apps\python\current\Scripts\animdl.exe\__main__.py", line 4, in <module> File "C:\Users\onepi\scoop\apps\python\current\Lib\site-packages\animdl\__main__.py", line 8, in <module> from .core.cli.commands import download, grab, schedule, search, stream, update File "C:\Users\onepi\scoop\apps\python\current\Lib\site-packages\animdl\core\cli\commands\download.py", line 7, in <module> from ...codebase import providers, sanitize_filename File "C:\Users\onepi\scoop\apps\python\current\Lib\site-packages\animdl\core\codebase\__init__.py", line 1, in <module> from .downloader import * File "C:\Users\onepi\scoop\apps\python\current\Lib\site-packages\animdl\core\codebase\downloader\__init__.py", line 1, in <module> from .handle import handle_download, sanitize_filename File "C:\Users\onepi\scoop\apps\python\current\Lib\site-packages\animdl\core\codebase\downloader\handle.py", line 7, in <module> import regex File "C:\Users\onepi\scoop\apps\python\current\Lib\site-packages\regex\__init__.py", line 1, in <module> from .regex import * File "C:\Users\onepi\scoop\apps\python\current\Lib\site-packages\regex\regex.py", line 419, in <module> import regex._regex_core as _regex_core File "C:\Users\onepi\scoop\apps\python\current\Lib\site-packages\regex\_regex_core.py", line 21, in <module> import regex._regex as _regex ModuleNotFoundError: No module named 'regex._regex'

    bug: site error 
    opened by BloodZero0 7
  • [Inquiry] Download speeds and external download support.

    [Inquiry] Download speeds and external download support.

    1. Can we increase the download speed or not
    2. A friend of mine used this command on termux on his Android phone it works perfectly for him and he asked if there's another way to download the anime eternally after grabbing the downloading link for eg:Idm lite,UC Browser,chrome and etc (Android)
    opened by Sunderlevi 7
  • Site request: YugenAnime

    Site request: YugenAnime

    From maintainers: Both labels have been handed to this issue, remove the inapplicable one. Your title should answer at least 3 of 5W1H questions for fastest responses.

    Is your feature request related to a problem? Please describe.

    Since Animixplay is down, YugenAnime is recommended as a great Animixplay alternative that can also scrape gogo and vrv.

    Describe the solution you'd like

    Add YugenAnime

    Describe alternatives you've considered

    Additional context

    https://yugen.to/

    request: feature request: site 
    opened by rollingmoai 1
  • Provider

    Provider "allanime": Specify dub over sub?

    The inquiry

    Long story short: How do I specify to download a dubbed version instead of the subbed one? The README didn't seem to feature a sub/dub selector.

    Thanks! ^^

    inquiry: cli inquiry: api inquiry: code reason 
    opened by IngwiePhoenix 4
  • Network Issue on using animdl

    Network Issue on using animdl

    I have a propper network connection in my linux distro but whenever im running a query im always getting :

    animdl-http: ERROR] ConnectTimeout('timed out'), this issue originates due to connection issues on your or the server's side. Retry after troubleshooting connection issues on your system. NoneType: None Can you help me out?

    bug: site error 
    opened by Granted07 3
  • Celluloid still broken.

    Celluloid still broken.

    Describe the bug With default_player set to celluloid, streaming immediately fails with

    File "/usr/bin/animdl", line 33, in <module>
        sys.exit(load_entry_point('animdl==1.6.36', 'console_scripts', 'animdl')())
      File "/usr/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
        return self.main(*args, **kwargs)
      File "/usr/lib/python3.10/site-packages/click/core.py", line 1055, in main
        rv = self.invoke(ctx)
      File "/usr/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/usr/lib/python3.10/site-packages/click/core.py", line 760, in invoke
        return __callback(*args, **kwargs)
      File "/usr/lib/python3.10/site-packages/animdl/core/cli/helpers/logger.py", line 79, in __inner__
        return f(*args, **kwargs, log_file=log_file, log_level=log_level)
      File "/usr/lib/python3.10/site-packages/animdl/core/cli/helpers/banner.py", line 97, in __inner__
        return f(*args, log_level=log_level, log_file=log_file, **kwargs)
      File "/usr/lib/python3.10/site-packages/animdl/core/cli/commands/stream.py", line 145, in animdl_stream
        with streamer:
    AttributeError: __enter__
    
    bug: site error 
    opened by Ivordir 0
  • Using a different Provider Config

    Using a different Provider Config

    Apologies, but Im stupid. Everytime I try to set up the config, i keep getting errors in the Terminal and https://www.yamllint.com/ says its a valid yaml file but keep getting json errors. I tried the available directories for the config area as well. I basically just have "default_provider": "allanime" in it at the moment, removed the rest. Can someone tell me what im doing wrong pls XD (would be great to make an example config in the github so people know the basic layout) Terminal Response.txt

    inquiry: cli inquiry: api inquiry: code reason 
    opened by AppleCanon 5
  • MPC-HC as another player?

    MPC-HC as another player?

    From maintainers: Both labels have been handed to this issue, remove the inapplicable one. Your title should answer at least 3 of 5W1H questions for fastest responses.

    Is your feature request related to a problem? Please describe.

    So, I'm a person that doesn't really use VLC nor MPV, and until recent updates I've basically set VLC as MPC-HC.

    Describe the solution you'd like

    Dedicated support for MPC-HC, as it also allows streaming.

    Describe alternatives you've considered

    A way to use MPC-HC as another player alternative for streaming.

    Additional context

    It actually used to work, funnily enough.

    request: feature request: site 
    opened by RowanSkie 0
Releases(pre-release)
Owner
KR
Just another automation freak.
KR
AVD Quickstart Containerlab

AVD Quickstart Containerlab WARNING This repository is still under construction. It's fully functional, but has number of limitations. For example: RE

Carl Buchmann 3 Apr 10, 2022
Implementation of ViViT: A Video Vision Transformer

ViViT: A Video Vision Transformer Unofficial implementation of ViViT: A Video Vision Transformer. Notes: This is in WIP. Model 2 is implemented, Model

Rishikesh (ऋषिकेश) 297 Jan 06, 2023
A PyTorch implementation of SIN: Superpixel Interpolation Network

SIN: Superpixel Interpolation Network This is is a PyTorch implementation of the superpixel segmentation network introduced in our PRICAI-2021 paper:

6 Sep 28, 2022
Multi-tool reverse engineering collaboration solution.

CollaRE v0.3 Intorduction CollareRE is a tool for collaborative reverse engineering that aims to allow teams that do need to use more then one tool du

105 Nov 27, 2022
This is the code repository implementing the paper "TreePartNet: Neural Decomposition of Point Clouds for 3D Tree Reconstruction".

TreePartNet This is the code repository implementing the paper "TreePartNet: Neural Decomposition of Point Clouds for 3D Tree Reconstruction". Depende

刘彦超 34 Nov 30, 2022
The Generic Manipulation Driver Package - Implements a ROS Interface over the robotics toolbox for Python

Armer Driver Armer aims to provide an interface layer between the hardware drivers of a robotic arm giving the user control in several ways: Joint vel

QUT Centre for Robotics (QCR) 13 Nov 26, 2022
Local Similarity Pattern and Cost Self-Reassembling for Deep Stereo Matching Networks

Local Similarity Pattern and Cost Self-Reassembling for Deep Stereo Matching Networks Contributions A novel pairwise feature LSP to extract structural

31 Dec 06, 2022
Research code for the paper "How Good is Your Tokenizer? On the Monolingual Performance of Multilingual Language Models"

Introduction This repository contains research code for the ACL 2021 paper "How Good is Your Tokenizer? On the Monolingual Performance of Multilingual

AdapterHub 20 Aug 04, 2022
Generic template to bootstrap your PyTorch project with PyTorch Lightning, Hydra, W&B, and DVC.

NN Template Generic template to bootstrap your PyTorch project. Click on Use this Template and avoid writing boilerplate code for: PyTorch Lightning,

Luca Moschella 520 Dec 30, 2022
Automatically replace ONNX's RandomNormal node with Constant node.

onnx-remove-random-normal This is a script to replace RandomNormal node with Constant node. Example Imagine that we have something ONNX model like the

Masashi Shibata 1 Dec 11, 2021
Subpopulation detection in high-dimensional single-cell data

PhenoGraph for Python3 PhenoGraph is a clustering method designed for high-dimensional single-cell data. It works by creating a graph ("network") repr

Dana Pe'er Lab 42 Sep 05, 2022
Code for Fully Context-Aware Image Inpainting with a Learned Semantic Pyramid

SPN: Fully Context-Aware Image Inpainting with a Learned Semantic Pyramid Code for Fully Context-Aware Image Inpainting with a Learned Semantic Pyrami

12 Jun 27, 2022
This folder contains the python code of UR5E's advanced forward kinematics model.

This folder contains the python code of UR5E's advanced forward kinematics model. By entering the angle of the joint of UR5e, the detailed coordinates of up to 48 points around the robot arm can be c

Qiang Wang 4 Sep 17, 2022
Semantically Contrastive Learning for Low-light Image Enhancement

Semantically Contrastive Learning for Low-light Image Enhancement Here, we propose an effective semantically contrastive learning paradigm for Low-lig

48 Dec 16, 2022
Pytorch implementation of the paper DocEnTr: An End-to-End Document Image Enhancement Transformer.

DocEnTR Description Pytorch implementation of the paper DocEnTr: An End-to-End Document Image Enhancement Transformer. This model is implemented on to

Mohamed Ali Souibgui 74 Jan 07, 2023
Leveraging Two Types of Global Graph for Sequential Fashion Recommendation, ICMR 2021

This is the repo for the paper: Leveraging Two Types of Global Graph for Sequential Fashion Recommendation Requirements OS: Ubuntu 16.04 or higher ver

Yujuan Ding 10 Oct 10, 2022
This repository contains the official MATLAB implementation of the TDA method for reverse image filtering

ReverseFilter TDA This repository contains the official MATLAB implementation of the TDA method for reverse image filtering proposed in the paper: "Re

Fergaletto 2 Dec 13, 2021
MetaDrive: Composing Diverse Scenarios for Generalizable Reinforcement Learning

MetaDrive: Composing Diverse Driving Scenarios for Generalizable RL [ Documentation | Demo Video ] MetaDrive is a driving simulator with the following

DeciForce: Crossroads of Machine Perception and Autonomy 276 Jan 04, 2023
Pun Detection and Location

Pun Detection and Location “The Boating Store Had Its Best Sail Ever”: Pronunciation-attentive Contextualized Pun Recognition Yichao Zhou, Jyun-yu Jia

lawson 3 May 13, 2022
Multi-Task Deep Neural Networks for Natural Language Understanding

New Release We released Adversarial training for both LM pre-training/finetuning and f-divergence. Large-scale Adversarial training for LMs: ALUM code

Xiaodong 2.1k Dec 30, 2022