tiktok-collection-scraper

Scrape TikTok user collection folders and their video links with full metadata (plays, likes, comments, shares). Use when user asks to get, scrape, fetch, extract, or download TikTok collections, favorites, saved videos, bookmarks, or collection folder contents for any TikTok account. Accepts any user identifier — username, @username, profile URL, video URL, short link (vm.tiktok.com), user_id, or secUid. Zero external API dependency, no paid service needed, only requires curl_cffi. Works without login cookies for public collections (~80% coverage). Also use for TikTok competitor analysis, content research, viral video discovery, or building video databases.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "tiktok-collection-scraper" with this command: npx skills add yulin7645/tiktok-skills/yulin7645-tiktok-skills-tiktok-collection-scraper

TikTok Collection Scraper

Batch extract TikTok user collection folders and their video links — including play counts, likes, comments, and shares. Zero external API, no paid service, just curl_cffi.

Features

  • 🔓 No login required — works without cookies for public collections (~80% coverage)
  • 🔑 Full access with cookie — get all collections including private ones (100%)
  • 🚀 Zero external API — only needs curl_cffi, no TikHub/RapidAPI/paid services
  • 📥 7 input formats — username, @username, profile URL, video URL, short link, user_id, secUid
  • 📊 Rich metadata — plays, likes, comments, shares per video
  • Fast — 50 collections + 300 videos in ~40 seconds

Prerequisites

Ensure curl_cffi is installed:

pip install curl_cffi

Quick Start

Run the bundled script. All paths below are relative to this skill's directory.

# Guest mode (public collections, no cookie needed)
python3 scripts/scrape_collections.py <target> -o /tmp/result.json

# Login mode (all collections, 100% coverage)
python3 scripts/scrape_collections.py <target> --cookie /path/to/cookie.txt -o /tmp/result.json

Supported Input Formats

FormatExample
Usernamechengfeng_yulin
@Username@chengfeng_yulin
Profile URLhttps://www.tiktok.com/@chengfeng_yulin
Video URLhttps://www.tiktok.com/@user/video/7602514407133941000
Short linkhttps://vm.tiktok.com/ZMkVKQxsb/
User ID6811802142106764293
secUidMS4wLjABAAAA...

Output Format

JSON with structure:

{
  "target": "chengfeng_yulin",
  "secUid": "MS4wLjAB...",
  "uid": "68118...",
  "uniqueId": "chengfeng_yulin",
  "mode": "guest",
  "totalCollections": 50,
  "totalVideos": 308,
  "elapsedSeconds": 40.0,
  "collections": [
    {
      "collectionId": "760379...",
      "name": "收藏夹名称",
      "expected": 3,
      "actual": 3,
      "items": [
        {
          "id": "760251...",
          "url": "https://www.tiktok.com/@author/video/760251...",
          "desc": "Video description...",
          "author": "author_username",
          "plays": 2000000,
          "likes": 25100,
          "comments": 632,
          "shares": 85000
        }
      ]
    }
  ]
}

Cookie

  • Not needed for public collections (status=3, typically ~50% of folders, ~80% of videos)
  • Needed for private collections (status=1) — must be the target account's own login cookie
  • Cookie format: raw cookie string from browser (semicolon-separated key=value pairs)

How It Works

Uses TikTok's internal web APIs with curl_cffi for Chrome TLS fingerprint impersonation:

  1. Resolve user — any input format → secUid (via TikTok's own redirects and page parsing)
  2. Fetch collectionsGET /api/user/collection_list/ (no auth needed)
  3. Fetch videosGET /api/collection/item_list/ with sourceType=113 (the undocumented key parameter)

sourceType=113 is an undocumented parameter discovered through browser request interception. Without it, the API returns success with empty results.

See references/api-notes.md for full API documentation.

Error Handling

  • ⚠️ = fewer videos than expected (likely deleted videos)
  • = zero videos returned (video removed or API issue)
  • Script retries failed requests up to 3 times with 5s backoff
  • Progress is printed to stderr; JSON output goes to stdout (or file with -o)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

learn-anything-in-one-hour

Teach users any new skill/knowledge X in ~1 hour using a fixed 4-step workflow optimized for complete beginners, focusing on 80/20 rule for maximum value in minimum time. Triggers when user asks to learn something new quickly, or mentions "learn X in one hour".

Archived SourceRecently Updated
Research

X/Twitter Research

# X/Twitter Research Skill

Archived SourceRecently Updated
Research

council

Convene the Council of High Intelligence — multi-persona deliberation with historical thinkers for deeper analysis of complex problems.

Archived SourceRecently Updated
Research

polymarket-openclaw-trader

Reusable Polymarket + OpenClaw trading operations skill for any workspace. Use when the user needs to set up, run, tune, monitor, and deploy an automated Polymarket trading project (paper/live), including env configuration, risk controls, reporting, and dashboard operations.

Archived SourceRecently Updated