ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

如何为 ani-cli 接入新动漫网站?官方 hacking 逆向工程指南逐段解读

2026/9/19 5:53:27 拓冰建站 浏览量
如何为 ani-cli 接入新动漫网站?官方 hacking 逆向工程指南逐段解读 如何为 ani-cli 接入新动漫网站官方 hacking 逆向工程指南逐段解读【免费下载链接】ani-cliA cli tool to browse and play anime项目地址: https://gitcode.com/gh_mirrors/an/ani-cliani-cli 是一款在终端里浏览并播放动漫的开源命令行工具CLI它通过抓取动漫网站的页面与 API 来获取剧集链接。官方文档说明它只默认适配一个平台但可以借助逆向工程把任意结构相似的站点接入进来。本文逐段解读官方 hacking.md 逆向工程指南带你从前置技能、抓取流程到 4 个关键函数改造一步步看懂接入新动漫网站的完整方法。为什么默认只支持一个网站hacking.md 开篇就说明ani-cli 目前只针对 hianime 单一平台做抓取同时支持多数据源需要较多改动因此维护者会拒绝新增站点的功能请求。但作者也给出了一条野路子由于这类动漫站点的页面结构高度相似你完全可以自己改写 ani-cli 脚本把它指向任何遵循相同约定的网站。开始前的准备工作前置技能与调试环境官方列出了 4 项默认你会的技能基础 Shell 脚本编写熟悉 http(s) 请求熟练使用curl能阅读并在 HTML / JavaScript 中搜索关键信息会写正则表达式此外你还需要一个带调试器Debugger的浏览器以及一个能直接运行原版 ani-cli 的环境。比如在 Windows 上可通过 scoop 安装后配置 Git Bash 作为 Windows Terminal 的配置文件运行⚠️ 提示站点常配有反调试保护webapi-blocker扩展可帮你打开调试器广告屏蔽扩展能减少干扰流量但 darkreader 这类会改写 HTML/CSS 的扩展要禁用否则影响抓取结果。读懂核心ani-cli 抓取流程图 5 个步骤hacking.md 用一张流程图描述了 ani-cli 从搜索关键词到开始播放的完整链路从查询到拿到播放链接共 5 步用目标站的搜索页查询关键词从响应中提取 ID由用户选择一部作品在总览页提取剧集号由用户选择一集按ID 剧集号组合下载播放器从中提取视频链接按画质选出一条链接并播放也就是说改造成新网站的工作量集中在第 1~4 步第 5 步的画质选择逻辑无需改动。逆向工程四步走改造关键函数第一步搜索search_anime大多数站点的搜索页很容易找到有的是明文 POST 查询有的只是一个带单个变量的 GET 请求。多搜几部作品、观察 URL 如何变化即可摸清规律若是 POST 等复杂方式就用浏览器调试器分析网络流量。摸清规律后在search_anime函数里复刻它curl负责发出搜索请求后面的sed正则负责把响应整理成多行id \t title格式——这是 nth 选择函数能正常工作的前提。同时记得替换allanime_base一类的站点基础变量例如当前版本的接口定义在 ani-cli#L442-L445search_api、episodes_api、servers_api。✅验收标准运行ani-cli并搜索你的目标站能列出结果供选择随后静默失败即为成功若报No results found!则需继续调试可用sh -x ani-cli跟踪脚本。第二步剧集选择episodes_list上一步完成后id和title变量已存入选定的作品。接下来观察列出所有剧集的页面——可能是系列总览页也可能没有专门页面、各剧集页之间互相链接。编辑episodes_list函数参考现有的 hianime_episodes重写网络请求和正则输出按行分隔、尽量排序的剧集号列表同样交给nth提供选择。✅验收标准能搜到作品、列出剧集并选中某一集随后报错Episode not released!。第三步获取播放器 embed选中剧集后下一步是加载剧集页面并提取内嵌播放器embed。若不加载剧集页也能直接拿到链接可从代码中获取 embed 地址部分一直替换到get_links的调用删掉不再使用的函数。常规路径先请求剧集页 → 逐行提取各 embed 播放器链接格式sourcename : url→ 存入resp→ 由provider_init和generate_link前半部分解析。有些站点如 allanime的链接是加密的需要像现有的解密函数一样做后处理可能要改写或彻底删掉。若只有一个embed 源generate links块可简化为对generate_link的单独调用省掉多提供商的异步聚合。第四步提取媒体链接get_links拿到 embed 播放器后get_links函数负责解析出真正的媒体链接请求 embed 播放器页面内容读入episode_link提取媒体链接输出到函数 stdout格式为quality linkquality是分辨率的数字表示如 1080需随链接一并从播放器中解析实在无法判断分辨率时让正则匹配占位内容即可get_links的输出拼入links变量单源直接拼接多源走异步模式之后get_episode_url会接管画质选择这部分无需改动。可参考现有实现在 hianime_m3u8先解码 base64 混淆数据再解析出m3u8主播放列表与清晰度列表。全部完成后还能做什么只要保持原代码结构和响应格式UI 与历史记录系统都能直接工作ani-cli 即可完整运行。官方也承认现有结构无法覆盖所有站点但对大多数结构相似的站点都有效。如果你不想改壳、想在新代码库里复刻 ani-cli 的交互体验官方还附了一份 UX 规格图v3.4 状态机涵盖 one-shot 函数、最小状态与状态修改器等设计总结清单前置技能就位 → 读懂 5 步抓取流程 → 改造search_anime→ 改造episodes_list→ 改造 embed 获取 → 改造get_links→ 每一步用报错信息验收进度。跟着 hacking.md 走完这一路你就拥有了把 ani-cli 接入新动漫网站的完整能力。【免费下载链接】ani-cliA cli tool to browse and play anime项目地址: https://gitcode.com/gh_mirrors/an/ani-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考