{
  "schemaVersion": "1.0",
  "item": {
    "slug": "solo-index-youtube",
    "name": "Index Youtube",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/fortunto2/solo-index-youtube",
    "canonicalUrl": "https://clawhub.ai/fortunto2/solo-index-youtube",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/solo-index-youtube",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=solo-index-youtube",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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. 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. 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/solo-index-youtube"
    },
    "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/solo-index-youtube",
    "agentPageUrl": "https://openagent3.xyz/skills/solo-index-youtube/agent",
    "manifestUrl": "https://openagent3.xyz/skills/solo-index-youtube/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/solo-index-youtube/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "/index-youtube",
        "body": "Index YouTube video transcripts into a searchable knowledge base. Supports two modes depending on available tools."
      },
      {
        "title": "Prerequisites",
        "body": "Check that yt-dlp is available:\n\nwhich yt-dlp || echo \"MISSING: install yt-dlp (brew install yt-dlp / pip install yt-dlp / pipx install yt-dlp)\""
      },
      {
        "title": "Arguments",
        "body": "Parse $ARGUMENTS for channel handles or \"all\":\n\nIf empty or \"all\": index all channels (from config or ask user)\nIf one or more handles: index only those channels (e.g., GregIsenberg ycombinator)\nOptional flags: -n <limit> (max videos per channel, default 10), --dry-run (parse only)"
      },
      {
        "title": "Mode Detection",
        "body": "Check which mode is available:"
      },
      {
        "title": "Mode 1: With solograph MCP (recommended)",
        "body": "If MCP tools source_search, source_list, source_tags are available, use solograph for indexing and search.\n\nSetup (if not yet installed):\n\n# Install solograph\npip install solograph\n# or\nuvx solograph\n\nIndexing via solograph CLI:\n\n# Single channel\nsolograph-cli index-youtube -c GregIsenberg -n 10\n\n# Multiple channels\nsolograph-cli index-youtube -c GregIsenberg -c ycombinator -n 10\n\n# All channels (from channels.yaml in solograph config)\nsolograph-cli index-youtube -n 10\n\n# Dry run (parse only, no DB writes)\nsolograph-cli index-youtube --dry-run\n\nIf solograph-cli is not on PATH, try:\n\nuvx solograph-cli index-youtube -c <handle> -n 10\n\nVerification via MCP:\n\nsource_list — check that youtube source appears\nsource_search(\"startup idea\", source=\"youtube\") — test semantic search\nsource_tags — see auto-detected topics from transcripts\nsource_related(video_id) — find related videos by tags"
      },
      {
        "title": "Mode 2: Without MCP (standalone fallback)",
        "body": "If solograph MCP tools are NOT available, use yt-dlp directly to download transcripts and analyze them.\n\nStep 1: Download video list\n\n# Get recent video URLs from a channel\nyt-dlp --flat-playlist --print url \"https://www.youtube.com/@GregIsenberg/videos\" | head -n 10\n\nStep 2: Download transcripts\n\n# Download auto-generated subtitles (no video download)\nyt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format vtt \\\n  -o \"docs/youtube/%(channel)s/%(title)s.%(ext)s\" \\\n  \"<video-url>\"\n\nStep 3: Convert VTT to readable text\n\n# Strip VTT formatting (timestamps, positioning)\nsed '/^$/d; /^[0-9]/d; /^NOTE/d; /^WEBVTT/d; /-->/d' docs/youtube/channel/video.vtt | \\\n  awk '!seen[$0]++' > docs/youtube/channel/video.txt\n\nStep 4: Create index\n\nRead each transcript with the Read tool. For each video, extract:\n\nTitle (from filename or yt-dlp metadata)\nKey topics and insights\nActionable takeaways\nTimestamps for notable segments (if chapter markers exist)\n\nWrite a summary index to docs/youtube/index.md:\n\n# YouTube Knowledge Index\n\n## Channel: {channel_name}\n\n### {video_title}\n- **URL:** {url}\n- **Key topics:** {topic1}, {topic2}\n- **Insights:** {summary}\n- **Actionable:** {takeaway}\n\nStep 5: Search indexed content\n\nWith transcripts saved as text files, use Grep to search:\n\n# Search across all transcripts\ngrep -ri \"startup idea\" docs/youtube/"
      },
      {
        "title": "Output",
        "body": "Report to the user:\n\nNumber of videos indexed\nNumber of transcripts downloaded (vs skipped — no transcript available)\nHow many had chapter markers\nIndex file location\nHow to search the indexed content (MCP tool or Grep command)"
      },
      {
        "title": "\"MISSING: install yt-dlp\"",
        "body": "Cause: yt-dlp not installed.\nFix: Run brew install yt-dlp (macOS), pip install yt-dlp, or pipx install yt-dlp."
      },
      {
        "title": "Videos skipped (no transcript)",
        "body": "Cause: Video has no auto-generated or manual subtitles.\nFix: This is expected — some videos lack transcripts. Only videos with available subtitles can be indexed."
      },
      {
        "title": "Rate limiting from YouTube",
        "body": "Cause: Too many requests in short time.\nFix: Reduce -n limit, add --sleep-interval 2 to yt-dlp commands, or use --cookies-from-browser chrome for authenticated access."
      },
      {
        "title": "solograph-cli not found",
        "body": "Cause: solograph not installed or not on PATH.\nFix: Install with pip install solograph or uvx solograph. Check which solograph-cli."
      }
    ],
    "body": "/index-youtube\n\nIndex YouTube video transcripts into a searchable knowledge base. Supports two modes depending on available tools.\n\nPrerequisites\n\nCheck that yt-dlp is available:\n\nwhich yt-dlp || echo \"MISSING: install yt-dlp (brew install yt-dlp / pip install yt-dlp / pipx install yt-dlp)\"\n\nArguments\n\nParse $ARGUMENTS for channel handles or \"all\":\n\nIf empty or \"all\": index all channels (from config or ask user)\nIf one or more handles: index only those channels (e.g., GregIsenberg ycombinator)\nOptional flags: -n <limit> (max videos per channel, default 10), --dry-run (parse only)\nMode Detection\n\nCheck which mode is available:\n\nMode 1: With solograph MCP (recommended)\n\nIf MCP tools source_search, source_list, source_tags are available, use solograph for indexing and search.\n\nSetup (if not yet installed):\n\n# Install solograph\npip install solograph\n# or\nuvx solograph\n\n\nIndexing via solograph CLI:\n\n# Single channel\nsolograph-cli index-youtube -c GregIsenberg -n 10\n\n# Multiple channels\nsolograph-cli index-youtube -c GregIsenberg -c ycombinator -n 10\n\n# All channels (from channels.yaml in solograph config)\nsolograph-cli index-youtube -n 10\n\n# Dry run (parse only, no DB writes)\nsolograph-cli index-youtube --dry-run\n\n\nIf solograph-cli is not on PATH, try:\n\nuvx solograph-cli index-youtube -c <handle> -n 10\n\n\nVerification via MCP:\n\nsource_list — check that youtube source appears\nsource_search(\"startup idea\", source=\"youtube\") — test semantic search\nsource_tags — see auto-detected topics from transcripts\nsource_related(video_id) — find related videos by tags\nMode 2: Without MCP (standalone fallback)\n\nIf solograph MCP tools are NOT available, use yt-dlp directly to download transcripts and analyze them.\n\nStep 1: Download video list\n\n# Get recent video URLs from a channel\nyt-dlp --flat-playlist --print url \"https://www.youtube.com/@GregIsenberg/videos\" | head -n 10\n\n\nStep 2: Download transcripts\n\n# Download auto-generated subtitles (no video download)\nyt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format vtt \\\n  -o \"docs/youtube/%(channel)s/%(title)s.%(ext)s\" \\\n  \"<video-url>\"\n\n\nStep 3: Convert VTT to readable text\n\n# Strip VTT formatting (timestamps, positioning)\nsed '/^$/d; /^[0-9]/d; /^NOTE/d; /^WEBVTT/d; /-->/d' docs/youtube/channel/video.vtt | \\\n  awk '!seen[$0]++' > docs/youtube/channel/video.txt\n\n\nStep 4: Create index\n\nRead each transcript with the Read tool. For each video, extract:\n\nTitle (from filename or yt-dlp metadata)\nKey topics and insights\nActionable takeaways\nTimestamps for notable segments (if chapter markers exist)\n\nWrite a summary index to docs/youtube/index.md:\n\n# YouTube Knowledge Index\n\n## Channel: {channel_name}\n\n### {video_title}\n- **URL:** {url}\n- **Key topics:** {topic1}, {topic2}\n- **Insights:** {summary}\n- **Actionable:** {takeaway}\n\n\nStep 5: Search indexed content\n\nWith transcripts saved as text files, use Grep to search:\n\n# Search across all transcripts\ngrep -ri \"startup idea\" docs/youtube/\n\nOutput\n\nReport to the user:\n\nNumber of videos indexed\nNumber of transcripts downloaded (vs skipped — no transcript available)\nHow many had chapter markers\nIndex file location\nHow to search the indexed content (MCP tool or Grep command)\nCommon Issues\n\"MISSING: install yt-dlp\"\n\nCause: yt-dlp not installed. Fix: Run brew install yt-dlp (macOS), pip install yt-dlp, or pipx install yt-dlp.\n\nVideos skipped (no transcript)\n\nCause: Video has no auto-generated or manual subtitles. Fix: This is expected — some videos lack transcripts. Only videos with available subtitles can be indexed.\n\nRate limiting from YouTube\n\nCause: Too many requests in short time. Fix: Reduce -n limit, add --sleep-interval 2 to yt-dlp commands, or use --cookies-from-browser chrome for authenticated access.\n\nsolograph-cli not found\n\nCause: solograph not installed or not on PATH. Fix: Install with pip install solograph or uvx solograph. Check which solograph-cli."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/fortunto2/solo-index-youtube",
    "publisherUrl": "https://clawhub.ai/fortunto2/solo-index-youtube",
    "owner": "fortunto2",
    "version": "2.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/solo-index-youtube",
    "downloadUrl": "https://openagent3.xyz/downloads/solo-index-youtube",
    "agentUrl": "https://openagent3.xyz/skills/solo-index-youtube/agent",
    "manifestUrl": "https://openagent3.xyz/skills/solo-index-youtube/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/solo-index-youtube/agent.md"
  }
}