Skip to content

About

影视源开发技能包 + 实战实验室:TVBox/T4/drpy/WebHome 源开发全流程,含站点探测、加密破解、PoW 挑战、真直链门禁、六接口回归

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spider-craft

影视源(Spider)开发技能包 + 实战实验室。输入站点 URL,产出可交付的 TVBox 源: T4/Python、客户端裸类、drpy JS、WebHome 扩展/首页。

融合 7 个社区来源,全部内联、不依赖外部文件,并主动修正了来源之间的冲突。


目录结构

spider-craft/          技能包(可放进 AI 的 skills 目录直接加载)
├── SKILL.md           主文件:执行流程、模式选择、模块激活、契约、铁律、来源硬伤
├── modules/           13 个按需加载的专项模块
├── validators/        gates.md(验证矩阵)+ static_check.py(静态门禁 v2.0)
├── schemas/           site_profile.json + spider_ir.json
├── tools/             analyze_site.py / probe_media.py / pow_solve.py
└── README.md

spider-lab/            实战实验室(3 个可跑源 + 回归脚本)
├── lziapi_spider.py       量子资源   15.5 万资源 / 44 分类 / 搜索可用
├── suoniapi_spider.py     索鸟       14.5 万资源 / 61 分类 / 含「4K电影」838 条
├── libvio_spider.py       LIBVIO     MacCMS v10 + PoW 挑战 + 网盘资源
├── run_*.py               六接口回归脚本
├── stub/                  沙箱用 base.spider 桩
└── dist/                  打包好的源 + TVBox 订阅配置

快速开始

# 1. 探测站点 → 得到防御等级 + 必载模块清单
python3 spider-craft/tools/analyze_site.py https://target.example
python3 spider-craft/tools/analyze_site.py https://target.example --json > profile.json

# 2. 按清单读模块,生成代码

# 3. 静态门禁(交付前必须全 PASS)
python3 spider-craft/validators/static_check.py my_spider.py --final    # T4 模式
python3 spider-craft/validators/static_check.py my_spider.py --client   # 客户端裸类

# 4. 真直链门禁 + 真实画质
python3 spider-craft/tools/probe_media.py "https://cdn.x/a.m3u8" --referer https://x/ --deep

# 5. PoW 挑战求解(仅限算法公开的开放挑战)
python3 spider-craft/tools/pow_solve.py --html challenge.html

# 6. 六接口回归
cd spider-lab && PYTHONPATH=./stub python3 run_gates.py

三个工具实测过,不是摆设

工具 能力 实测证据
analyze_site.py 43 项特征扫描 → 防御等级 0-4 → 模块推荐 真网络打 qq.com(112KB),命中 5 项特征,正确判定「现代站点」分支
probe_media.py 真直链门禁 + HLS 逐级 + 画质解析 本地 HLS 服务器:主清单→子清单→AES key→ts 全绿;HTML 播放页正确拒绝
pow_solve.py hashcash PoW 求解 libvio 实测:nonce=71017,0.19 秒,服务端签发通行证
static_check.py 双模式 10 类检查 埋 7 个雷的样本全部命中;合规样本 PASS

实测踩出来的坑(都写进技能包了)

1. 「4K」标签不可信

抽 12 条标着「4K」的电影,解析主清单 RESOLUTION:

美国往事国语4K            → 1920x1036
花束般的恋爱4K            → 1994x1080
疯狂的麦克斯4:狂暴之路4K → 2592x1080
源代码4K                  → 1920x1080

12/12 全是 1080p,最宽 2592,没有一条到 3840。 vod_remarks 里的「4K/蓝光/原画」是营销标签;BANDWIDTH 也不可信(实测有站点全返回 128)。

2. 苹果CMS 主分类空数据

t=1 电影片(主分类)→ 1 条
t=6 动作片(子分类)→ 4951 条

不合并子分类,用户点「电影片」只能看到 1 部片。 合并时 pagecount/total 必须跟着取子分类聚合值,否则返回「1 条数据配 697 页」。

3. sign 是假签名

分享页 var main = "...index.m3u8?sign=xxx",实测带 sign / 不带 sign / 伪造 sign 全部 206。 不需要实时解析。

4. 失败结果缓存毒化

except Exception:
    data = {}
self._cache[key] = data    # ← 失败也缓存!

搜索撞上 CF 挑战页 → {} 入缓存 → 之后同一 key 永久返回空。 症状「第一次跑为空,重跑又好了」,极难排查。现在 static_check.py 能自动拦。

5. dict.get(k, default) 的陷阱

default 只在 key 缺失时生效。key 存在但值为 None 时照样返回 None。 type_pid 有 0 / "0" / null / 缺失 四种形态。

6. 站点能力缺失 ≠ 解析失败

某站搜索返回纯文本「暂不支持搜索」。要诚实返回空并记录能力标记, 不伪造、不重试、不把 {} 当数据。


三个源的能力差异(同一骨架换域名不能直接跑)

量子资源 索鸟 LIBVIO
资源量 155,602 144,847 —
分类 44 61(含 4K电影 838 条) 5
搜索 ✅ 可用 ❌ 站点不支持 ❌ 404
type_pid "0" null —
播放 直链 + HTML 分享页 直链 网盘(夸克/迅雷)
防御 无 无 PoW 挑战 + 通行证

关于 PoW 挑战

libvio.pw 用 CDN 自研的 Proof-of-Work 挑战:

裸请求 → 403 + x-cdn-challenge: required
挑战页 → sha256(SIG + nonce) 以 DIFF 开头(DIFF="0000",16 bit)
解出后 → 写 cookie __cdn_pow=TS_MODE_nonce_SIG
服务端验证 → 签发 __cdn_verified(Max-Age=1800)

为什么这是可做的:页面自己声明「验证由浏览器完成一次工作量证明」, 算法在源码里完整可读,没有指纹采集、没有行为特征、没有人机判别, 对所有人一视同仁。

与验证码的区别(决定做不做):

PoW 挑战 图形验证码 / Turnstile
算法 页面公开可见 隐藏 / 依赖人机识别
门槛 纯算力 指纹 / 行为 / 人工
能否程序化 ✅ ❌ 不做,直接报告阻塞

本仓库不含验证码识别、Cloudflare clearance 收割、指纹伪装、登录/付费墙绕过。


边界

  • 只解析公开可访问的页面和接口,不做鉴权绕过。
  • 付费/锁定内容跳过并报告,不伪造播放地址。
  • 不硬编码他人账号 Cookie / Token;仓库里的凭据一律走环境变量或配置注入。
  • 影视版权归制作方与发行方,本项目仅供技术学习,请支持正版。

License

MIT(见 LICENSE)。使用前请自行确认目标站点的服务条款与当地法律。

About

影视源开发技能包 + 实战实验室:TVBox/T4/drpy/WebHome 源开发全流程,含站点探测、加密破解、PoW 挑战、真直链门禁、六接口回归

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages