Skill Tiktok Video Pipeline

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches its video-generation purpose, but it has unsafe shell/path handling and under-declared external script dependencies that should be reviewed before use.

Use this only in a trusted or sandboxed workspace until the shell execution and path handling are fixed. Do not pass untrusted product IDs, script text, prompts, model names, logo paths, or audio paths. Also verify any referenced external video-generation/overlay skills before running the Python pipeline, and set the Gemini API key only if you understand the provider usage and cost.

Findings (4)

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

A malicious or untrusted product prompt, script text, model name, or related argument could cause local commands to run with the user's permissions.

Why it was flagged

The script constructs shell command strings from CLI-controlled values and runs them through bash. JSON.stringify is not shell-safe quoting, and opts.veoModel is not quoted at all, so crafted values could trigger shell execution.

Skill content
'--model', opts.veoModel, ... '--captions', JSON.stringify(opts.scriptText), ... return spawnSync('bash', ['-lc', cmd], {
Recommendation

Replace bash -lc string execution with spawnSync/subprocess argument arrays, validate model/language values against allowlists, and use a proper shell-escaping library only if a shell is unavoidable.

What this means

A crafted product identifier containing path traversal sequences could make the pipeline write outside the intended output/tiktok directory or create/remove unexpected temporary paths.

Why it was flagged

The required productId is used directly in filesystem paths and a recursive cleanup path without sanitizing path separators or enforcing that resolved paths stay under OUTPUT_DIR.

Skill content
const tmpDir = path.join(OUTPUT_DIR, `.tmp_${opts.productId}_${Date.now()}`); ... const finalPath = path.join(OUTPUT_DIR, `${opts.productId}_${opts.lang}_final.mp4`); ... fs.rmSync(tmpDir, { recursive: true, force: true });
Recommendation

Restrict product identifiers to safe filename characters, resolve paths and verify they remain under the intended output directory, and avoid recursive deletion on paths influenced by user input.

What this means

Using the Python pipeline may execute whatever code exists at those external paths, with its own network, credential, and file behavior outside this review.

Why it was flagged

The Python pipeline runs external local scripts that are not included in this skill's manifest and are not fully declared in the registry requirements or SKILL.md dependency list.

Skill content
RUNWAY_SCRIPT = os.path.join(SKILLS_BASE, "skill-runway-video-gen", "scripts", "generate_video.py") ... OVERLAY_SCRIPT = os.path.join(SKILLS_BASE, "skill-tiktok-ads-video", "scripts", "overlay.py") ... subprocess.run(cmd, check=True)
Recommendation

Declare all required external skills and exact paths, include or pin reviewed versions, verify script identity before execution, and align SKILL.md with the code actually being run.

What this means

Users may not realize the skill needs an external API key and may incur provider API usage or billing through the video-generation step.

Why it was flagged

The skill requires a provider API key for Veo generation, while the registry metadata lists no required environment variables or primary credential. This is purpose-aligned but under-declared.

Skill content
- `GEMINI_API_KEY` env var (for Veo generation)
Recommendation

Declare GEMINI_API_KEY in the registry metadata and clearly document what service receives prompts or media and what costs or permissions may apply.