TikTok, Douyin & Bilibili Scraper β€” Videos, Profiles, Comments avatar

TikTok, Douyin & Bilibili Scraper β€” Videos, Profiles, Comments

Under maintenance

Pricing

from $8.00 / 1,000 video scrapeds

Go to Apify Store
TikTok, Douyin & Bilibili Scraper β€” Videos, Profiles, Comments

TikTok, Douyin & Bilibili Scraper β€” Videos, Profiles, Comments

Under maintenance

Scrape videos, profiles, posts, comments, likes, live streams, and trending feeds from TikTok, Douyin, and Bilibili. Unified JSON schema, no-watermark MP4 URLs, concurrent processing, automatic retries. No API key required.

Pricing

from $8.00 / 1,000 video scrapeds

Rating

0.0

(0)

Developer

Pika Choo

Pika Choo

Maintained by Community

Actor stats

1

Bookmarked

12

Total users

7

Monthly active users

2 days ago

Last modified

Share

🎬 TikTok, Douyin & Bilibili Scraper

Scrape videos, profiles, comments, likes, live streams, and trending feeds across TikTok, Douyin, and Bilibili β€” all in one actor. Unified JSON schema, no API key required, direct MP4 downloads, from $0.002 per item.


🎯 Who needs this?

  • πŸ“£ Social media managers tracking competitors and viral trends across Western + Chinese platforms
  • 🎨 Content creators sourcing trending music, hashtags, and reference videos
  • πŸ“Š Market researchers monitoring brand mentions, sentiment, and virality
  • πŸ›’ E-commerce teams identifying influencers and top-performing product creators
  • πŸ€– AI / ML teams collecting training data for video, caption, or comment analysis
  • 🏒 Agencies running influencer discovery and campaign measurement

✨ Features

  • 🌐 3 platforms in one actor β€” TikTok, Douyin, Bilibili
  • 🎬 7 scraping modes β€” video detail, user posts, user profile, comments, likes, live info, trending
  • πŸͺ„ Auto platform detection β€” paste any URL, the actor routes it to the right platform
  • πŸ“‹ Bulk mode β€” scrape many URLs in a single run, processed concurrently
  • ⬇️ No-watermark MP4 URLs β€” direct video download links (TikTok / Douyin)
  • πŸ’¬ Full comment threads β€” with replies and engagement counts
  • πŸ”΄ Live room data β€” viewer count, title, status, host
  • πŸ”₯ Trending feeds β€” Douyin hot search, Bilibili popular
  • πŸ” Automatic retries β€” transient failures retried with backoff; persistent failures logged as error rows
  • πŸ“Š Unified output schema β€” the same field names across all three platforms (raw response also included)
  • πŸ›‘οΈ Proxy-ready β€” Apify residential proxy integration built-in

πŸ“₯ Input

πŸ”΄ Required

FieldTypeDescription
mode 🎬stringWhat to scrape. See the mode table below.

One of url or urls is also required (except for trending mode).

πŸ“‹ Main fields

FieldTypeDefaultDescription
platform 🌐selectautoauto, tiktok, douyin, or bilibili
url πŸ”—stringβ€”Single URL β€” video, user profile, or live room
urls πŸ“‹arrayβ€”Bulk list of URLs. Combined with url if both given.
maxItems πŸ“Šinteger100Max items per input URL (paginated modes). 1–5000.

πŸŽ›οΈ Options

FieldTypeDefaultDescription
downloadVideos ⬇️booleantrueInclude no-watermark MP4 URLs in output
includeComments πŸ’¬booleanfalseAlso fetch a batch of comments alongside video_detail
cookie πŸͺstring (secret)β€”Browser cookie for private / gated content
proxyConfiguration πŸ›‘οΈobjectRESIDENTIALApify proxy settings β€” residential strongly recommended

🎬 Modes Γ— Platforms

ModeTikTokDouyinBilibiliInput expected
video_detailβœ…βœ…βœ…Video URL
user_postsβœ…βœ…βœ…User profile URL
user_profileβœ…βœ…βœ…User profile URL
video_commentsβœ…βœ…βœ…Video URL
user_likesβœ…βœ…βŒUser profile URL
live_infoβŒβœ…βœ…Live room URL
trendingβŒβœ…βœ…platform only (no URL)

Unsupported combinations return a clear error record.


πŸ“€ Output

Unified schema across all platforms:

FieldDescription
platformtiktok, douyin, or bilibili
item_typevideo, user, comment, live, trending, or error
item_idNative platform ID
urlCanonical URL back to the source
title, descriptionCaption / title text
author_id, author_name, author_usernameCreator info
duration_sec, cover_url, video_url_nowmVideo asset fields
music_title, music_authorBackground audio
hashtagsArray extracted from caption
created_atISO publish timestamp
play_count, like_count, comment_count, share_count, collect_countEngagement stats
follower_count, following_count, video_count, bio, avatar_url, verifiedProfile fields
comment_id, reply_to_id, comment_textComment fields
live_status, live_title, viewer_countLive fields
rawFull source API response for advanced users
scraped_atISO timestamp when scraped

πŸ§ͺ Examples

Single TikTok video with download URL

{
"mode": "video_detail",
"url": "https://www.tiktok.com/@charlidamelio/video/7337889649290054955",
"downloadVideos": true
}

Bulk β€” 3 creators' latest 50 posts each (Douyin)

{
"mode": "user_posts",
"urls": [
"https://www.douyin.com/user/MS4wLjABAAAA...",
"https://www.douyin.com/user/MS4wLjABAAAB...",
"https://www.douyin.com/user/MS4wLjABAAAC..."
],
"maxItems": 50
}

Top 200 comments on a Bilibili video

{
"mode": "video_comments",
"url": "https://www.bilibili.com/video/BV1GJ411x7h7",
"maxItems": 200
}
{
"mode": "trending",
"platform": "douyin",
"maxItems": 50
}

Bilibili live room

{
"mode": "live_info",
"url": "https://live.bilibili.com/21452505"
}

πŸ’΅ Pricing

Simple pay-per-event β€” you only pay for items successfully delivered:

EventPriceCovers
🎬 Video scraped$0.008Any video row (video_detail, user_posts, user_likes, live_info, trending)
πŸ’¬ Comment scraped$0.002Each comment
πŸ‘€ Profile scraped$0.005Each user profile

Failed URLs return an error row and are not billed.


❓ FAQ

Q: Do I need a TikTok / Douyin / Bilibili account? No. The actor scrapes public data using the built-in Apify proxy. No login required.

Q: Do no-watermark MP4 URLs expire? Yes, TikTok and Douyin CDN URLs expire in a few hours. Download and store the file promptly.

Q: Can I scrape private accounts? No β€” only public content is supported. For some gated endpoints (private collections, saved videos, TikTok comments), you may pass your browser cookie via the cookie field.

Q: TikTok comments mode returns 0 results? TikTok's comment API requires a logged-in session. Paste a fresh TikTok browser cookie into the cookie input field. Videos, profiles, and posts work without a cookie; comments need one.

Q: Will one URL appear in my output multiple times? No β€” each URL produces a single row (or a single error row).

Q: What happens if a URL is deleted or region-blocked? You'll get an error row with item_type: "error" and a human-readable error_message. You are not charged for error rows.

Q: Can I run this with my own proxy instead of Apify proxy? Yes β€” set custom proxy URLs in proxyConfiguration.proxyUrls.

Q: Does the actor handle bulk scraping efficiently? Yes β€” URLs are processed concurrently. 100 URLs typically finish in 2–3 minutes.

Q: What's the maximum URLs per run? There's no hard limit, but we recommend ≀ 500 URLs per run for optimal reliability. Split larger jobs into multiple runs for parallelism.


πŸ†˜ Troubleshooting

No results for a TikTok URL The video may be deleted, private, or region-blocked. Check the URL in a browser first. Error rows include a status message explaining why.

"Spending limit reached" You set ACTOR_MAX_TOTAL_CHARGE_USD and the run hit the cap mid-batch. Remaining URLs are skipped and marked as error rows. Increase the cap or split the batch.

Empty dataset on first run Make sure mode is set and that url/urls match the mode's expected input (e.g. video URL for video_detail, profile URL for user_posts).

Bilibili returns 404 The BV-id may be invalid or deleted. Short links like b23.tv/xxx are auto-resolved.


  • Scrapes public data only.
  • You are responsible for compliance with each platform's terms of service and your local laws (GDPR, CCPA, etc.).
  • Personal data handling: store / transmit in line with applicable regulations.

⭐ Support

If something's not working, open the run β†’ view the log β†’ attach the run URL when reaching out. The actor auto-populates error rows with context, so paste those too.

Happy scraping. πŸš€