animdl

animdl

轻量级动漫视频抓取与流媒体播放工具

animdl是一款开源的轻量级动漫视频抓取工具,支持从多个在线网站搜索和获取动漫内容。它提供流媒体播放、下载和链接提取功能,采用简洁的命令行界面操作。用户可自定义视频质量、播放器设置和Discord状态显示等。不依赖重型组件,animdl使用高效抓取技术,是动漫爱好者的理想选择。

animdl动漫下载命令行工具开源项目PythonGithub
<h1 align="center"><img src="https://capsule-render.vercel.app/api?type=soft&fontColor=703ee5&text=justfoolingaround/animdl&height=150&fontSize=60&desc=极其高效、快速且轻量级。&descAlignY=75&descAlign=60&color=00000000&animation=twinkling"></h1> <p align="center"><sup>一个高效、强大且快速的动漫抓取工具。</sup></p> <p align="center"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/44633a13-64bf-4090-bf04-f108f7093968.gif"></p>

概览

安装

本项目可以通过不同的机制安装到您的设备上,这些机制按照易用性顺序列出如下。

  1. PIP安装包 又称 PIP安装

    pip install animdl
  2. 从源代码安装

    首先确保已安装Poetry

    然后运行以下命令:

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

支持

您可以通过这个电子邮件直接联系开发者。然而,最推荐的方式是前往Discord服务器。

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

如果您遇到问题或想要请求新功能,我们鼓励您提出GitHub issue,相信我,这不会伤害到您。

使用方法

用法: animdl [选项] 命令 [参数]... 选项: --help 显示此帮助信息并退出 命令: download 通过查询下载您喜爱的动漫。 grab 将流链接输出到标准输出流以供外部使用。 schedule 了解哪些动漫何时播出。 search 在提供商中搜索动漫。 stream 通过查询流式播放您喜爱的动漫。

如果项目找不到任何受支持的流媒体播放器,stream选项将自动禁用。

stream / download / grab

这些命令是项目中的主要命令集。它们都会抓取目标站点,唯一的区别是如何使用它们。

  • stream选项将流URL传递给播放器,以便您可以无缝地观看动漫。

    • 流式播放支持使用pypresence的Discord Rich Presence。
  • download选项将动漫下载到您的本地机器。

    • 下载会在您运行项目的目录中进行。
    • -d标志也可以用来指定下载文件夹。
    • 支持Internet Download Manager,可以通过--idm标志使用。此下载器无法下载HLS流。
    • 项目无法修改内容类型。这意味着ts格式的视频需要在下载后通过外部方式转换为其他格式。
    • 无法控制下载过程。
      • 如果下载速度波动,这是服务器端的问题。项目无法"修复"它。
      • 如果下载速度慢,这取决于服务器的上传速度。项目无法"修复"它。速度测试不可靠,其结果不会对应于通过项目获得的下载速度。
    • 项目采用最快速和最直接的下载方式,没有进一步的优化,就这样。
  • grab选项只是将流URL输出到标准输出流。

    • 这对于外部使用和测试很有用。
animdl stream "海贼王"
<p align="center"> <sub> 可以通过使用提供商前缀指定提供商,例如<code>9anime:海贼王</code>将使用9Anime提供商。 </sub></p> <p align="center"> <sub> 您可以指定提供商的直接URL;项目将自动检测提供商并继续抓取。此方法忽略搜索。<sub></p>

-r / --range 参数

此参数由streamdownloadgrab共享,可用于为选择剧集提供自定义范围。

  • 此参数构建一个剧集检查,因此,如果剧集数量不符合抓取数量,不会抛出错误。
  • 此参数可以按反向顺序使用,构造器会自动修正顺序。
  • 范围交叉不会导致问题。
  • 1将被视为从1到1的单一范围。
  • 1-2将被视为从1到2的范围。
  • 1-2,230-340将被视为两个不同的检查。第一个检查将从12,第二个从230340
  • 您可以使用任何分隔符,项目将自动解析您的范围字符串。

--index 参数

此参数由streamdownloadgrab共享,可用于自动选择搜索结果。index的默认参数是1,即第一个流。

--index 2将自动选择第二个搜索结果,无需提示。

-s / --special 参数

此参数由streamdownload共享,可用于通过使用-s latest获取动漫的最新剧集。同样,可以通过latest-2选择最新的2集。

  • 此参数与-r兼容,您将获得范围内的最后一集。

-q / --quality 参数

此参数非常强大,可用于从流的属性中选择流。

  • 1080将选择分辨率为1080的流。
  • 1080/worst将执行上述操作,但如果该流不可用,则会选择最差质量的流。
  • best[title]将选择具有title属性的最佳流。
  • best[title=r'^DUB']将选择title属性匹配正则表达式的流。如果不使用r,表达式将被视为字面字符串。
  • 普通整数可以用bestworst替代进行特殊解析。
  • 如果你只想要一个属性,不需要在参数中提及质量。

你可以使用grab命令查看每个流可用的属性。

[ { "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" } } ]

这是animdl grab "9anime:one piece"的美化输出,流有headersstream_url属性。

如果你觉得某个特定的流速度足够快,可以使用-q [stream_url=r'.+mcloud\.to.+']<sub>(或等效的,这只是用于测试)</sub>来选择该流。

结论

这个项目拥有强大的命令和参数来辅助它们,有许多未在此处指定但项目中可用的参数。这样做是因为这些命令是高级用法命令,可能会造成混淆。如有疑问,随时询问。

提供商

请查看animdl的官方提供商基准测试

该存储库中的图片每隔几小时自动更新,因此请注意开发人员已经知道哪些出现问题。

由于DDoS保护服务,某些提供商可能无法工作。我们尽最大努力修复可修复的问题。即使其中一个失效,项目中也有很多替代方案。

<p align="center"><b>项目包含未在此处提及的提供商。这是有意为之。</b></p>

配置

配置文件可以在全局或本地指定。

你可以使用ANIMDL_CONFIG环境变量在全局级别指定配置文件。

否则,如果工作目录中有名为animdl_config.yml的文件,将使用该文件。

此外,配置文件可以全局放置在:

  • Windows:
    • %USERPROFILE%/.animdl/config.yml
  • 其他:
    • $HOME/.config/animdl/config.yml

只使用上述优先顺序中的一个配置文件,配置不会合并。

设置提供商

你可以使用default_provider配置选项指定默认提供商。

default_provider: animixplay

该项目对每个提供商使用标准化的URL。这使得项目能够使用同一提供商的不同官方代理。

可以通过使用以下配置的site_urls来指定。

site_urls: animixplay: https://www.animixplay.to/

质量选择

你可以使用quality_string配置选项指定默认质量。

quality_string: best[subtitle]/best

播放器选择

你可以使用default_player配置选项指定默认播放器。

default_player: mpv

你可以更改播放器属性,例如executable是什么以及在播放器调用期间要传递的opts

players: mpv: executable: mpv opts: []

如果找到可执行文件,播放器将有资格使用。

目前支持的播放器有:

ffmpeg设置

你可以让项目强制使用ffmpeg进行HLS下载(非常慢)以及在有外部字幕可用时合并下载的字幕。

ffmpeg: executable: ffmpeg hls_download: false submerge: true

Discord Rich Presence设置

该项目支持RPC客户端,这只能通过配置启用。要使用此功能,你必须通过以下方式安装pypresence

pip install pypresence
discord_presence: true

fzf设置

你可以强制项目搜索提示使用fzf

这是一个非常强大的工具,可以大大提升用户体验。显然,你需要安装它并将其添加到PATH中(也可以配置为使用可执行文件路径)。

fzf: executable: fzf opts: [] state: true

用户可以通过使用fzfanimdl stream twist:来受益,因为这允许他们以一个天堂般的界面浏览整个Twist库。

<p align="center"> <img src="https://media.discordapp.net/attachments/856404208445292545/972471580640804894/unknown.png"></p>

上面的截图配置了fzf的用户主题。

日程设置

该项目可用于查看用户珍视的时间和日期格式的每周即将播出的动漫日程。

schedule: site_url: https://graphql.anilist.co/ # 除非你知道自己在做什么,否则不要更改 date_format: "%b. %d, %A" time_format: "%X"

请参阅Python datetime.strftime文档了解可用的格式。

为项目做贡献

不建议任何普通的Python开发人员参与项目代码库,因为使用的机制非常高级,需要对代码库和Python有更深入的理解。 如果您愿意,您可以通过提交拉取请求来为项目做出贡献。

最好的贡献方式是向开发者建议一个提供者或功能,如果您能展示如何实现的逻辑就更好了,您将会得到提及和感谢!

项目免责声明

项目的免责声明可以在此处找到。

简而言之

  • 在爬取过程中耗费开发者的脑细胞,以提供最快速和最高效的工具集。
  • 带来一个高度强大的代码库,非常适合爬取。
  • 默认不使用任何重型依赖。
  • 不使用seleniumJavaScript评估器进行爬取。
  • 集成强大的内部工具,如HLS下载器。
  • 尽可能大力维护。

代码再分发

欢迎自由使用并参考代码库。您无需向项目或justfoolingaround致谢,但请进行blame检查,看看贡献者是否希望得到认可。

作者寄语

我只是为了自我满足而维护这个项目。我很乐意听到您关于项目和问题的反馈(即使与项目无关),所以请随时联系

很高兴您能来到这里!

荣誉提名

类似项目

这些都是积极维护的项目,每个项目都有其独特的特性和功能。

内部依赖

如果没有这些依赖,项目肯定无法完成甚至无法正常工作。

赞助项目

通常赞助意味着资金,进而意味着金钱,但对于本项目而言,它意味着星标。如果您认为项目值得一颗星,请随意给项目加星。此外,您也可以与开发者聊天、开玩笑和争论,这样您就是在用时间付费。

<p align="center"> <code> <a href="https://www.codacy.com/gh/justfoolingaround/animdl/dashboard"> <img src="https://app.codacy.com/project/badge/Grade/a3a66c513f6949fb9f4aeb5fd26db937"> </a> </code> </p> <p align="center"> <sup>您是一个绝对的传奇,继续保持出色!</sup> </p>

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多