video2podcast
Analysis
The skill mostly matches its video-to-podcast purpose, but it reads browser login cookies by default and makes an overconfident privacy claim about them.
Findings (5)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
"VIDPOD_COOKIE_BROWSER" ... "Default: safari. Cookies are read locally and never transmitted."
The artifact claims cookies are never transmitted, while the code configures yt-dlp to use browser cookies for video downloads. That wording may lead users to underestimate the privacy and account-session impact.
pip3 install yt-dlp boto3
The skill depends on external pip packages without pinned versions. These dependencies are expected for downloading videos and using R2, but they are still part of the trusted runtime.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
cookie_browser = os.environ.get("VIDPOD_COOKIE_BROWSER", "safari") ... ydl_opts["cookiesfrombrowser"] = (cookie_browser,)The downloader reads a local browser cookie store by default and gives those cookies to yt-dlp when fetching URLs. Browser cookies are session credentials, so this is high-impact account access.
Set permissions: **Object Read & Write** on your bucket
The skill needs Cloudflare R2 write access to publish the podcast feed and audio files. This is purpose-aligned, but it gives the skill authority to mutate objects in the configured bucket.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
STATE_FILE = Path.home() / ".openclaw" / "video-podcast-state.json"
The skill stores a persistent local state file containing episode and processed-URL data so it can maintain the feed across runs.
