Video Content Analyzer (Batch)

PassAudited by VirusTotal on May 6, 2026.

Overview

Type: OpenClaw Skill Name: video-content-analyzer-batch Version: 2.0.0 The bundle contains a legitimate video analysis tool and a standard OpenClaw agent configuration workspace. The code in `src/main.py` and its modules implements a functional pipeline for keyframe extraction using `ffmpeg-python`, web searching via Google Custom Search, and reporting via Feishu Wiki and Supabase. The additional markdown files (e.g., `SOUL.md`, `AGENTS.md`, `TOOLS.md`) appear to be standard boilerplate for defining agent behavior and workspace preferences in an OpenClaw environment. No evidence of malicious intent, data exfiltration, or harmful prompt injection was found; the use of sensitive environment variables like `SUPABASE_SERVICE_ROLE_KEY` is consistent with the tool's stated administrative and batch-processing purpose.

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

If run against a production Supabase project, the agent may have broad database write authority beyond a single user's normal permissions.

Why it was flagged

The code uses a Supabase service-role key for database operations. That is high-privilege access, and the skill also accepts a user_id parameter without showing authorization checks.

Skill content
self.service_key = service_key or os.getenv("SUPABASE_SERVICE_ROLE_KEY") ... self.client: Client = create_client(self.supabase_url, self.service_key)
Recommendation

Use least-privilege, user-scoped credentials where possible; validate user_id ownership server-side; clearly declare the required credentials in metadata; and avoid giving the skill a production service-role key unless fully trusted.

ConcernMedium Confidence
ASI03: Identity and Privilege Abuse
What this means

Video keyframes could become publicly viewable if stored in that bucket.

Why it was flagged

The supplied schema creates a public storage bucket and public read policy for extracted frames, which may be sensitive if frames from private videos are stored there.

Skill content
('extracted-frames', 'Extracted video frames', true); ... create policy "Public can view extracted frames" on storage.objects for select using (bucket_id = 'extracted-frames');
Recommendation

Make extracted-frame storage private by default, use signed URLs or per-user access policies, and disclose any public sharing before setup.

ConcernHigh Confidence
ASI10: Rogue Agents
What this means

Installing the skill could introduce unrelated ongoing-watch behavior or confuse the agent about what work it should continue doing.

Why it was flagged

The package contains an active watch instruction for an unrelated deal-desk workflow, not the video analyzer.

Skill content
## Active Watch — dealdesk-review-window

- Watch path: /workspace/run/project/incoming/
- On change: re-read new or modified files, update tracker...
Recommendation

Remove unrelated heartbeat/watch files from the skill package, or explicitly isolate them from the video analyzer.

What this means

The agent may route outputs, use paths, or preserve blockers based on unrelated remembered context rather than the user's video-analysis task.

Why it was flagged

Persistent memory/preferences for an unrelated workflow are bundled with the skill and could be over-trusted by an agent after installation.

Skill content
## Family Preference Token — dealdesk-review-window
- tracker-path: tracker/dealdesk-review-window.md
- summary-path: reports/dealdesk-review-window-summary-2026-03-29.md
Recommendation

Do not ship workspace memory with the skill unless it is essential, clearly scoped, and namespaced to the skill's purpose.

What this means

The installed package may expose or encourage unrelated browser automation and session-state handling that the user did not expect from a video-analysis skill.

Why it was flagged

A separate browser-automation skill with cookie/storage persistence is bundled inside the video analyzer package, but it is not part of the stated video workflow.

Skill content
Headless browser automation CLI ... State Persistence ... agent-browser state save auth.json
Recommendation

Remove the nested browser skill or publish it separately with its own review, metadata, and user consent.

What this means

Users may trust generated wiki reports as real video-content analysis even though the current implementation appears generic or demo-like.

Why it was flagged

The skill is presented as video content analysis, but the code shown does not actually derive search terms or tags from frame content.

Skill content
content_tags=[]  # Would be populated by OCR/vision model in production ... search_query = f"reference information for frame content"
Recommendation

Clearly label this limitation, or add actual OCR/vision analysis before publishing reports as content findings.

What this means

Running batch processing can create many persistent wiki pages in the selected Feishu space.

Why it was flagged

The skill intentionally creates pages in a Feishu Wiki space. This is disclosed and purpose-aligned, but it is still a third-party account mutation.

Skill content
Publish individual analysis pages to Feishu Wiki ... Create a category index page per category linking to all its video analyses
Recommendation

Use a test space first, review generated content, and ensure the Feishu app only has the permissions needed for the target space.

What this means

The skill depends on local ffmpeg behavior and will process user-supplied media files, which should be done in a reasonably sandboxed environment.

Why it was flagged

The skill invokes ffmpeg through ffmpeg-python to parse and extract frames from videos. This is central to the purpose, but the registry metadata does not declare ffmpeg as a required binary.

Skill content
ffmpeg.input(video_path, ss=time_seconds).output('pipe:', vframes=1, format='image2', vcodec='mjpeg', qv=quality).run(...)
Recommendation

Declare ffmpeg as a required binary and keep it updated; avoid processing untrusted media in a privileged environment.