抖音下载器(Node.js)

PassAudited by VirusTotal on May 12, 2026.

Overview

Type: OpenClaw Skill Name: douyin-downloader-nodejs Version: 1.0.0 The skill is designed for legitimate video downloading and transcription. However, it is classified as suspicious due to significant vulnerabilities. The `douyin.js` script uses `child_process.spawn` to execute `ffmpeg` and `ffprobe` with file paths constructed from user-controlled input (`outputDir` and derived `video_id`). This poses a shell injection risk if these inputs contain malicious metacharacters. Additionally, the `outputDir` is directly used in `path.join` for file writing, creating a path traversal vulnerability that could allow writing files to arbitrary locations on the filesystem. There is no evidence of intentional malicious behavior like data exfiltration or backdoors.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

The skill will execute local media-processing binaries on downloaded media files.

Why it was flagged

The skill runs the local ffmpeg binary to extract audio from a downloaded video. This is expected for the stated transcription feature, but it is still local process execution.

Skill content
const proc = spawn(ffmpegPath, args);
Recommendation

Install ffmpeg from a trusted source and run the skill only on videos you intend to process.

What this means

If you use the transcription feature, a local environment API key is used to authenticate with SiliconFlow.

Why it was flagged

The skill reads an API key from environment variables and sends it as a Bearer token to the transcription provider. This is disclosed and purpose-aligned, though the generic API_KEY fallback is broader than ideal.

Skill content
apiKey = process.env.DOUYIN_API_KEY || process.env.API_KEY; ... 'Authorization': `Bearer ${apiKey}`
Recommendation

Prefer setting a dedicated DOUYIN_API_KEY for this skill rather than relying on a generic API_KEY environment variable.

What this means

Audio from the downloaded video may be uploaded to SiliconFlow for transcription.

Why it was flagged

For transcription, the skill reads the extracted audio file and posts it to the SiliconFlow transcription API. This external provider flow is disclosed by the skill description.

Skill content
const DEFAULT_API_BASE_URL = 'https://api.siliconflow.cn/v1/audio/transcriptions'; ... const audioBuffer = fs.readFileSync(audioPath);
Recommendation

Use the transcription command only for videos whose audio you are comfortable sending to that provider.