- name
- video-searching
- description
- Search and analyze videos across YouTube, TikTok, Instagram, and X/Twitter via the Memories.ai Video Searching API.
- user-invocable
- true
- metadata
- {"openclaw":{"os":["darwin","linux"],"homepage":"https://api-tools.memories.ai/agents/video-searching-api","requires":{"bins":["curl","jq"],"env":["MEMORIES_API_KEY"]}}}
Video Searching Skill
Use this skill when the user asks to find, compare, or analyze social videos (YouTube, TikTok, Instagram, Twitter/X), or explicitly invokes /video_search.
This skill calls the Memories.ai Video Searching API — a managed, token-authenticated endpoint that searches across platforms and returns structured results via SSE.
Triggering
Run this workflow when either condition is true:
- Message starts with
/video_search. - The user asks for video sourcing/trend/creator/brand analysis and wants concrete video links.
If /video_search is used with no query body, ask for the missing query.
Execution contract
- Resolve query text:
- /video_search ... → strip /video_search and use remaining text. - Free-form → use user message as query.
- Build the API request JSON body:
- query (required): the user's search query - platforms (optional): array of youtube, tiktok, instagram, twitter — only set if user specifies platforms - max_results (optional, default 10): number of video results - time_frame (optional): past_24h, past_week, past_month, past_year — only set if user specifies recency - max_steps (optional, default 10): max agent iterations - enable_clarification (optional, default false): set to true if user query is vague
- Call the runner script:
<skill_dir>/scripts/run_video_query.sh \
--query "<query>" \
[--platforms "youtube,tiktok"] \
[--max-results 10] \
[--time-frame past_week] \
[--enable-clarification]- Start with
execusingbackground: true. - Poll with
processusingaction: "poll"every 2–4 seconds until process exits. - Parse NDJSON output and render only these events:
- started → send: 🔍 Starting video search... - progress → send concise progress update from message field (throttle: skip if last update was < 3s ago) - complete → send final formatted response (see below) - clarification → ask the clarification question directly; treat as final response - error → send concise failure reason with one actionable next step
- Do not forward raw
tool_callortool_resultevents to the user.
Final response format
When terminal event is complete:
- One short paragraph conclusion (from
answerfield). - Top video references (up to 5 by default):
- title - url - platform badge (e.g. 🎬 YouTube, 🎵 TikTok, 📸 Instagram, 🐦 X) - one-line relevance_note - key metrics: views, likes, engagement rate (if available)
- Footer:
⏱ {execution_time_seconds}s · {steps_taken} steps · {tools_used}
If fewer videos exist, show all available references.
When terminal event is clarification:
- Ask the clarification question directly.
- Present options if provided.
- Treat as final response for the current run.
When terminal event is error:
- Send concise failure reason.
- Include one actionable next step.
Safety and fallback
- If
MEMORIES_API_KEYis not set, tell the user:
> ⚠️ Missing MEMORIES_API_KEY. Set it in your OpenClaw environment variables to use this skill. > Get your API key at https://api-tools.memories.ai
- If the API returns a non-SSE error (HTTP 4xx/5xx), display the error message.
- Never fabricate video URLs or metrics.
- If the API is unreachable, suggest checking network connectivity and API status.