Scan Report
20 /100
douyin-video-download
抖音视频批量下载工具 - 支持单视频、批量下载、自动去重、无水印下载
Legitimate video downloader with secure shell execution practices, but suffers from unpinned dependencies and incomplete documentation disclosure.
Safe to install
Pin all dependency versions in package.json to prevent supply chain attacks, and document all dependencies (dotenv, Playwright) in SKILL.md.
Findings 2 items
| Severity | Finding | Location |
|---|---|---|
| Medium | Unpinned dependencies in package.json Supply Chain | package.json:17 |
| Low | Undocumented dependencies Doc Mismatch | SKILL.md:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | READ | READ | ✓ Aligned | lib/parser.js:1 - playwright-chromium, lib/downloader.js:1 - curl/yt-dlp |
| Filesystem | WRITE | WRITE | ✓ Aligned | lib/downloader.js:16-20 - fs.mkdirSync, fs.writeFileSync pattern |
| Shell | WRITE | WRITE | ✓ Aligned | lib/downloader.js:44-75 - uses spawn with args array, proper injection preventio… |
5 findings
Medium External URL 外部 URL
https://v.douyin.com/xxxxx SKILL.md:46 Medium External URL 外部 URL
https://www.douyin.com/video/123456 SKILL.md:49 Medium External URL 外部 URL
https://v.douyin.com/yyyyy SKILL.md:61 Medium External URL 外部 URL
https://aweme.snssdk.com/aweme/v1/play/?video_id=$ lib/downloader.js:119 Medium External URL 外部 URL
https://dotenvx.com package-lock.json:209 File Tree
7 files · 40.9 KB · 1312 lines JSON 3f · 673L
JavaScript 3f · 554L
Markdown 1f · 85L
├─
▾
lib
│ ├─
downloader.js
JavaScript
│ └─
parser.js
JavaScript
├─
▾
scripts
│ └─
download.js
JavaScript
├─
_meta.json
JSON
├─
package-lock.json
JSON
├─
package.json
JSON
└─
SKILL.md
Markdown
Dependencies 4 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
axios | ^1.6.0 | npm | No | Version not pinned with caret |
cheerio | ^1.0.0-rc.12 | npm | No | Version not pinned with caret |
dotenv | ^16.3.1 | npm | No | Version not pinned with caret |
playwright-chromium | ^1.58.2 | npm | No | Version not pinned with caret |
Security Positives
✓ Uses child_process.spawn with array args - proper command injection prevention
✓ No base64 encoding or obfuscation detected
✓ No credential theft or environment variable harvesting
✓ No data exfiltration to external servers
✓ No reverse shell or C2 communication
✓ Validates video_id with regex: /^[a-z0-9A-Z_]+$/
✓ Properly checks downloaded file content for HTML (anti-scraping detection)