Use this skill to research public TikTok videos: discover videos with market filters, inspect one video's performance, identify products promoted by a shoppable video, or read its public comments.
Core Concepts
- This is a read-only public-market research skill. It does not upload, publish, edit, or delete TikTok videos.
- Search returns
data.items[]plusdata.total_count. Reuse an item'sidfor detail, product, or review drill-downs. - Detail returns the main profile in
data.items[];include=coreadditionally returns normalized performance metrics indata.core.items[]. - Related-product and review rows use endpoint-specific prefixed fields. Read
references/api.mdbefore interpreting them. - Money-like values can be objects such as
{ "unit": "US", "value": 402056 }. Preserve the returned unit and value; do not treat them as plain numbers or silently convert currency. - Always preserve the returned
country_code. Do not relabel a row solely from the requested marketplace.
Data Fields
| Field | Meaning |
|---|---|
id |
Video, product, or comment identifier for the current endpoint |
video_desc |
Video caption or description |
share_url |
Public TikTok URL |
author_id / author_unique_id |
Creator identifiers |
video_play_count / video_like_count |
Lifetime plays and likes |
video_comment_count / video_share_count / video_collect_count |
Engagement counts |
video_engagement_rate |
Returned decimal engagement rate; format as a percentage only when clearly labeled |
video_30d_gpm |
30-day GMV per thousand views; not a percentage |
data.core.items[] |
Optional normalized core metrics from detail include=core |
tiktok_video_detail_product_* |
Product and video-commerce fields from related products |
tiktok_video_detail_comment_* |
Comment identity, text, author, likes, replies, and timestamp |
Endpoints
| User goal | Endpoint | Script |
|---|---|---|
| Search public videos | /chuhaijiang/videos/search |
chuhaijiang_video_search.py |
| Inspect one video | /chuhaijiang/videos/detail |
chuhaijiang_video_detail.py |
| Find products promoted by a video | /chuhaijiang/videos/related-products |
chuhaijiang_video_related_products.py |
| Read video comments | /chuhaijiang/videos/reviews |
chuhaijiang_video_reviews.py |
Call only the endpoint required by the user's current question. A normal video can legitimately return an empty related-product list; do not replace it with another video without user approval.
Parameter Guide
country: lowercase request context/site code:br,de,es,fr,gb,id,it,jp,mx,my,ph,sg,th,us,vn. The row-levelcountry_codecan differ from the request value, so preserve both.page: starts at 1.pageSizecontrols the returned page size and must not exceed 10.id: required for detail, related products, and reviews. Pass it as a JSON string to preserve 19-digit identifiers.include: detail-only optional string. Usecoreonly when normalized core performance metrics are needed.- Search supports
keyword,category,isCommercial, play/like/30-day-GMV/engagement ranges,accountType(0,3, or4), andsort(field:asc|desc, defaultviews:desc). Use the camelCase gateway names inreferences/api.md; do not send the upstream snake_case aliases.
How to Call
- API Endpoint:
POST /chuhaijiang/videos/search、POST /chuhaijiang/videos/detail、POST /chuhaijiang/videos/related-productsorPOST /chuhaijiang/videos/reviews(for full parameters/responses/error codes seereferences/api.md) - Python Script:
python scripts/chuhaijiang_video_<entry>.py '<JSON 参数>' [--inline], where<entry>issearch、detail、related_productsorreviews - Cost Constraints: By default, the business entry script only caches successful responses for 24 hours; business-successful empty results can also be cached; the cache is isolated by the current working directory, calling identity, gateway, endpoint, and complete request parameters. When the same combination hits, it outputs
Cache hitand will not initiate a new paid request. HTTP or business failures are not cached;--inlinedoes not bypass the cache;--no-cacheforces a real request and may consume compute again; use it only when the user explicitly agrees to additional consumption or when debugging.
Output Strategy (default script behavior):
- Alwayswrite the complete response to
<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-chuhaijiang-tiktok-video-<timestamp>.json(<cwd>is the working directory when the script runs, which in Claude Code is the current project directory;<session>is taken from the environment variableSESSION_ID, automatically aggregated according to the user task;writing to /tmp is prohibited, an error is reported if the current directory is not writable) - Response body ≤ 8 KB: after writing to disk, print the complete JSON to stdout
- Response body > 8 KB: after writing to disk, stdout outputs only a summary (top-level fields, total business count, length of the largest list field + first 3 samples)
- Add
--inlineto force full printing to stdout (also written to disk)
Data Reading Suggestions: first check the summary to determine whether it is sufficient; when specific fields are needed, prefer to use jq or ConvertFrom-Json to extract on demand from the saved JSON file, avoiding putting the entire JSON into context.
Resolve Authentication and Compute Issues
When the gateway returns an authentication or balance error, read references/onboarding.md, and use scripts/onboarding.pyaccording to the auth/billing routing in it. Do not write the API Key, verification code, payment link, or raw user message into the feedback.
Usage Examples
python scripts/chuhaijiang_video_search.py '{"country":"us","keyword":"beauty","isCommercial":true,"sort":"views:desc","page":1,"pageSize":3}'
python scripts/chuhaijiang_video_detail.py '{"country":"us","id":"6788833646091504902","include":"core"}'
python scripts/chuhaijiang_video_related_products.py '{"country":"us","id":"7672655263672864013","page":1,"pageSize":3}'
python scripts/chuhaijiang_video_reviews.py '{"country":"us","id":"6788833646091504902","page":1,"pageSize":3}'
These examples were production-validated with non-empty semantic results. IDs are volatile public-market examples; use a fresh search result when they stop resolving.
Display Rules
- State request context/site code, filters, sort, page, page size, and returned total.
- For search results, show caption, video ID, creator, country, plays, likes, comments, shares, engagement rate, and product/commerce metrics only when returned.
- For detail, group identity, creator, timing, engagement, cover/share URL, and optional
coremetrics. - For related products, show product ID/name, region, price range, rating, commission rate, video 30-day sales/GMV, and product total sales/GMV when present.
- For reviews, show comment ID, text, author handle/nickname, likes, replies, and creation time.
- Keep 19-digit IDs as strings. Preserve raw timestamps and add a readable date only as a derived label.
- Report empty arrays honestly. Never imply that an ordinary video is shoppable when
data.itemsis empty.
Important Limitations
- Data reflects the provider's latest indexed public snapshot and can lag TikTok.
- The request
countryselects provider context but is not a verified strict row-country predicate; returnedcountry_coderemains authoritative for each row. - Related products are available only for videos linked to products in the indexed dataset.
- Public comments can be partial, deleted, multilingual, or unavailable.
- Do not infer sales causality from correlation between views, engagement, and GMV.
- Do not expose internal tool identifiers, credentials, cache files, signed asset URLs, or unrelated response fields.
User Expression & Scenario Quick Reference
Use this skill: "Use Chuhaijiang to search for US TikTok beauty videos", "Look at this video's details and comments", "What products does this video include", "Chuhaijiang video analytics".
Adjacent: General public TikTok shoppable-video rankings or detail requests without a named source should use linkfox-kalodata-tiktok-video. Product-first research uses linkfox-chuhaijiang-tiktok-product; creator-first research uses linkfox-chuhaijiang-tiktok-creator. Uploading or publishing videos uses linkfox-tiktok-video.
Not applicable: video upload/publishing, creator authorization, seller-backend operations, video downloading, moderation, transcription, or media generation/editing.
Compute Consumption Rules
Billing is per endpoint: video details 9 compute units/time; video search, video shoppable products, and video comments 18 compute units/time.
Users pay fees due to compute consumption. Before high-frequency calls or multi-endpoint drill-down, first explain the estimated number of calls and compute consumption.
Feedback: Use the Feedback API in references/api.md only when the user explicitly asks to submit feedback or authorizes it after an issue is identified. Sanitize the content and never include credentials, signed URLs, phone numbers, or unrelated task context.