{
  "schemaVersion": "1.0",
  "item": {
    "slug": "video-download-faas",
    "name": "Video Download FaaS",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/LAsurvivor/video-download-faas",
    "canonicalUrl": "https://clawhub.ai/LAsurvivor/video-download-faas",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/video-download-faas",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=video-download-faas",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/check-status.sh",
      "scripts/download.sh",
      "scripts/kill-download.sh"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/video-download-faas"
    },
    "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/video-download-faas",
    "agentPageUrl": "https://openagent3.xyz/skills/video-download-faas/agent",
    "manifestUrl": "https://openagent3.xyz/skills/video-download-faas/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/video-download-faas/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": "Video Download FaaS",
        "body": "Download videos asynchronously using yt-dlp in isolated background processes. All downloads are saved as MP4 files."
      },
      {
        "title": "Overview",
        "body": "This skill manages video downloads as background tasks that:\n\nStart immediately and return control to the user\nContinue running even if the session disconnects\nCan be monitored for progress\nCan be terminated when needed"
      },
      {
        "title": "When to Use",
        "body": "Use this skill when:\n\nDownloading large videos that take time\nProcessing multiple videos concurrently\nRunning downloads on remote/headless systems\nNeed to continue working while downloading"
      },
      {
        "title": "Start a Download",
        "body": "scripts/download.sh \"https://youtube.com/watch?v=...\"\n\nReturns immediately with:\n\nSession ID\nProcess ID (PID)\nLog file location"
      },
      {
        "title": "Check Status",
        "body": "# List all active downloads\nscripts/check-status.sh\n\n# Check specific download\nscripts/check-status.sh video_dl_1234567890_12345"
      },
      {
        "title": "Kill Download",
        "body": "# Graceful stop\nscripts/kill-download.sh video_dl_1234567890_12345\n\n# Force kill\nscripts/kill-download.sh video_dl_1234567890_12345 --force"
      },
      {
        "title": "download.sh",
        "body": "Start a video download in background with MP4 output format.\n\nUsage:\n\ndownload.sh <URL> [output_directory]\n\nParameters:\n\nURL - Video URL to download (required)\noutput_directory - Where to save video (optional, default: ~/Downloads)\n\nOutput Format:\n\nDownloads are automatically converted to MP4 format\nUses best available MP4 video + M4A audio, merged into MP4\nIf source isn't MP4, it will be re-encoded to MP4\n\nReturns:\n\nSession ID for tracking\nPID for process management\nPaths to log and session files\n\nExample:\n\nscripts/download.sh \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" /tmp/videos"
      },
      {
        "title": "check-status.sh",
        "body": "Check download progress and status.\n\nUsage:\n\n# List all sessions\ncheck-status.sh\n\n# Check specific session\ncheck-status.sh <session_id>\n\nReturns:\n\nProcess status (running/completed)\nDownload progress (if running)\nDownloaded files (if completed)\nError information (if failed)"
      },
      {
        "title": "kill-download.sh",
        "body": "Terminate a running download.\n\nUsage:\n\nkill-download.sh <session_id> [--force]\n\nParameters:\n\nsession_id - The session ID from download.sh\n--force - Use SIGKILL instead of SIGTERM"
      },
      {
        "title": "Session Management",
        "body": "Session files are stored in /tmp/ with format:\n\nvideo_dl_{timestamp}_{pid}.session - Session metadata\nvideo_dl_{timestamp}_{pid}.pid - Process ID\nvideo_dl_{timestamp}_{pid}.log - Download log\n\nSessions are automatically cleaned up when:\n\nDownload completes successfully\nProcess is killed via kill-download.sh"
      },
      {
        "title": "FaaS Integration",
        "body": "For containerized/Firecracker execution:\n\n# Run download in isolated container\n./run-in-container.sh scripts/download.sh \"URL\"\n\n# Check from host\nscripts/check-status.sh"
      },
      {
        "title": "Troubleshooting",
        "body": "Download not starting:\n\nCheck yt-dlp is installed: yt-dlp --version\nVerify URL is accessible: curl -I \"URL\"\n\nProcess not found:\n\nSession may have completed and auto-cleaned\nCheck ~/Downloads for finished files\n\nPermission denied:\n\nEnsure scripts are executable: chmod +x scripts/*.sh"
      },
      {
        "title": "Requirements",
        "body": "yt-dlp installed and in PATH\nBash 4.0+\nWrite access to /tmp and output directory"
      }
    ],
    "body": "Video Download FaaS\n\nDownload videos asynchronously using yt-dlp in isolated background processes. All downloads are saved as MP4 files.\n\nOverview\n\nThis skill manages video downloads as background tasks that:\n\nStart immediately and return control to the user\nContinue running even if the session disconnects\nCan be monitored for progress\nCan be terminated when needed\nWhen to Use\n\nUse this skill when:\n\nDownloading large videos that take time\nProcessing multiple videos concurrently\nRunning downloads on remote/headless systems\nNeed to continue working while downloading\nQuick Start\nStart a Download\nscripts/download.sh \"https://youtube.com/watch?v=...\"\n\n\nReturns immediately with:\n\nSession ID\nProcess ID (PID)\nLog file location\nCheck Status\n# List all active downloads\nscripts/check-status.sh\n\n# Check specific download\nscripts/check-status.sh video_dl_1234567890_12345\n\nKill Download\n# Graceful stop\nscripts/kill-download.sh video_dl_1234567890_12345\n\n# Force kill\nscripts/kill-download.sh video_dl_1234567890_12345 --force\n\nCommands\ndownload.sh\n\nStart a video download in background with MP4 output format.\n\nUsage:\n\ndownload.sh <URL> [output_directory]\n\n\nParameters:\n\nURL - Video URL to download (required)\noutput_directory - Where to save video (optional, default: ~/Downloads)\n\nOutput Format:\n\nDownloads are automatically converted to MP4 format\nUses best available MP4 video + M4A audio, merged into MP4\nIf source isn't MP4, it will be re-encoded to MP4\n\nReturns:\n\nSession ID for tracking\nPID for process management\nPaths to log and session files\n\nExample:\n\nscripts/download.sh \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" /tmp/videos\n\ncheck-status.sh\n\nCheck download progress and status.\n\nUsage:\n\n# List all sessions\ncheck-status.sh\n\n# Check specific session\ncheck-status.sh <session_id>\n\n\nReturns:\n\nProcess status (running/completed)\nDownload progress (if running)\nDownloaded files (if completed)\nError information (if failed)\nkill-download.sh\n\nTerminate a running download.\n\nUsage:\n\nkill-download.sh <session_id> [--force]\n\n\nParameters:\n\nsession_id - The session ID from download.sh\n--force - Use SIGKILL instead of SIGTERM\nSession Management\n\nSession files are stored in /tmp/ with format:\n\nvideo_dl_{timestamp}_{pid}.session - Session metadata\nvideo_dl_{timestamp}_{pid}.pid - Process ID\nvideo_dl_{timestamp}_{pid}.log - Download log\n\nSessions are automatically cleaned up when:\n\nDownload completes successfully\nProcess is killed via kill-download.sh\nFaaS Integration\n\nFor containerized/Firecracker execution:\n\n# Run download in isolated container\n./run-in-container.sh scripts/download.sh \"URL\"\n\n# Check from host\nscripts/check-status.sh\n\nTroubleshooting\n\nDownload not starting:\n\nCheck yt-dlp is installed: yt-dlp --version\nVerify URL is accessible: curl -I \"URL\"\n\nProcess not found:\n\nSession may have completed and auto-cleaned\nCheck ~/Downloads for finished files\n\nPermission denied:\n\nEnsure scripts are executable: chmod +x scripts/*.sh\nRequirements\nyt-dlp installed and in PATH\nBash 4.0+\nWrite access to /tmp and output directory"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/LAsurvivor/video-download-faas",
    "publisherUrl": "https://clawhub.ai/LAsurvivor/video-download-faas",
    "owner": "LAsurvivor",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/video-download-faas",
    "downloadUrl": "https://openagent3.xyz/downloads/video-download-faas",
    "agentUrl": "https://openagent3.xyz/skills/video-download-faas/agent",
    "manifestUrl": "https://openagent3.xyz/skills/video-download-faas/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/video-download-faas/agent.md"
  }
}