{
  "schemaVersion": "1.0",
  "item": {
    "slug": "downloader-tiktok-videos",
    "name": "Downloader tiktok videos",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/stoxca/downloader-tiktok-videos",
    "canonicalUrl": "https://clawhub.ai/stoxca/downloader-tiktok-videos",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/downloader-tiktok-videos",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=downloader-tiktok-videos",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "download_latest.py",
      "SKILL.md",
      "advanced.md",
      "_meta.json"
    ],
    "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/downloader-tiktok-videos"
    },
    "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/downloader-tiktok-videos",
    "agentPageUrl": "https://openagent3.xyz/skills/downloader-tiktok-videos/agent",
    "manifestUrl": "https://openagent3.xyz/skills/downloader-tiktok-videos/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/downloader-tiktok-videos/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": "Overview",
        "body": "Downloader TikTok Videos downloads the latest video (or multiple videos) from a public TikTok\naccount using yt-dlp. Read this documentation fully before writing any code or running commands."
      },
      {
        "title": "Prerequisites",
        "body": "This skill requires yt-dlp (and optionally ffmpeg for audio/video merging).\n\n⚠️ The commands below modify your host environment (install packages system-wide).\nRun them only if yt-dlp is not already installed and you are comfortable doing so.\n\npip install -U yt-dlp --break-system-packages   # Linux system Python\n# or\npip install -U yt-dlp                           # virtualenv / macOS\nyt-dlp --version                                # verify install"
      },
      {
        "title": "Operation Types",
        "body": "This skill supports four operation types. Determine which one(s) the user needs:\n\nQuick Download — Download the latest video from an account\nBulk Download — Download the N most recent videos\nMetadata Only — Retrieve info/stats without downloading the video\nDirect Video URL — Download from a specific video URL"
      },
      {
        "title": "1. Quick Download — Latest Video from an Account",
        "body": "When to use: User provides a @username or profile URL\n\nSteps:\n\nNormalize the username (strip @ if present)\nBuild the profile URL: https://www.tiktok.com/@{username}\nFetch metadata for the latest video (--playlist-items 1 --no-download)\nShow the user the video info (title, date, duration)\nDownload with the optimal command\nConfirm success and provide the file path\n\nCommand:\n\nyt-dlp \\\n  --playlist-items 1 \\\n  --format \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\" \\\n  --merge-output-format mp4 \\\n  --output \"./%(uploader_id)s_%(upload_date)s_%(id)s.%(ext)s\" \\\n  \"https://www.tiktok.com/@{username}\"\n\nVerify the result:\n\nls -lh ./*.mp4"
      },
      {
        "title": "2. Bulk Download — N Most Recent Videos",
        "body": "When to use: User wants multiple videos\n\nSteps:\n\nAsk how many videos (if not specified, default = 5)\nBuild the command with --playlist-items 1-N\nAdd --download-archive to avoid duplicates\nDownload with progress output\nList downloaded files\n\nCommand:\n\nyt-dlp \\\n  --playlist-items 1-{N} \\\n  --format \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\" \\\n  --merge-output-format mp4 \\\n  --download-archive ./tiktok_archive.txt \\\n  --output \"./%(uploader_id)s/%(upload_date)s_%(id)s.%(ext)s\" \\\n  \"https://www.tiktok.com/@{username}\""
      },
      {
        "title": "3. Metadata Only",
        "body": "When to use: User wants video info without downloading\n\nRead: references/metadata.md for all available fields and the full command\n\nQuick command:\n\nyt-dlp \\\n  --playlist-items 1 \\\n  --skip-download \\\n  --write-info-json \\\n  --print \"%(uploader_id)s | %(upload_date)s | %(duration)ss | %(view_count)s views | %(title)s\" \\\n  \"https://www.tiktok.com/@{username}\""
      },
      {
        "title": "4. Direct Video URL",
        "body": "When to use: User provides a direct video URL\n\nCommand:\n\nyt-dlp \\\n  --format \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\" \\\n  --merge-output-format mp4 \\\n  --output \"./%(uploader_id)s_%(id)s.%(ext)s\" \\\n  \"{video_url}\""
      },
      {
        "title": "Common Errors",
        "body": "ErrorCauseFixHTTP Error 403TikTok rate limitingAdd --sleep-interval 3 --max-sleep-interval 6Unable to extractOutdated yt-dlppip install -U yt-dlp --break-system-packagesPrivate accountPrivate accountUse --cookies-from-browser chrome if logged in ⚠️ exports session cookies — keep them privateNo video formatsGeo-restrictionAdd --geo-bypassSign in requiredRestricted contentProvide cookies via --cookies cookies.txt ⚠️ treat this file like a passwordMerge requires ffmpegffmpeg missingapt-get install ffmpeg -y\n\n⚠️ Cookie security note: Browser cookies exported via --cookies-from-browser or cookies.txt\ncontain active session tokens. Never share these files, commit them to version control, or pass\nthem to untrusted scripts. Delete them after use if no longer needed."
      },
      {
        "title": "Username Normalization",
        "body": "# Accepts all these formats:\n# @myaccount  →  myaccount\n# myaccount   →  myaccount\n# https://www.tiktok.com/@myaccount  →  myaccount\n\ndef normalize(input_str):\n    if \"tiktok.com/@\" in input_str:\n        return input_str.split(\"tiktok.com/@\")[-1].split(\"/\")[0]\n    return input_str.lstrip(\"@\").strip()"
      },
      {
        "title": "Reference Files",
        "body": "Load these references as needed:\n\nreferences/metadata.md\n\nWhen: Fetching metadata, working with JSON fields\nContains: All available yt-dlp fields, print format examples, JSON export\n\nreferences/advanced.md\n\nWhen: Watermark removal, cookies, proxy, custom headers\nContains: Advanced techniques, restriction bypass, full yt-dlp options\n\nKBLICENSE.txt\n\nWhen: Questions about usage rights or Terms of Service\nContains: Usage conditions, permitted and prohibited uses"
      },
      {
        "title": "Output Guidelines",
        "body": "Always display metadata before downloading (title, date, duration)\nConfirm the downloaded file path\nShow the final file size\nOn error, propose the fix directly"
      },
      {
        "title": "Example Queries",
        "body": "Quick download:\n\n\"Download the latest video from @someaccount\"\n\"Get the latest TikTok post from myaccount\"\n\"Download the last video from https://www.tiktok.com/@user\"\n\nBulk download:\n\n\"Download the 5 latest videos from @user\"\n\"Get the last 10 videos from @account\"\n\nMetadata:\n\n\"Give me the info on the latest video from @user\"\n\"What is the title and date of the last post from @account\"\n\nDirect URL:\n\n\"Download this TikTok video: https://www.tiktok.com/@user/video/123456\""
      }
    ],
    "body": "Downloader TikTok Videos\nOverview\n\nDownloader TikTok Videos downloads the latest video (or multiple videos) from a public TikTok account using yt-dlp. Read this documentation fully before writing any code or running commands.\n\nPrerequisites\n\nThis skill requires yt-dlp (and optionally ffmpeg for audio/video merging).\n\n⚠️ The commands below modify your host environment (install packages system-wide). Run them only if yt-dlp is not already installed and you are comfortable doing so.\n\npip install -U yt-dlp --break-system-packages   # Linux system Python\n# or\npip install -U yt-dlp                           # virtualenv / macOS\nyt-dlp --version                                # verify install\n\nOperation Types\n\nThis skill supports four operation types. Determine which one(s) the user needs:\n\nQuick Download — Download the latest video from an account\nBulk Download — Download the N most recent videos\nMetadata Only — Retrieve info/stats without downloading the video\nDirect Video URL — Download from a specific video URL\nWorkflows\n1. Quick Download — Latest Video from an Account\n\nWhen to use: User provides a @username or profile URL\n\nSteps:\n\nNormalize the username (strip @ if present)\nBuild the profile URL: https://www.tiktok.com/@{username}\nFetch metadata for the latest video (--playlist-items 1 --no-download)\nShow the user the video info (title, date, duration)\nDownload with the optimal command\nConfirm success and provide the file path\n\nCommand:\n\nyt-dlp \\\n  --playlist-items 1 \\\n  --format \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\" \\\n  --merge-output-format mp4 \\\n  --output \"./%(uploader_id)s_%(upload_date)s_%(id)s.%(ext)s\" \\\n  \"https://www.tiktok.com/@{username}\"\n\n\nVerify the result:\n\nls -lh ./*.mp4\n\n2. Bulk Download — N Most Recent Videos\n\nWhen to use: User wants multiple videos\n\nSteps:\n\nAsk how many videos (if not specified, default = 5)\nBuild the command with --playlist-items 1-N\nAdd --download-archive to avoid duplicates\nDownload with progress output\nList downloaded files\n\nCommand:\n\nyt-dlp \\\n  --playlist-items 1-{N} \\\n  --format \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\" \\\n  --merge-output-format mp4 \\\n  --download-archive ./tiktok_archive.txt \\\n  --output \"./%(uploader_id)s/%(upload_date)s_%(id)s.%(ext)s\" \\\n  \"https://www.tiktok.com/@{username}\"\n\n3. Metadata Only\n\nWhen to use: User wants video info without downloading\n\nRead: references/metadata.md for all available fields and the full command\n\nQuick command:\n\nyt-dlp \\\n  --playlist-items 1 \\\n  --skip-download \\\n  --write-info-json \\\n  --print \"%(uploader_id)s | %(upload_date)s | %(duration)ss | %(view_count)s views | %(title)s\" \\\n  \"https://www.tiktok.com/@{username}\"\n\n4. Direct Video URL\n\nWhen to use: User provides a direct video URL\n\nCommand:\n\nyt-dlp \\\n  --format \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\" \\\n  --merge-output-format mp4 \\\n  --output \"./%(uploader_id)s_%(id)s.%(ext)s\" \\\n  \"{video_url}\"\n\nCommon Errors\nError\tCause\tFix\nHTTP Error 403\tTikTok rate limiting\tAdd --sleep-interval 3 --max-sleep-interval 6\nUnable to extract\tOutdated yt-dlp\tpip install -U yt-dlp --break-system-packages\nPrivate account\tPrivate account\tUse --cookies-from-browser chrome if logged in ⚠️ exports session cookies — keep them private\nNo video formats\tGeo-restriction\tAdd --geo-bypass\nSign in required\tRestricted content\tProvide cookies via --cookies cookies.txt ⚠️ treat this file like a password\nMerge requires ffmpeg\tffmpeg missing\tapt-get install ffmpeg -y\n\n⚠️ Cookie security note: Browser cookies exported via --cookies-from-browser or cookies.txt contain active session tokens. Never share these files, commit them to version control, or pass them to untrusted scripts. Delete them after use if no longer needed.\n\nUsername Normalization\n# Accepts all these formats:\n# @myaccount  →  myaccount\n# myaccount   →  myaccount\n# https://www.tiktok.com/@myaccount  →  myaccount\n\ndef normalize(input_str):\n    if \"tiktok.com/@\" in input_str:\n        return input_str.split(\"tiktok.com/@\")[-1].split(\"/\")[0]\n    return input_str.lstrip(\"@\").strip()\n\nReference Files\n\nLoad these references as needed:\n\nreferences/metadata.md\n\nWhen: Fetching metadata, working with JSON fields\nContains: All available yt-dlp fields, print format examples, JSON export\n\nreferences/advanced.md\n\nWhen: Watermark removal, cookies, proxy, custom headers\nContains: Advanced techniques, restriction bypass, full yt-dlp options\n\nKBLICENSE.txt\n\nWhen: Questions about usage rights or Terms of Service\nContains: Usage conditions, permitted and prohibited uses\nOutput Guidelines\nAlways display metadata before downloading (title, date, duration)\nConfirm the downloaded file path\nShow the final file size\nOn error, propose the fix directly\nExample Queries\n\nQuick download:\n\n\"Download the latest video from @someaccount\"\n\"Get the latest TikTok post from myaccount\"\n\"Download the last video from https://www.tiktok.com/@user\"\n\nBulk download:\n\n\"Download the 5 latest videos from @user\"\n\"Get the last 10 videos from @account\"\n\nMetadata:\n\n\"Give me the info on the latest video from @user\"\n\"What is the title and date of the last post from @account\"\n\nDirect URL:\n\n\"Download this TikTok video: https://www.tiktok.com/@user/video/123456\""
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/stoxca/downloader-tiktok-videos",
    "publisherUrl": "https://clawhub.ai/stoxca/downloader-tiktok-videos",
    "owner": "stoxca",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/downloader-tiktok-videos",
    "downloadUrl": "https://openagent3.xyz/downloads/downloader-tiktok-videos",
    "agentUrl": "https://openagent3.xyz/skills/downloader-tiktok-videos/agent",
    "manifestUrl": "https://openagent3.xyz/skills/downloader-tiktok-videos/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/downloader-tiktok-videos/agent.md"
  }
}