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.
Powerful and reliable scraper for extracting comments from TikTok videos. Get detailed comment data including user information, timestamps, engagement metrics and more.
The actor accepts the following input parameters:
Field | Type | Description |
---|---|---|
postUrls | Array | List of TikTok video URLs to scrape comments from |
maxItems | Integer | Maximum number of comments to collect per video |
The actor outputs comments in JSON format with detailed fields including:
cid
: Unique comment IDtext
: Comment contentcreate_time
: Timestamp of when comment was posteddigg_count
: Number of likesreply_comment_total
: Number of repliesuser
: Detailed information about comment authorcomment_language
: Language of the commenthttps://www.tiktok.com/@username/video/videoId
)maxItems
based on your needs - higher numbers will take longer to scrapeA full explanation of an input example in JSON.
1{ 2 "postUrls": [ 3 "https://www.tiktok.com/@espnfc/video/7218224837217635626" 4 ], 5 "maxItems": 20 6}
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]
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.
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.
It extracts job titles, companies, salaries (if available), descriptions, locations, and post dates. You can export all of it to Excel or JSON.
Yes, you can scrape multiple pages and refine by job title, location, keyword, or more depending on the input settings you use.
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!