{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tiktok-video-analyzer",
    "name": "Video Analyzer (TikTok + YouTube + Instagram)",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/holl4ndtv/tiktok-video-analyzer",
    "canonicalUrl": "https://clawhub.ai/holl4ndtv/tiktok-video-analyzer",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tiktok-video-analyzer",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tiktok-video-analyzer",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "save_transcript.py",
      "transcribe.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/tiktok-video-analyzer"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/tiktok-video-analyzer",
    "agentPageUrl": "https://openagent3.xyz/skills/tiktok-video-analyzer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tiktok-video-analyzer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tiktok-video-analyzer/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Video Analyzer Skill",
        "body": "Analyze 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."
      },
      {
        "title": "When to Use This Skill",
        "body": "Activate when the user:\n\nShares a video URL (tiktok.com, youtube.com, instagram.com, twitter.com, x.com, etc.)\nAsks \"what is this video about\", \"summarize this\", \"what are they teaching\", \"what's the hook\", etc.\nAsks a question about a previously saved video"
      },
      {
        "title": "⚠️ CRITICAL RULES — READ BEFORE ANYTHING ELSE",
        "body": "Rule 1 — FIRST MESSAGE IS ALWAYS THIS, NO EXCEPTIONS:\n\nUse the message tool to send this BEFORE running any exec command:\n\n📡 Video received, analyzing...\n\nThis 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.\n\nDo NOT reference conversation history, prior testing, or anything from the current session. Every URL is treated fresh.\n\nRule 2 — NEVER GO SILENT\nThe user MUST receive a message every 30-60 seconds while processing. Silence = broken.\n\nAfter download step: send \"📥 Downloaded! Transcribing now...\"\nIf anything takes more than 30 seconds: send \"⏳ Still working...\"\n\nRule 3 — NO PERSONAL COMMENTARY. EVER.\nDo NOT add ANY of the following:\n\n\"This appears to be the video we already tested\"\n\"I recognize this URL\" / \"you've sent this before\"\n\"Heads up — this is the same link\"\nAny footnote, parenthetical, or aside about the URL or prior usage\n\nJust run the skill and give the answer. End with the save prompt. Nothing else.\nIf the transcript is cached: say \"📚 Found in your library!\" then answer. That's it.\n\nRule 4 — First-run warning\nIf the transcripts folder is empty (first ever run), warn upfront:\n\n⚠️ First time running — downloading the AI model (~150MB). Takes 2-4 minutes once, never again."
      },
      {
        "title": "Prerequisites Check",
        "body": "Before the first run, check if dependencies are installed:\n\nwhich ffmpeg && python3 -c \"import faster_whisper; print('ok')\" && python3 -c \"import yt_dlp; print('ok')\"\n\nIf anything is missing, guide the user:\n\nMac/local:\n\nbrew install ffmpeg\npip3 install faster-whisper yt-dlp --break-system-packages\n\nLinux/VPS:\n\napt install -y ffmpeg\npip install faster-whisper yt-dlp --break-system-packages"
      },
      {
        "title": "Step 1 — Acknowledge IMMEDIATELY (before anything else)",
        "body": "Send: 📡 Video received, analyzing..."
      },
      {
        "title": "Step 1b — First run warning",
        "body": "If this looks like the first time (no cached transcripts exist), warn the user:\n\n⚠️ First time running — the AI transcription model needs to download (~150MB). This takes 2-4 minutes once and never again. Grab a coffee ☕"
      },
      {
        "title": "Step 2 — Download (step 1 of 2)",
        "body": "python3 ~/.openclaw/skills/tiktok-analyzer/transcribe.py --download-only \"URL_HERE\"\n\nReturns JSON with status: \"downloaded\" and video_id. If from_cache: true + skip_transcribe: true → go straight to Step 3, skip Step 2b."
      },
      {
        "title": "Step 2b — Send progress message (via message tool), then transcribe",
        "body": "Use the message tool to send: 📥 Downloaded! Transcribing now...\n\nThen immediately run:\n\npython3 ~/.openclaw/skills/tiktok-analyzer/transcribe.py --transcribe-only \"VIDEO_ID\"\n\nReplace VIDEO_ID with the video_id from the previous step.\n\nReturns JSON:\n\n{\n  \"transcript\": \"full text here...\",\n  \"language\": \"en\",\n  \"video_id\": \"abc123\",\n  \"from_cache\": false\n}\n\nIf from_cache: true (from Step 2) → say \"📚 Found this in your library — instant answer!\" and skip the wait messages.\n\nIf there's an \"error\" key → relay it cleanly (never show a Python stacktrace to the user)."
      },
      {
        "title": "Step 3 — Answer the question",
        "body": "Use the transcript to answer whatever they asked. If no specific question, provide:\n\nWhat it's about (1-2 sentences)\nKey points / what's being taught (bullet list)\nTone / style (educational, entertainment, story, etc.)"
      },
      {
        "title": "Step 4 — Offer to save (MANDATORY if from_cache: false)",
        "body": "After giving the answer, ALWAYS ask this — do not skip it:\n\n💾 Want to save this transcript so you can ask follow-up questions later without re-downloading? (yes/no)\n\nOnly skip this if from_cache: true (already saved).\n\nIf yes:\n\npython3 ~/.openclaw/skills/tiktok-analyzer/save_transcript.py \"VIDEO_ID\" 'JSON_DATA'\n\nConfirm: ✅ Saved to your video library!"
      },
      {
        "title": "Searching Saved Transcripts",
        "body": "When the user asks about something they've analyzed before:\n\nList files in ~/.openclaw/skills/tiktok-analyzer/transcripts/\nRead the relevant .json file(s)\nAnswer from the saved transcript"
      },
      {
        "title": "Error Handling",
        "body": "ErrorResponsePrivate/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.\""
      },
      {
        "title": "Demo Tips",
        "body": "For demos: Use a video you've already analyzed (cache hit = instant response, looks great)\nFirst run: Always warn upfront about the 150MB model download\nWorks on any platform yt-dlp supports — TikTok, YouTube, Instagram, Twitter, Reddit, Vimeo, and 1000+ more"
      }
    ],
    "body": "Video Analyzer Skill\n\nAnalyze 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.\n\nWhen to Use This Skill\n\nActivate when the user:\n\nShares a video URL (tiktok.com, youtube.com, instagram.com, twitter.com, x.com, etc.)\nAsks \"what is this video about\", \"summarize this\", \"what are they teaching\", \"what's the hook\", etc.\nAsks a question about a previously saved video\n⚠️ CRITICAL RULES — READ BEFORE ANYTHING ELSE\n\nRule 1 — FIRST MESSAGE IS ALWAYS THIS, NO EXCEPTIONS:\n\nUse the message tool to send this BEFORE running any exec command:\n\n📡 Video received, analyzing...\n\nThis 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.\n\nDo NOT reference conversation history, prior testing, or anything from the current session. Every URL is treated fresh.\n\nRule 2 — NEVER GO SILENT The user MUST receive a message every 30-60 seconds while processing. Silence = broken.\n\nAfter download step: send \"📥 Downloaded! Transcribing now...\"\nIf anything takes more than 30 seconds: send \"⏳ Still working...\"\n\nRule 3 — NO PERSONAL COMMENTARY. EVER. Do NOT add ANY of the following:\n\n\"This appears to be the video we already tested\"\n\"I recognize this URL\" / \"you've sent this before\"\n\"Heads up — this is the same link\"\nAny footnote, parenthetical, or aside about the URL or prior usage\n\nJust 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.\n\nRule 4 — First-run warning If the transcripts folder is empty (first ever run), warn upfront:\n\n⚠️ First time running — downloading the AI model (~150MB). Takes 2-4 minutes once, never again.\n\nPrerequisites Check\n\nBefore the first run, check if dependencies are installed:\n\nwhich ffmpeg && python3 -c \"import faster_whisper; print('ok')\" && python3 -c \"import yt_dlp; print('ok')\"\n\n\nIf anything is missing, guide the user:\n\nMac/local:\n\nbrew install ffmpeg\npip3 install faster-whisper yt-dlp --break-system-packages\n\n\nLinux/VPS:\n\napt install -y ffmpeg\npip install faster-whisper yt-dlp --break-system-packages\n\nFlow\nStep 1 — Acknowledge IMMEDIATELY (before anything else)\n\nSend: 📡 Video received, analyzing...\n\nStep 1b — First run warning\n\nIf this looks like the first time (no cached transcripts exist), warn the user:\n\n⚠️ First time running — the AI transcription model needs to download (~150MB). This takes 2-4 minutes once and never again. Grab a coffee ☕\n\nStep 2 — Download (step 1 of 2)\npython3 ~/.openclaw/skills/tiktok-analyzer/transcribe.py --download-only \"URL_HERE\"\n\n\nReturns JSON with status: \"downloaded\" and video_id. If from_cache: true + skip_transcribe: true → go straight to Step 3, skip Step 2b.\n\nStep 2b — Send progress message (via message tool), then transcribe\n\nUse the message tool to send: 📥 Downloaded! Transcribing now...\n\nThen immediately run:\n\npython3 ~/.openclaw/skills/tiktok-analyzer/transcribe.py --transcribe-only \"VIDEO_ID\"\n\n\nReplace VIDEO_ID with the video_id from the previous step.\n\nReturns JSON:\n\n{\n  \"transcript\": \"full text here...\",\n  \"language\": \"en\",\n  \"video_id\": \"abc123\",\n  \"from_cache\": false\n}\n\n\nIf from_cache: true (from Step 2) → say \"📚 Found this in your library — instant answer!\" and skip the wait messages.\n\nIf there's an \"error\" key → relay it cleanly (never show a Python stacktrace to the user).\n\nStep 3 — Answer the question\n\nUse the transcript to answer whatever they asked. If no specific question, provide:\n\nWhat it's about (1-2 sentences)\nKey points / what's being taught (bullet list)\nTone / style (educational, entertainment, story, etc.)\nStep 4 — Offer to save (MANDATORY if from_cache: false)\n\nAfter giving the answer, ALWAYS ask this — do not skip it:\n\n💾 Want to save this transcript so you can ask follow-up questions later without re-downloading? (yes/no)\n\nOnly skip this if from_cache: true (already saved).\n\nIf yes:\n\npython3 ~/.openclaw/skills/tiktok-analyzer/save_transcript.py \"VIDEO_ID\" 'JSON_DATA'\n\n\nConfirm: ✅ Saved to your video library!\n\nSearching Saved Transcripts\n\nWhen the user asks about something they've analyzed before:\n\nList files in ~/.openclaw/skills/tiktok-analyzer/transcripts/\nRead the relevant .json file(s)\nAnswer from the saved transcript\nError Handling\nError\tResponse\nPrivate/removed video\t\"This video is private or has been removed. Try a different URL.\"\nNo ffmpeg\t\"You need ffmpeg. Run: brew install ffmpeg (Mac) or apt install ffmpeg (Linux)\"\nNo faster-whisper\t\"Run: pip install faster-whisper yt-dlp then try again.\"\nTimeout / very long video\t\"That one's taking a while — try a shorter clip or check your connection.\"\nDemo Tips\nFor demos: Use a video you've already analyzed (cache hit = instant response, looks great)\nFirst run: Always warn upfront about the 150MB model download\nWorks on any platform yt-dlp supports — TikTok, YouTube, Instagram, Twitter, Reddit, Vimeo, and 1000+ more"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/holl4ndtv/tiktok-video-analyzer",
    "publisherUrl": "https://clawhub.ai/holl4ndtv/tiktok-video-analyzer",
    "owner": "holl4ndtv",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tiktok-video-analyzer",
    "downloadUrl": "https://openagent3.xyz/downloads/tiktok-video-analyzer",
    "agentUrl": "https://openagent3.xyz/skills/tiktok-video-analyzer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tiktok-video-analyzer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tiktok-video-analyzer/agent.md"
  }
}