TikTok Video Scraper with Shop Products avatar

TikTok Video Scraper with Shop Products

Pricing

Pay per usage

Go to Apify Store
TikTok Video Scraper with Shop Products

TikTok Video Scraper with Shop Products

Scrape TikTok videos together with the TikTok Shop products they sell: product id, title, price and shop link, plus the original MP4 with no watermark. Other TikTok scrapers tell you a video has a product. This one tells you what it is.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Dlir

Dlir

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Features

Limited permissions

Share

Scrapes TikTok videos together with the TikTok Shop products attached to them — the product id, title, cover image and the link to its shop page — plus a direct MP4 of the original video with no watermark.

Every other TikTok scraper tells you a video has a shop product. This one tells you which product, and how the video selling it performed.

Other TikTok scrapers "hasTikTokShopProduct": true
This one "products": [{ "productId": "1731173592928324552",
"title": "Áo Khoác Phao lót lông cừu…",
"detailUrl": "https://shop.tiktok.com/…",
"sellerId": "7494512038812" }]

What it is for

You sell on TikTok Shop, or you run accounts that do. You want to know what a competitor is actually moving: which products, in which videos, and whether those videos worked. A list of video ids does not answer that. A list of products without the video does not either.

Typical uses:

  • Find what is selling. Scan the affiliate accounts in your category, sort by play count, and read off the products that keep appearing.
  • Build a product list. Every product comes back with its id, title and shop URL, so you can feed them straight into a TikTok Shop product scraper for live pricing and reviews.
  • Creative research. The no-watermark MP4 lets you study the videos that convert, frame by frame, instead of screen-recording them.
  • Affiliate sourcing. Find the creators already selling products like yours, with their follower count and engagement attached.

Input

{
"profiles": ["sieu.tichcuc", "https://www.tiktok.com/@tiktokshop"],
"resultsPerPage": 20,
"onlyWithProducts": true,
"shouldDownloadVideos": true
}
FieldTypeDefaultWhat it does
profilesarray—Usernames, @handles or profile URLs. Mixed forms are fine.
resultsPerPageinteger10Videos to take per profile, newest first.
onlyWithProductsbooleantrueSkip videos selling nothing. This is the point of the actor.
shouldDownloadVideosbooleantrueInclude the no-watermark MP4 link.

Output

One row per video. Field names follow the convention the established TikTok actors use, so if you already parse TikTok data on Apify, your existing code keeps working — products is the field they do not have.

This sample is a real row from a real run, copied unedited. The zeros are real too: that video genuinely has no shares or comments yet, and its caption carries no hashtags.

{
"id": "7705860381163506962",
"text": "Áo Khoác Phao lót lông cừu cao",
"createTime": 1794160439,
"createTimeISO": "2026-11-08T17:53:59.000Z",
"webVideoUrl": "https://www.tiktok.com/@sieu.tichcuc/video/7705860381163506962",
"authorMeta": {
"id": "6973997246556832769",
"name": "sieu.tichcuc",
"profileUrl": "https://www.tiktok.com/@sieu.tichcuc",
"nickName": "SIÊU TÍCH CỰC REVIEW",
"verified": true,
"signature": "Lỗi 1, đổi 1\nKhông ưng, em hoàn tiền ạ\n0️⃣9️⃣4️⃣.1️⃣0️⃣1️⃣0️⃣.3️⃣1️⃣4️⃣\nTrân trọng, Biết ơn vì đã tin tưởng, ủng hộ em qua từng đơn hàng ạ ❤️ STC",
"avatar": "",
"privateAccount": false,
"fans": 434800,
"following": 23,
"heart": 6400000,
"video": 3973,
"digg": 3027
},
"musicMeta": {
"musicId": "7705860421655874325",
"musicName": "âm thanh gốc - SIÊU TÍCH CỰC REVIEW",
"musicAuthor": "SIÊU TÍCH CỰC REVIEW",
"musicOriginal": true,
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-v-27dcd7/o0VxtqADfCBNAwBdUzKwu2EgWiJuFe6AVQiEBZ/?a=1988&bti=ODszNWYuMDE6&&bt=125&ft=GNDpcInz7ThxvKGGXq8Zmo&mime_type=audio_mpeg&rc=am9zZms5cmhlZTMzODU8NEBpam9zZms5cmhlZTMzODU8NEBgXi9vMmRzYmxhLS1kMS1zYSNgXi9vMmRzYmxhLS1kMS1zcw%3D%3D&expire=1794179317&l=20261109060722DB9BB92A5389A1FAB429&ply_type=3&policy=3&signature=3c4fadf37466933d4faecd65737ece1b&tk=7395874502087050248&btag=e00050000",
"coverMediumUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/da9be4a148312803bb71ef29a77e607f~tplv-tiktokx-cropcenter:720:720.jpeg?dr=14579&refresh_token=a95e1914&x-expires=1794348000&x-signature=CzCq8kQsEsMUmyvdVdgmS%2B9JcVI%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2"
},
"videoMeta": {
"height": 1024,
"width": 576,
"duration": 75,
"coverUrl": "",
"format": "mp4",
"definition": "540p"
},
"diggCount": 3,
"shareCount": 0,
"playCount": 111,
"collectCount": 2,
"commentCount": 0,
"hashtags": [],
"isSlideshow": false,
"isAd": true,
"hasTikTokShopProduct": true,
"products": [
{
"productId": "1731173592928324552",
"title": "Áo Khoác Phao lót lông cừu cao cấp TINGO VN, Áo đại hàn dày dặn Chống rét, Giữ ấm cơ thể cho nam nữ Unisex Menswear Jacket Menswear Jacket, 4 màu aokhoac nam aolot long APS11",
"keyword": "Áo Khoác Phao lót lông cừu cao",
"coverUrl": "https://p16-oec-sg.ibyteimg.com/tos-alisg-i-aphluv4xwc-sg/35275b34c4c6421fad0193f80663186e~tplv-aphluv4xwc-resize-jpeg:800:800.jpeg?dr=15584&t=555f072d&ps=933b5bde&shp=615b9c44&shcp=57d7afb6&idc=my&from=1633393732",
"price": 0,
"marketPrice": 0,
"currency": "VND",
"detailUrl": "https://oec-api.tiktokv.com/view/fe_tiktok_ecommerce_upgrade/index.html?enter_from=video&hide_nav_bar=1&view_background_color_auto_dark=1&should_full_screen=1",
"seoUrl": "https://shop.tiktok.com/vn/pdp/ao-khoac-phao-unisex-chong-lanh-giu-am-toi-uu-4-mau/1731173592928324552?source=anchor",
"sellerId": 7495889609172749000,
"inShop": false,
"source": "TikTok Shop",
"skus": [
{
"sku_id": 1731173805954534400,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731173805954600000,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731173805954665500,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835297479700,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731173805954927600,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731173805954993200,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731173805955058700,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835297545200,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731208811736960000,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731208811737025500,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731208811737091000,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835297610800,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731209840891432000,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731209840891497500,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731209840891563000,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835297676300,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731209840891628500,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731209840891694000,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731209840891759600,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835297741800,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835297807400,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835297873000,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835297938400,
"outer_sku_id": "",
"outer_product_id": ""
},
{
"sku_id": 1731288835298004000,
"outer_sku_id": "",
"outer_product_id": ""
}
],
"categories": [
{
"category_id": 824328,
"category_name": "Trang phục nam & đồ lót",
"level": 1,
"is_leaf": false,
"parent_id": 0,
"name_key": "magellan_824328"
},
{
"category_id": 839944,
"category_name": "Áo nam",
"level": 2,
"is_leaf": false,
"parent_id": 824328,
"name_key": "magellan_839944"
},
{
"category_id": 601197,
"category_name": "Áo khoác & Áo choàng",
"level": 3,
"is_leaf": true,
"parent_id": 839944,
"name_key": "magellan_601197"
}
]
}
],
"mediaUrls": [
"https://api.stackvid.dev/api/tiktok/download?url=7705860381163506962"
],
"downloadNoWatermarkUrl": "https://api.stackvid.dev/api/tiktok/download?url=7705860381163506962"
}

Fields

FieldNotes
products[]The reason this actor exists. productId, title, keyword, cover image, detailUrl (its TikTok Shop page), sellerId, categories.
downloadNoWatermarkUrlThe original MP4. No TikTok watermark burned in.
playCount, diggCount, shareCount, commentCount, collectCountHow the video performed.
authorMetaHandle, nickname, verified, avatar, bio, follower / like / video counts.
musicMetaSound id, name, author, whether it is original, play URL, cover.
videoMetaWidth, height, duration, definition, cover image.
webVideoUrl, createTimeISO, hashtags, isAd, isSlideshowThe usual.

Notes and limits

  • Only public data. Private accounts return nothing.
  • A video with no shop product is skipped unless you turn onlyWithProducts off — turn it off if you want a plain video scrape.
  • No prices. TikTok does not put the price in a video's product anchor: across 15,482 products scraped on production, every single one came back as zero. The fields exist in the output because TikTok sends them, but they are zero, and this actor will not pretend otherwise. Use detailUrl with a TikTok Shop product scraper if you need live pricing.
  • Scraping runs through the StackVid API, which handles TikTok's request signing and session management. You do not need a StackVid account — the actor carries its own credentials.
  • Pages are fetched 35 videos at a time, so asking for 36 costs two upstream calls, not 36.

Running it yourself from source

The Actor needs one environment variable, set as a secret on the Actor version:

STACKVID_API_KEY = <a StackVid API key>

It is never read from the input and never written to the dataset.

Support

Open an issue on the Actor's Issues tab. Bug reports with the run id attached get answered fastest.