TikTok Comments Scraper

TikTok Comments Scraper

Scrape TikTok comments from any video URL with advanced features like stealth browsing, rate limiting, and complete comment data including user info, timestamps, and engagement metrics.

SOCIAL_MEDIAApify

TikTok Comments Scraper 🤖

Powerful and reliable scraper for extracting comments from TikTok videos. Get detailed comment data including user information, timestamps, engagement metrics and more.

Features ✨

  • Extract comments from any public TikTok video URL
  • Get comprehensive comment data including:
    • Comment text and creation time
    • Author details (username, nickname, avatar)
    • Engagement metrics (likes, replies)
    • Comment language and translation status
    • Reply chains and nested comments
  • Configurable maximum items limit
  • Clean structured JSON output

Input Parameters 📝

The actor accepts the following input parameters:

FieldTypeDescription
postUrlsArrayList of TikTok video URLs to scrape comments from
maxItemsIntegerMaximum number of comments to collect per video

Output Format 📊

The actor outputs comments in JSON format with detailed fields including:

  • cid: Unique comment ID
  • text: Comment content
  • create_time: Timestamp of when comment was posted
  • digg_count: Number of likes
  • reply_comment_total: Number of replies
  • user: Detailed information about comment author
  • comment_language: Language of the comment
  • And many more fields...

Usage Tips 💡

  1. Use specific video URLs from TikTok (format: https://www.tiktok.com/@username/video/videoId)
  2. Adjust maxItems based on your needs - higher numbers will take longer to scrape
  3. Results are saved to the default dataset in your Apify storage

Use Cases 🎯

  • Social media monitoring and analysis
  • User engagement research
  • Content moderation
  • Sentiment analysis
  • Market research and trend analysis

Input Example

A full explanation of an input example in JSON.

1{
2    "postUrls": [
3        "https://www.tiktok.com/@espnfc/video/7218224837217635626"
4	],
5    "maxItems": 20
6}

Output sample

The results will be wrapped into a dataset which you can always find in the Storage tab. Here's an excerpt from the data you'd get if you apply the input parameters above:

And here is the same data but in JSON. You can choose in which format to download your data: JSON, JSONL, Excel spreadsheet, HTML table, CSV, or XML.

1[
2	{
3		"author_pin": false,
4		"aweme_id": "7218224837217635626",
5		"cid": "7219147054538113834",
6		"collect_stat": 0,
7		"comment_language": "en",
8		"comment_post_item_ids": null,
9		"create_time": 1680838674,
10		"digg_count": 78,
11		"forbid_reply_with_video": true,
12		"image_list": null,
13		"is_author_digged": false,
14		"is_comment_translatable": true,
15		"label_list": null,
16		"no_show": false,
17		"reply_comment": null,
18		"reply_comment_total": 0,
19		"reply_id": "0",
20		"reply_to_reply_id": "0",
21		"share_info": {
22			"acl": {
23				"code": 0,
24				"extra": "{}"
25			},
26			"desc": "malteese211’s comment: He’s never used a hammer",
27			"title": "When Kingsley Coman tried a Bavarian tradition 😂 #bundesliga #fcbayern #bayernmunich #bavaria  (via @fcbayern)",
28			"url": "https://m.tiktok.com/v/7218224837217635626.html?_d=eh17dkjcbi42af&comment_author_id=7020982602435167238&preview_pb=0&share_comment_id=7219147054538113834&share_item_id=7218224837217635626&sharer_language=en&source=h5_m&u_code=ecc7g0jj45gmlj"
29		},
30		"sort_extra_score": {
31			"reply_score": 0.000137,
32			"show_more_score": 0.000365
33		},
34		"sort_tags": "{\"top_list\":1}",
35		"status": 1,
36		"stick_position": 0,
37		"text": "He’s never used a hammer",
38		"text_extra": [],
39		"trans_btn_style": 0,
40		"user": {
41			"account_labels": null,
42			"ad_cover_url": null,
43			"advance_feature_item_order": null,
44			"advanced_feature_info": null,
45			"avatar_thumb": {
46				"uri": "tos-useast8-avt-0068-tx2/aef91be8c6445eb4a5c853299eafbaed",
47				"url_list": [
48					"https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/aef91be8c6445eb4a5c853299eafbaed~c5_100x100.jpg?lk3s=30310797&nonce=12843&refresh_token=805970aacd2ba7ca75da6580e17d3762&x-expires=1730296800&x-signature=c%2B40k3Dw7N2EaC0m%2F7DgBYiL7V4%3D&shp=30310797&shcp=-",
49					"https://p19-pu-sign-useast8.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/aef91be8c6445eb4a5c853299eafbaed~c5_100x100.jpg?lk3s=30310797&nonce=87213&refresh_token=99788ffabae2d16afb5ce8a301d16fed&x-expires=1730296800&x-signature=5NZGvdPO550AcvgdLKfXmTtqosw%3D&shp=30310797&shcp=-",
50					"https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/aef91be8c6445eb4a5c853299eafbaed~c5_100x100.jpeg?lk3s=30310797&nonce=94382&refresh_token=171404aae96da323915291f062f87f31&x-expires=1730296800&x-signature=bq8on0C3yMh%2BsRSQ5APzSRAsY4s%3D&shp=30310797&shcp=-"
51				],
52				"url_prefix": null
53			},
54			"bold_fields": null,
55			"can_message_follow_status_list": null,
56			"can_set_geofencing": null,
57			"cha_list": null,
58			"cover_url": null,
59			"custom_verify": "",
60			"enterprise_verify_reason": "",
61			"events": null,
62			"followers_detail": null,
63			"geofencing": null,
64			"homepage_bottom_toast": null,
65			"item_list": null,
66			"mutual_relation_avatars": null,
67			"need_points": null,
68			"nickname": "malteese211",
69			"platform_sync_info": null,
70			"relative_users": null,
71			"search_highlight": null,
72			"sec_uid": "MS4wLjABAAAA-2Zn5X6TMwBOThdiyuECyKM4w1laLK58NMkIkwqlDWCFXiVFQnJsqKIkN6DEFWvC",
73			"shield_edit_field_info": null,
74			"type_label": null,
75			"uid": "7020982602435167238",
76			"unique_id": "y_dillon_ft_bronx",
77			"user_profile_guide": null,
78			"user_tags": null,
79			"white_cover_url": null
80		},
81		"user_buried": false,
82		"user_digged": 0
83	},
84	{
85		"author_pin": false,
86		"aweme_id": "7218224837217635626",
87		"cid": "7220159466032366378",
88		"collect_stat": 0,
89		"comment_language": "en",
90		"comment_post_item_ids": null,
91		"create_time": 1681074394,
92		"digg_count": 40,
93		"forbid_reply_with_video": true,
94		"image_list": null,
95		"is_author_digged": false,
96		"is_comment_translatable": true,
97		"label_list": null,
98		"no_show": false,
99		"reply_comment": null,
100		"reply_comment_total": 0,
101		"reply_id": "0",
102		"reply_to_reply_id": "0",
103		"share_info": {
104			"acl": {
105				"code": 0,
106				"extra": "{}"
107			},
108			"desc": "Jh’s comment: Who?",
109			"title": "When Kingsley Coman tried a Bavarian tradition 😂 #bundesliga #fcbayern #bayernmunich #bavaria  (via @fcbayern)",
110			"url": "https://m.tiktok.com/v/7218224837217635626.html?_d=eh17dkjcbi42af&comment_author_id=7178077957648237614&preview_pb=0&share_comment_id=7220159466032366378&share_item_id=7218224837217635626&sharer_language=en&source=h5_m&u_code=ecc7g0jj45gmlj"
111		},
112		"sort_extra_score": {
113			"reply_score": 0.000126,
114			"show_more_score": 0.000071
115		},
116		"sort_tags": "{\"top_list\":1}",
117		"status": 1,
118		"stick_position": 0,
119		"text": "Who?",
120		"text_extra": [],
121		"trans_btn_style": 0,
122		"user": {
123			"account_labels": null,
124			"ad_cover_url": null,
125			"advance_feature_item_order": null,
126			"advanced_feature_info": null,
127			"avatar_thumb": {
128				"uri": "tos-useast5-avt-0068-tx/7346383898743406638",
129				"url_list": [
130					"https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7346383898743406638~c5_100x100.jpg?lk3s=30310797&nonce=24860&refresh_token=dd09b3ef01b971a8c2077ee7c92152d6&x-expires=1730296800&x-signature=CtALKbX6Xf3HEbXp4w3nLUaQInM%3D&shp=30310797&shcp=-",
131					"https://p19-pu-sign-useast8.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7346383898743406638~c5_100x100.jpg?lk3s=30310797&nonce=28578&refresh_token=3a3e53caae029b471158c67b7240cf67&x-expires=1730296800&x-signature=mweSyYdRpwIbsxpxzYIYDsw%2F2w8%3D&shp=30310797&shcp=-",
132					"https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7346383898743406638~c5_100x100.jpeg?lk3s=30310797&nonce=81345&refresh_token=0bcf5c2699d0d35aa49e17587b587799&x-expires=1730296800&x-signature=NPXQuK4ZvKXgrJBNwoqYJmkTAXA%3D&shp=30310797&shcp=-"
133				],
134				"url_prefix": null
135			},
136			"bold_fields": null,
137			"can_message_follow_status_list": null,
138			"can_set_geofencing": null,
139			"cha_list": null,
140			"cover_url": null,
141			"custom_verify": "",
142			"enterprise_verify_reason": "",
143			"events": null,
144			"followers_detail": null,
145			"geofencing": null,
146			"homepage_bottom_toast": null,
147			"item_list": null,
148			"mutual_relation_avatars": null,
149			"need_points": null,
150			"nickname": "Jh",
151			"platform_sync_info": null,
152			"relative_users": null,
153			"search_highlight": null,
154			"sec_uid": "MS4wLjABAAAA0xqGlm85W3tuLuh8zpSL1UarNIsszcapFqOQoWvl6LeBrMzZUMfl8eXsfhMPFUS5",
155			"shield_edit_field_info": null,
156			"type_label": null,
157			"uid": "7178077957648237614",
158			"unique_id": "jsh18739",
159			"user_profile_guide": null,
160			"user_tags": null,
161			"white_cover_url": null
162		},
163		"user_buried": false,
164		"user_digged": 0
165	},
166    ...
167]

Frequently Asked Questions

Is it legal to scrape job listings or public data?

Yes, if you're scraping publicly available data for personal or internal use. Always review Websute's Terms of Service before large-scale use or redistribution.

Do I need to code to use this scraper?

No. This is a no-code tool — just enter a job title, location, and run the scraper directly from your dashboard or Apify actor page.

What data does it extract?

It extracts job titles, companies, salaries (if available), descriptions, locations, and post dates. You can export all of it to Excel or JSON.

Can I scrape multiple pages or filter by location?

Yes, you can scrape multiple pages and refine by job title, location, keyword, or more depending on the input settings you use.

How do I get started?

You can use the Try Now button on this page to go to the scraper. You’ll be guided to input a search term and get structured results. No setup needed!