安全决策报告

link-resolver-engine

合法的 Bilibili/抖音视频下载工具,包含未声明的 Playwright/Chromium 安装行为和 ffmpeg 自动下载,属于中等供应链风险,但未发现恶意行为。

安装决策优先 来源: ClawHub 扫描时间: 2026/7/3
文件 10
IOC 25
越权项 2
发现 5

为什么得出这个结论

2/4 个维度触发
阻止
声明与实际能力

发现 2 项声明之外的能力或越权行为。

阻止
隐藏执行与外联

提取到 3 个高危 IOC 或外联信号。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

发现 6 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

未声明的 Chromium 运行时下载 +10

bilibili_video.py:56 和 douyin_video.py:42 均调用 subprocess 安装 playwright chromium,SKILL.md 仅声明 python 二进制

未声明的 ffmpeg 自动下载 +5

video_snapper.py 通过 ffmpeg-downloader 从 gyan.dev/johnvansickle/evermeet.cx 下载二进制,未在文档中声明

pip 依赖无版本锁定 +5

ensure_package.py 安装 requests、playwright、yt-dlp 等均使用通配符版本

最关键的证据

中危 供应链

未声明的 Playwright/Chromium 运行时安装

bilibili_video.py 和 douyin_video.py 在导入时均调用 subprocess.check_call 安装 playwright chromium,SKILL.md 仅声明 python 依赖,未提及浏览器内核下载。Chromium 二进制约 100-300MB,从 Google 官方 CDN 下载,存在供应链劫持风险。

scripts/bilibili_video.py:56
在 SKILL.md metadata.bins 中声明 chromium,或预先安装后通过环境变量跳过自动下载
中危 供应链

未声明的 ffmpeg 自动下载

video_snapper.py 调用 ffmpeg-downloader 从 gyan.dev(Windows)、johnvansickle(Linux)、evermeet.cx(macOS)下载约 100MB 便携版 ffmpeg,SKILL.md 未声明此依赖。

scripts/video_snapper.py:46
在文档中声明 ffmpeg 依赖,或要求宿主环境预装
低危 供应链

pip 依赖无版本锁定

ensure_package.py 对 requests、playwright、yt-dlp、tf-playwright-stealth 等包使用无版本约束的 pip install,可能安装到存在已知漏洞的版本。

scripts/ensure_package.py:1
为关键依赖指定版本范围,如 requests>=2.31.0
低危 文档欺骗

硬编码占位 IP 地址

预扫描发现 bilibili_video.py:131/278 和 douyin_video.py:85 存在硬编码占位 IP(120.0.0.0、125.0.0.0、134.0.0.0),经审查这些 IP 均未被用于实际网络请求,可能是开发期占位符代码。

scripts/bilibili_video.py:131
清理代码中的占位 IP 注释
提示 供应链

fix_setuptools_for_legacy_packages 强制重装打包工具

ensure_package.py:27 强制降级重装 packaging、setuptools、wheel,可能影响系统其他 Python 工具的稳定性。

scripts/ensure_package.py:27
使用虚拟环境隔离或移除该强制重装逻辑

声明能力 vs 实际能力

网络访问 通过
声明 READ
→
推断 READ
bilibili_video.py:102-179 bilibili API 请求; douyin_video.py:77-142 douyin API/页面请求
文件系统 通过
声明 WRITE
→
推断 WRITE
bilibili_video.py:220-260 写入 downloads 目录; douyin_video.py:157 写入文件
命令执行 阻止
声明 NONE
→
推断 WRITE
bilibili_video.py:56 subprocess 安装 chromium; douyin_video.py:42 同; video_snapper.py:46 subprocess ffmpeg-downloader
浏览器 阻止
声明 NONE
→
推断 WRITE
douyin_video.py:71-142 使用 playwright.chromium 无头浏览器

可疑产物与外联

高危 IP 地址
120.0.0.0

scripts/bilibili_video.py:131

高危 IP 地址
125.0.0.0

scripts/bilibili_video.py:278

高危 IP 地址
134.0.0.0

scripts/douyin_video.py:85

中危 外部 URL
https://api.bilibili.com/x/web-interface/nav

scripts/bilibili_video.py:102

中危 外部 URL
https://www.bilibili.com/

scripts/bilibili_video.py:132

中危 外部 URL
https://www.bilibili.com

scripts/bilibili_video.py:133

中危 外部 URL
https://api.bilibili.com/x/web-interface/view?bvid=

scripts/bilibili_video.py:144

中危 外部 URL
https://api.bilibili.com/x/player/wbi/playurl

scripts/bilibili_video.py:177

中危 外部 URL
https://www.bilibili.com/video/BV1GYXKBzEvM/

scripts/bilibili_video.py:479

中危 外部 URL
https://www.douyin.com/video/

scripts/douyin_video.py:77

中危 外部 URL
https://www.douyin.com/

scripts/douyin_video.py:138

中危 外部 URL
https://v.douyin.com/ezOqxZPY3kc/

scripts/douyin_video.py:224

依赖与供应链

包名版本来源漏洞备注
playwright * pip 否 无版本锁定;安装时自动下载 chromium(约 100-300MB)
tf-playwright-stealth * pip 否 无版本锁定
yt-dlp * pip 否 无版本锁定
requests * pip 否 无版本锁定
pydub * pip 否 无版本锁定
ffmpeg-downloader * pip 否 无版本锁定;运行时从 gyan.dev/johnvansickle/evermeet.cx 下载 ffmpeg 二进制

文件构成

10 个文件 · 1950 行
Python 7 个文件 · 1766 行Markdown 2 个文件 · 144 行Ignore 1 个文件 · 40 行
需关注文件 · 5
scripts/bilibili_video.py Python · 517 行
未声明的 Playwright/Chromium 运行时安装 · 硬编码占位 IP 地址 · 120.0.0.0 · 125.0.0.0 · https://api.bilibili.com/x/web-interface/nav · https://www.bilibili.com/ · https://www.bilibili.com · https://api.bilibili.com/x/web-interface/view?bvid= · https://api.bilibili.com/x/player/wbi/playurl · https://www.bilibili.com/video/BV1GYXKBzEvM/
scripts/douyin_video.py Python · 311 行
134.0.0.0 · https://www.douyin.com/video/ · https://www.douyin.com/ · https://v.douyin.com/ezOqxZPY3kc/ · https://m.douyin.com/share/video/ · https://aweme\.snssdk\.com/aweme/v1/playwm/\?[^ · https://aweme.snssdk.com链接中找 · https://aweme\.snssdk\.com[^\s
scripts/video_snapper.py Python · 299 行
未声明的 ffmpeg 自动下载 · https://www.bilibili.com/video/BV1xx... · https://bilibili.com/video/BV1xx... · https://www.bilibili.com/video/av123... · https://b23.tv/xxxx
scripts/ensure_package.py Python · 297 行
pip 依赖无版本锁定 · fix_setuptools_for_legacy_packages 强制重装打包工具 · https://...、本地.zip · https://pypi.tuna · https://pypi.tuna.tsinghua.edu.cn/simple
scripts/env_manager.py Python · 235 行
https://download.pytorch.org/whl/cpu · https://download.pytorch.org/whl/
其他文件 · README.md · SKILL.md · logger_manager.py · config.py · .gitignore

安全亮点

代码逻辑清晰,B站/抖音视频解析为真实工具需求
WBI 签名算法、Bilibili API 调用为标准合法实现
Playwright stealth 插件是公开反爬手段,非恶意
未发现凭证收割、reverse shell、数据外泄等恶意行为
未访问 ~/.ssh、~/.aws、.env 等敏感路径
所有外部网络请求均指向目标平台合法 API