← Back to Skills Marketplace
scavio-ai

Scavio Tiktok

by scavio-ai · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
50
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install scavio-tiktok
Description
Look up TikTok profiles, search videos and users, explore hashtags, read comments, and traverse the social graph (followers/followings). Eleven endpoints, al...
README (SKILL.md)

TikTok Profiles, Videos, Comments, Hashtags and Social Graph via Scavio

Search TikTok videos and users, look up profiles, read comments and replies, explore hashtags, and list followers/followings. Returns structured JSON with engagement stats, video metadata, and social graph data.

When to trigger

Use this skill when the user asks to:

  • Look up a TikTok creator's profile, follower count, or bio
  • Search TikTok for videos by keyword or topic
  • Search for TikTok users/creators
  • Get details, stats, or engagement metrics for a specific TikTok video
  • Read comments or replies on a TikTok video
  • Explore a hashtag's stats or trending videos
  • List a creator's followers or who they follow
  • Analyze TikTok trends, influencer reach, or content performance
  • Build RAG pipelines that need short-form video context

Setup

Get a free API key at https://scavio.dev (1,000 free credits/month, no card required):

export SCAVIO_API_KEY=sk_live_your_key

Workflow

  1. Resolving a username: most endpoints require a sec_user_id. Call /tiktok/profile with a username first, then use data.user.sec_uid for subsequent requests.
  2. Browsing a creator's videos: call /tiktok/user/posts with the sec_user_id. Use sort_type: "1" for most popular.
  3. Video deep-dive: call /tiktok/video with a video_id for full details including play URLs, cover images, and duration.
  4. Reading comments: call /tiktok/video/comments for top-level comments, then /tiktok/video/comments/replies with a comment_id for threaded replies.
  5. Searching: call /tiktok/search/videos or /tiktok/search/users with a keyword. Filter by publish_time and sort_type.
  6. Hashtag research: call /tiktok/hashtag by name to get the hashtag_id and view counts, then /tiktok/hashtag/videos to list videos under it.
  7. Social graph: call /tiktok/user/followers or /tiktok/user/followings with a sec_user_id.

Endpoints

Endpoint Credits Description
POST https://api.scavio.dev/api/v1/tiktok/profile 1 Get user profile by username or sec_user_id
POST https://api.scavio.dev/api/v1/tiktok/user/posts 1 List a user's videos (paginated, sortable)
POST https://api.scavio.dev/api/v1/tiktok/video 1 Get full details for a single video
POST https://api.scavio.dev/api/v1/tiktok/video/comments 1 List comments on a video
POST https://api.scavio.dev/api/v1/tiktok/video/comments/replies 1 List replies to a specific comment
POST https://api.scavio.dev/api/v1/tiktok/search/videos 1 Search videos by keyword
POST https://api.scavio.dev/api/v1/tiktok/search/users 1 Search users by keyword
POST https://api.scavio.dev/api/v1/tiktok/hashtag 1 Get hashtag details and stats
POST https://api.scavio.dev/api/v1/tiktok/hashtag/videos 1 List videos for a hashtag
POST https://api.scavio.dev/api/v1/tiktok/user/followers 1 List a user's followers
POST https://api.scavio.dev/api/v1/tiktok/user/followings 1 List accounts a user follows
Authorization: Bearer $SCAVIO_API_KEY

Profile Parameters

Parameter Type Default Description
username string -- TikTok handle (without @). One of username or sec_user_id required.
sec_user_id string -- Secure user ID. One of username or sec_user_id required.

User Posts Parameters

Parameter Type Default Description
sec_user_id string required Secure user ID from profile endpoint
cursor string "0" Pagination cursor. Use data.max_cursor from previous response.
count number 20 Results per page (1-30)
sort_type string "0" "0" = latest, "1" = popular

Video Detail Parameters

Parameter Type Default Description
video_id string required TikTok video ID

Video Comments Parameters

Parameter Type Default Description
video_id string required Video ID
cursor string "0" Pagination cursor
count number 20 Results per page (1-50)

Comment Replies Parameters

Parameter Type Default Description
video_id string required Video ID
comment_id string required Comment ID (cid from comments endpoint)
cursor string "0" Pagination cursor
count number 20 Results per page (1-50)

Search Videos Parameters

Parameter Type Default Description
keyword string required Search query (1-500 chars)
cursor string "0" Pagination offset
count number 20 Results per page (1-30)
sort_type string "0" "0" = relevance, "1" = most likes
publish_time string "0" "0" = all time, "1" = last day, "7" = week, "30" = month, "90" = 3 months, "180" = 6 months

Search Users Parameters

Parameter Type Default Description
keyword string required Search query (1-500 chars)
cursor string "0" Pagination offset
count number 20 Results per page (1-30)

Hashtag Parameters

Parameter Type Default Description
hashtag_name string -- Hashtag text (without #). One of hashtag_name or hashtag_id required.
hashtag_id string -- Numeric hashtag ID. One of hashtag_name or hashtag_id required.

Hashtag Videos Parameters

Parameter Type Default Description
hashtag_id string required From hashtag info endpoint
cursor string "0" Pagination cursor
count number 20 Results per page (1-30)

Followers / Followings Parameters

Parameter Type Default Description
sec_user_id string required From profile endpoint
count number 20 Results per page (1-20)
page_token string -- From previous response data.next_page_token
min_time number -- From previous response data.min_time

Pagination Reference

Style Endpoints Next page Stop condition
Cursor string user/posts cursor = data.max_cursor data.has_more === 0
Offset number search/*, hashtag/videos, video/comments, video/comments/replies cursor = data.cursor data.has_more === 0
Token + time user/followers, user/followings page_token + min_time data.has_more === false

Examples

import os, requests

BASE = "https://api.scavio.dev"
HEADERS = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"}

# 1. Look up a profile
profile = requests.post(f"{BASE}/api/v1/tiktok/profile", headers=HEADERS,
    json={"username": "tiktok"}).json()

sec_uid = profile["data"]["user"]["sec_uid"]
print(f"{profile['data']['user']['nickname']}: {profile['data']['user']['follower_count']} followers")

# 2. List their most popular videos
posts = requests.post(f"{BASE}/api/v1/tiktok/user/posts", headers=HEADERS,
    json={"sec_user_id": sec_uid, "sort_type": "1", "count": 5}).json()

for v in posts["data"]["aweme_list"]:
    print(f"{v['desc'][:60]}  -- {v['statistics']['play_count']} views")

# 3. Get details for a specific video
video = requests.post(f"{BASE}/api/v1/tiktok/video", headers=HEADERS,
    json={"video_id": "7350810998023949599"}).json()

detail = video["data"]["aweme_detail"]
print(f"Likes: {detail['statistics']['digg_count']}, Comments: {detail['statistics']['comment_count']}")

# 4. Read comments on that video
comments = requests.post(f"{BASE}/api/v1/tiktok/video/comments", headers=HEADERS,
    json={"video_id": "7350810998023949599", "count": 10}).json()

for c in comments["data"]["comments"]:
    print(f"@{c['user']['unique_id']}: {c['text']}")

# 5. Search for videos
results = requests.post(f"{BASE}/api/v1/tiktok/search/videos", headers=HEADERS,
    json={"keyword": "cooking recipe", "count": 10, "publish_time": "7"}).json()

# 6. Explore a hashtag
tag = requests.post(f"{BASE}/api/v1/tiktok/hashtag", headers=HEADERS,
    json={"hashtag_name": "fyp"}).json()

tag_id = tag["data"]["challengeInfo"]["challenge"]["id"]
print(f"#{tag['data']['challengeInfo']['challenge']['title']}: {tag['data']['challengeInfo']['stats']['viewCount']} views")

# 7. List hashtag videos
tag_vids = requests.post(f"{BASE}/api/v1/tiktok/hashtag/videos", headers=HEADERS,
    json={"hashtag_id": tag_id, "count": 10}).json()

Profile Response

{
  "data": {
    "user": {
      "unique_id": "tiktok",
      "nickname": "TikTok",
      "sec_uid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
      "uid": "107955",
      "signature": "One TikTok can make a big impact",
      "bio_url": "linktr.ee/tiktok",
      "follower_count": 94066595,
      "following_count": 1,
      "aweme_count": 1511,
      "total_favorited": 458010199
    }
  },
  "response_time": 1428,
  "credits_used": 1,
  "credits_remaining": 6545
}

Video Detail Response

{
  "data": {
    "aweme_detail": {
      "aweme_id": "7350810998023949599",
      "desc": "im so sick of being tired im so tired of being sick",
      "create_time": 1711494099,
      "statistics": {
        "digg_count": 2002382,
        "comment_count": 8119,
        "play_count": 12171757,
        "share_count": 274978,
        "collect_count": 211332
      }
    }
  },
  "response_time": 1605,
  "credits_used": 1,
  "credits_remaining": 6544
}

Hashtag Response

{
  "data": {
    "challengeInfo": {
      "challenge": {
        "id": "229207",
        "title": "fyp",
        "desc": "",
        "stats": {
          "videoCount": 0,
          "viewCount": 119178100000000
        }
      }
    }
  },
  "response_time": 969,
  "credits_used": 1,
  "credits_remaining": 6543
}

Guardrails

  • All TikTok calls cost 1 credit each. Inform the user before paginating through many pages.
  • Never fabricate usernames, video captions, follower counts, or comment text. Only return API data.
  • Most endpoints require a sec_user_id, not a username. Always resolve via the profile endpoint first.
  • All create_time fields are Unix timestamps in seconds. Multiply by 1000 for JavaScript Date.
  • Avatar and image fields return an object with a url_list array. Use .url_list[0] for the URL.
  • Do not silently omit any data. Surface all fields so the user can decide what to use.

Failure handling

  • 401 means the API key is invalid or missing. Prompt the user to check their SCAVIO_API_KEY.
  • 429 means rate limit exceeded. Wait before retrying. See https://scavio.dev/docs/rate-limits.
  • 502 / 503 mean upstream is temporarily unavailable. Wait a few seconds before retrying.
  • If search returns no results, suggest different keywords, a broader publish_time, or a different sort_type.
  • If SCAVIO_API_KEY is not set, prompt the user to export it before continuing.

LangChain

pip install scavio-langchain
from scavio_langchain import ScavioSearchTool
tool = ScavioSearchTool(engine="tiktok")
Usage Guidance
This skill appears coherent and read-only, but install it only if you trust Scavio with your TikTok research queries and are comfortable giving the agent access to a Scavio API key that may consume account credits.
Capability Analysis
Type: OpenClaw Skill Name: scavio-tiktok Version: 1.0.0 The scavio-tiktok skill is a standard API wrapper for interacting with TikTok data via the Scavio service (api.scavio.dev). The SKILL.md file provides clear instructions for the agent to resolve usernames, search videos, and handle pagination, with appropriate guardrails for data integrity and error handling. No evidence of data exfiltration, malicious execution, or prompt injection was found.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
The advertised capabilities—TikTok profile lookup, video/user search, comments, hashtags, and follower/following lists—match the documented endpoints and appear read-only.
Instruction Scope
The workflow is scoped to user-requested TikTok research tasks and does not instruct the agent to override user intent, persist data, or perform unrelated actions.
Install Mechanism
There is no install spec and no code files; the artifact is instruction-only.
Credentials
The skill requires a Scavio API key and makes external API calls to Scavio, which is expected for the stated integration.
Persistence & Privilege
It uses a bearer API key for Scavio access, but the artifacts do not show local persistence, background execution, credential logging, or account mutation.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install scavio-tiktok
  3. After installation, invoke the skill by name or use /scavio-tiktok
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of scavio-tiktok - Search and retrieve TikTok profiles, videos, hashtags, comments, followers, and followings with structured JSON responses. - Eleven API endpoints available, each at 1 credit per request. - Supports video/user search, profile lookups, hashtag exploration, and detailed video/comment analytics. - Requires SCAVIO_API_KEY for authentication. - Detailed usage instructions, endpoint descriptions, and parameter tables included in documentation.
Metadata
Slug scavio-tiktok
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Scavio Tiktok?

Look up TikTok profiles, search videos and users, explore hashtags, read comments, and traverse the social graph (followers/followings). Eleven endpoints, al... It is an AI Agent Skill for Claude Code / OpenClaw, with 50 downloads so far.

How do I install Scavio Tiktok?

Run "/install scavio-tiktok" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Scavio Tiktok free?

Yes, Scavio Tiktok is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Scavio Tiktok support?

Scavio Tiktok is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Scavio Tiktok?

It is built and maintained by scavio-ai (@scavio-ai); the current version is v1.0.0.

💬 Comments