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
Certified Patch Robustness via Smoothed Vision Transformers

Certified Patch Robustness via Smoothed Vision Transformers This repository contains the code for replicating the results of our paper: Certified Patc

Madry Lab 35 Dec 14, 2022
This is an unofficial PyTorch implementation of Meta Pseudo Labels

This is an unofficial PyTorch implementation of Meta Pseudo Labels. The official Tensorflow implementation is here.

Jungdae Kim 320 Jan 08, 2023
From a body shape, infer the anatomic skeleton.

OSSO: Obtaining Skeletal Shape from Outside (CVPR 2022) This repository contains the official implementation of the skeleton inference from: OSSO: Obt

Marilyn Keller 166 Dec 28, 2022
Transformer in Vision

Transformer-in-Vision Recent Transformer-based CV and related works. Welcome to comment/contribute! Keep updated. Resource SCENIC: A JAX Library for C

Yong-Lu Li 1.1k Dec 30, 2022
Simple and Robust Loss Design for Multi-Label Learning with Missing Labels

Simple and Robust Loss Design for Multi-Label Learning with Missing Labels Official PyTorch Implementation of the paper Simple and Robust Loss Design

Xinyu Huang 28 Oct 27, 2022
Bottom-up Human Pose Estimation

Introduction This is the official code of Rethinking the Heatmap Regression for Bottom-up Human Pose Estimation. This paper has been accepted to CVPR2

108 Dec 01, 2022
Code for Temporally Abstract Partial Models

Code for Temporally Abstract Partial Models Accompanies the code for the experimental section of the paper: Temporally Abstract Partial Models, Khetar

DeepMind 19 Jul 13, 2022
Instant Real-Time Example-Based Style Transfer to Facial Videos

FaceBlit: Instant Real-Time Example-Based Style Transfer to Facial Videos The official implementation of FaceBlit: Instant Real-Time Example-Based Sty

Aneta Texler 131 Dec 19, 2022
Free-duolingo-plus - Duolingo account creator that uses your invite code to get you free duolingo plus

free-duolingo-plus duolingo account creator that uses your invite code to get yo

1 Jan 06, 2022
SmoothGrad implementation in PyTorch

SmoothGrad implementation in PyTorch PyTorch implementation of SmoothGrad: removing noise by adding noise. Vanilla Gradients SmoothGrad Guided backpro

SSKH 143 Jan 05, 2023
Storage-optimizer - Identify potintial optimizations on the cloud storage accounts

Storage Optimizer Identify potintial optimizations on the cloud storage accounts

Zaher Mousa 1 Feb 13, 2022
Mmdetection3d Noted - MMDetection3D is an open source object detection toolbox based on PyTorch

MMDetection3D is an open source object detection toolbox based on PyTorch

Jiangjingwen 13 Jan 06, 2023
Satellite labelling tool for manual labelling of storm top features such as overshooting tops, above-anvil plumes, cold U/Vs, rings etc.

Satellite labelling tool About this app A tool for manual labelling of storm top features such as overshooting tops, above-anvil plumes, cold U/Vs, ri

Czech Hydrometeorological Institute - Satellite Department 10 Sep 14, 2022
A Closer Look at Invalid Action Masking in Policy Gradient Algorithms

A Closer Look at Invalid Action Masking in Policy Gradient Algorithms This repo contains the source code to reproduce the results in the paper A Close

Costa Huang 73 Dec 24, 2022
LTR_CrossEncoder: Legal Text Retrieval Zalo AI Challenge 2021

LTR_CrossEncoder: Legal Text Retrieval Zalo AI Challenge 2021 We propose a cross encoder model (LTR_CrossEncoder) for information retrieval, re-retrie

Xuan Hieu Duong 7 Jan 12, 2022
High level network definitions with pre-trained weights in TensorFlow

TensorNets High level network definitions with pre-trained weights in TensorFlow (tested with 2.1.0 = TF = 1.4.0). Guiding principles Applicability.

Taehoon Lee 1k Dec 13, 2022
RNG-KBQA: Generation Augmented Iterative Ranking for Knowledge Base Question Answering

RNG-KBQA: Generation Augmented Iterative Ranking for Knowledge Base Question Answering Authors: Xi Ye, Semih Yavuz, Kazuma Hashimoto, Yingbo Zhou and

Salesforce 72 Dec 05, 2022
python library for invisible image watermark (blind image watermark)

invisible-watermark invisible-watermark is a python library and command line tool for creating invisible watermark over image.(aka. blink image waterm

Shield Mountain 572 Jan 07, 2023
Twin-deep neural network for semi-supervised learning of materials properties

Deep Semi-Supervised Teacher-Student Material Synthesizability Prediction Citation: Semi-supervised teacher-student deep neural network for materials

MLEG 3 Dec 14, 2022
Code release for ConvNeXt model

A ConvNet for the 2020s Official PyTorch implementation of ConvNeXt, from the following paper: A ConvNet for the 2020s. arXiv 2022. Zhuang Liu, Hanzi

Meta Research 4.6k Jan 08, 2023