- name
- video-sourcing
- description
- Run the Video Sourcing Agent with deterministic, concise chat UX for /video_sourcing using a pinned self-bootstrap runtime.
- user-invocable
- true
- metadata
- {"openclaw":{"os":["darwin","linux"],"homepage":"https://github.com/Memories-ai-labs/video-sourcing-agent","requires":{"bins":["git","uv"],"env":["GOOGLE_API_KEY","YOUTUBE_API_KEY"]}}}
Video Sourcing Skill
Use this skill when the user asks to find, compare, or analyze social videos (YouTube, TikTok, Instagram, Twitter/X), or explicitly invokes /video_sourcing.
This workflow expects host runtime execution (sandbox mode off). The runner auto-bootstraps a pinned runtime from Memories-ai-labs/video-sourcing-agent@v0.2.5 when VIDEO_SOURCING_AGENT_ROOT is not set.
Triggering
Run this workflow when either condition is true:
- Message starts with
/video_sourcing. - The user asks for video sourcing/trend/creator/brand analysis and wants concrete video links.
If /video_sourcing is used with no query body, ask for the missing query.
Execution contract
- Resolve query text:
- /video_sourcing ... => strip /video_sourcing and use remaining text. - Free-form => use user message as query.
- Default to compact mode:
- --event-detail compact
- If user asks for debugging/raw payloads:
- Switch to --event-detail verbose
/video_sourcing deterministic path
- Build command with required args:
- <skill_dir>/scripts/run_video_query.sh --query "<query>" --event-detail <compact|verbose> --ux-mode three_message --progress-gate-seconds 5
- Start with
execusingbackground: trueand explicit timeout:
- timeout: 420
- Poll with
processusingaction: "poll"every 2-4 seconds until process exits. - Parse NDJSON output and render only these events, using your persona voice for all user-facing text:
- started => send a brief message conveying that video sourcing has begun, written in your persona voice - ux_progress => read the summary field as structured status data and compose a concise, natural progress update in your persona voice (do not echo summary verbatim) Send each ux_progress as a separate assistant message in Telegram. - terminal event (complete, clarification_needed, error) => send final message as-is
- Do not forward raw
progress,tool_call, ortool_resultevents for/video_sourcing. - Preserve the user's existing OpenClaw personality behavior across all messages — progress and final alike.
- Never launch a second run while a prior run session is still active.
- If retrying, call process with action: "kill" for the prior sessionId first.
- If process exits without a terminal event, send a concise fallback message that:
- states run ended before completion, - includes one actionable next step, - does not start another run automatically.
Behavior target for /video_sourcing:
- Fast run (<5s): 2 messages (
started, terminal). - Longer run (>=5s): recurring throttled
ux_progressupdates, then terminal.
Free-form path (non-strict)
- Keep existing flexible behavior.
- Build command without forcing
three_messagemode:
- <skill_dir>/scripts/run_video_query.sh --query "<query>" --event-detail <compact|verbose>
- Stream useful progress updates and final response naturally.
Final response format
When terminal event is complete:
- One short paragraph conclusion.
- Top 3 video references only by default:
- title - url - one-line relevance note
Tools used: ...with a compact status summary.
If fewer than 3 videos exist, show all available references.
When terminal event is clarification_needed:
- Ask the clarification question directly.
- Treat this as the final response for the current run.
When terminal event is error:
- Send concise failure reason.
- Include one actionable next step.
Safety and fallback
- If script fails due to missing env/tooling, explain exact missing piece (for example
VIDEO_SOURCING_AGENT_ROOT,uv, or API key env var). - If
VIDEO_SOURCING_AGENT_ROOTis unset, the runner uses managed path:
- ~/.openclaw/data/video-sourcing-agent/v0.2.5
VIDEO_SOURCING_AGENT_ROOTremains an advanced override for local development.- Keep response concise and action-oriented.
- Never fabricate video URLs or metrics.