Install
openclaw skills install tiktok-video-analyzerAnalyze videos from TikTok, YouTube, Instagram, Twitter, and others by URL, transcribing audio locally and answering questions about the content.
openclaw skills install tiktok-video-analyzerAnalyze any video by dropping a URL. Works with TikTok, YouTube, Instagram, Twitter/X, and 1000+ other sites. Transcribes the audio locally and answers any question about the content.
Activate when the user:
Rule 1 — FIRST MESSAGE IS ALWAYS THIS, NO EXCEPTIONS:
Use the message tool to send this BEFORE running any exec command:
📡 Video received, analyzing...
This must be a message tool call, not your final reply text. Using the message tool sends it immediately to the user while you continue processing. If you put it in your reply text instead, the user won't see it until everything is done — which defeats the purpose entirely.
Do NOT reference conversation history, prior testing, or anything from the current session. Every URL is treated fresh.
Rule 2 — NEVER GO SILENT The user MUST receive a message every 30-60 seconds while processing. Silence = broken.
Rule 3 — NO PERSONAL COMMENTARY. EVER. Do NOT add ANY of the following:
Just run the skill and give the answer. End with the save prompt. Nothing else. If the transcript is cached: say "📚 Found in your library!" then answer. That's it.
Rule 4 — First-run warning If the transcripts folder is empty (first ever run), warn upfront:
⚠️ First time running — downloading the AI model (~150MB). Takes 2-4 minutes once, never again.
Before the first run, check if dependencies are installed:
which ffmpeg && python3 -c "import faster_whisper; print('ok')" && python3 -c "import yt_dlp; print('ok')"
If anything is missing, guide the user:
Mac/local:
brew install ffmpeg
pip3 install faster-whisper yt-dlp --break-system-packages
Linux/VPS:
apt install -y ffmpeg
pip install faster-whisper yt-dlp --break-system-packages
Send: 📡 Video received, analyzing...
If this looks like the first time (no cached transcripts exist), warn the user:
⚠️ First time running — the AI transcription model needs to download (~150MB). This takes 2-4 minutes once and never again. Grab a coffee ☕
python3 ~/.openclaw/skills/tiktok-analyzer/transcribe.py --download-only "URL_HERE"
Returns JSON with status: "downloaded" and video_id. If from_cache: true + skip_transcribe: true → go straight to Step 3, skip Step 2b.
Use the message tool to send: 📥 Downloaded! Transcribing now...
Then immediately run:
python3 ~/.openclaw/skills/tiktok-analyzer/transcribe.py --transcribe-only "VIDEO_ID"
Replace VIDEO_ID with the video_id from the previous step.
Returns JSON:
{
"transcript": "full text here...",
"language": "en",
"video_id": "abc123",
"from_cache": false
}
If from_cache: true (from Step 2) → say "📚 Found this in your library — instant answer!" and skip the wait messages.
If there's an "error" key → relay it cleanly (never show a Python stacktrace to the user).
Use the transcript to answer whatever they asked. If no specific question, provide:
After giving the answer, ALWAYS ask this — do not skip it:
💾 Want to save this transcript so you can ask follow-up questions later without re-downloading? (yes/no)
Only skip this if from_cache: true (already saved).
If yes:
python3 ~/.openclaw/skills/tiktok-analyzer/save_transcript.py "VIDEO_ID" 'JSON_DATA'
Confirm: ✅ Saved to your video library!
When the user asks about something they've analyzed before:
~/.openclaw/skills/tiktok-analyzer/transcripts/.json file(s)| Error | Response |
|---|---|
| Private/removed video | "This video is private or has been removed. Try a different URL." |
| No ffmpeg | "You need ffmpeg. Run: brew install ffmpeg (Mac) or apt install ffmpeg (Linux)" |
| No faster-whisper | "Run: pip install faster-whisper yt-dlp then try again." |
| Timeout / very long video | "That one's taking a while — try a shorter clip or check your connection." |