Project Icon

animdl

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

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

一个高效、强大且快速的动漫抓取工具。


概览

安装

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

  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服务器。

如果您遇到问题或想要请求新功能,我们鼓励您提出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 "海贼王" 

可以通过使用提供商前缀指定提供商,例如9anime:海贼王将使用9Anime提供商。

您可以指定提供商的直接URL;项目将自动检测提供商并继续抓取。此方法忽略搜索。

-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.+'](或等效的,这只是用于测试)来选择该流。

结论

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

提供商

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

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

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

项目包含未在此处提及的提供商。这是有意为之。

配置

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

你可以使用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库。

上面的截图配置了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检查,看看贡献者是否希望得到认可。

作者寄语

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

很高兴您能来到这里!

荣誉提名

类似项目

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

内部依赖

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

赞助项目

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

您是一个绝对的传奇,继续保持出色!

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号