TikTok Live Scraper avatar

TikTok Live Scraper

Pricing

from $5.00 / 1,000 live result (status / room / discover)s

Go to Apify Store
TikTok Live Scraper

TikTok Live Scraper

TikTok LIVE scraper — is-live check by username, full live-room metadata + viewer count + stream URLs, real-time chat & gifts feed, and currently-live creator discovery. Auto-detects mode from input. No cookies, no login. MCP-ready.

Pricing

from $5.00 / 1,000 live result (status / room / discover)s

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

All-in-one TikTok LIVE data tool. Check who is currently broadcasting, get full live-room metadata (viewers, title, hashtag, paid-event flag, stream URLs), capture the real-time chat + gifts + joins + likes feed, or discover currently-live rooms by category and region. Auto-detects mode from input. No cookies, no login, no browser extension. MCP-ready for AI agents.

What it does

This actor exposes four TikTok LIVE workflows behind one input schema and one dataset. The mode is detected automatically from which fields you fill in.

ModeTriggerReturns
Live statususernames: ["..."]One record per handle with isLive, roomId, viewerCount, roomTitle, startedAt, follower stats
Room detailsliveRoomUrls: ["..."]One record per live room (tiktok.com/@user/live or numeric roomId) with the full room object
Chat + gifts feedchatFeedUsername: "..."One record per real-time chat / gift / join / like / social event for chatCaptureSeconds seconds
Discover currently-livediscoverCategory: "gaming"List of currently-broadcasting rooms in that category for discoverRegion

It uses public data only. You never supply TikTok credentials, session cookies, or device tokens. Live-status and room-details are powered by managed providers (ScrapeCreators primary, SociaVault fallback). Chat capture connects directly to the public TikTok WebSocket. Discovery uses residential proxies via Playwright.

When to use it

  • Brand monitoring: know the second a creator goes live.
  • Influencer / talent scouting: scan currently-broadcasting rooms in a niche.
  • Live-shopping analytics: capture comments and gift volume during a live drop.
  • Creator-tools / bot building: feed real-time chat into Streamlabs-style dashboards.
  • AI agents that watch livestreams: a single MCP tool covers monitoring, room metadata, and chat capture.

Not for: past video transcripts (use tiktok-transcript-scraper), trending VODs (use tiktok-trending-videos-scraper), or scraping past live recordings — TikTok does not expose a stable public archive of past LIVEs.

Output

One dataset with recordType discriminating the four modes. Common fields:

FieldDescription
recordTypelive-status | room-details | discover-live | chat-event
usernameTikTok @handle (lowercase, no @ prefix)
userIdTikTok numeric user ID
nicknameDisplay name of the creator
verifiedVerification flag
avatarUrlAvatar image URL
followerCountFollower count at scrape time
isLiveTrue if currently broadcasting (live-status / room-details modes)
roomIdTikTok live roomId (numeric string)
roomTitleLive room title set by the creator
coverUrlLive cover image URL
viewerCountCurrent concurrent viewers
totalEnterCountCumulative viewers since stream start
startedAtISO 8601 timestamp the stream started
hashTagPrimary hashtag associated with the live
isPaidEvent / isSubOnlyPaid-ticketed and sub-only flags
liveUrlPublic TikTok URL of the live room
streamUrlsObject with HLS/FLV stream URLs at multiple quality levels
chatEventTypechat | gift | member | like | social (chat-feed mode)
chatTextComment text (chat events)
giftName, giftCount, giftDiamondValue, giftTotalDiamondsGift event fields
fromUsername, fromNicknameSender of chat/gift events
chatTimestampISO 8601 timestamp of the chat event
discoverRankPosition on the discovery page (1-based)
sourcescrapecreators | sociavault | tiktok-ws | tiktok-discover
statusok | not_live | not_found | provider_error | discover_blocked | chat_disconnected
noteHuman-readable detail for non-ok records
scrapedAtISO 8601 extraction timestamp

Example: live-status record

{
"recordType": "live-status",
"username": "stoolpresidente",
"userId": "6701106726838632965",
"nickname": "Dave Portnoy",
"verified": true,
"isLive": true,
"roomId": "7398765432109876543",
"roomTitle": "Pizza Review LIVE",
"viewerCount": 4523,
"totalEnterCount": 18450,
"startedAt": "2026-06-27T03:10:00.000Z",
"followerCount": 4321000,
"liveUrl": "https://www.tiktok.com/@stoolpresidente/live",
"source": "scrapecreators",
"status": "ok",
"scrapedAt": "2026-06-27T03:42:11.000Z"
}

Example: chat-event record

{
"recordType": "chat-event",
"username": "stoolpresidente",
"chatEventType": "gift",
"giftName": "Rose",
"giftCount": 5,
"giftDiamondValue": 1,
"giftTotalDiamonds": 5,
"fromUsername": "fanofdave",
"fromNickname": "Fan",
"chatTimestamp": "2026-06-27T03:42:14.000Z",
"source": "tiktok-ws",
"status": "ok",
"scrapedAt": "2026-06-27T03:42:14.000Z"
}

Input

{
"usernames": ["stoolpresidente", "khaby.lame"]
}

Or one of:

{ "liveRoomUrls": ["https://www.tiktok.com/@stoolpresidente/live"] }
{ "chatFeedUsername": "stoolpresidente", "chatCaptureSeconds": 120 }
{ "discoverCategory": "gaming", "discoverRegion": "US", "maxDiscoverResults": 50 }
  • usernames — TikTok @handles or profile URLs for is-live checks.
  • liveRoomUrls — Live room URLs (tiktok.com/@user/live) or numeric roomIds.
  • chatFeedUsername — Single handle whose live chat/gifts will be captured.
  • chatCaptureSeconds (default 60, range 10-1800) — How long to listen on the chat WebSocket.
  • chatEventTypes (default ["chat","gift"]) — Which event classes to push (add member, like, social if you want them).
  • discoverCategory — Category slug to list currently-live rooms (gaming, music, lifestyle, …).
  • discoverRegion (default US) — ISO country for residential proxy region in discover mode.
  • maxDiscoverResults (default 50, range 1-200) — cap on discovery results.
  • maxResults (default 100, range 1-1000) — cap on live-status + room-details records.

Pricing

Pay-per-event:

  • Actor start — $0.00005 per run.
  • Live result$0.005 per result (any of: live-status check, room-details record, discovered live room).
  • Chat / gift event$0.0002 per event captured from the live WebSocket.

Every run logs an upfront cost cap and prints the final billed amount in the status message. Pay-Per-Usage (compute + proxy passthrough) is also enabled for heavy users.

How it works

  1. The actor detects the mode from your input (live-status / room-details / chat-feed / discover-live).
  2. Live-status / room-details: calls ScrapeCreators' /v1/tiktok/user/live (or /v1/tiktok/live) first; falls back to SociaVault's /v1/scrape/tiktok/live on miss. Normalizes both shapes to one schema.
  3. Chat-feed: connects to the creator's public TikTok webcast WebSocket (no cookies) via tiktok-live-connector, emits one record per chat/gift/join/like/social event for up to chatCaptureSeconds, then disconnects. Stops early if the stream ends.
  4. Discover-live: opens TikTok's /live/discover page with a residential proxy pinned to the requested region using Playwright, parses the SSR data blob or DOM cards, and pushes one record per live room.

Reliability notes

  • No cookies required — public data only.
  • Provider redundancy — one provider down does not break is-live / room-details modes.
  • Graceful degradation — not-live, not-found, and chat-not-connected return labeled records, not crashes.
  • Honest failure — if every provider call fails at the network level, the run is marked failed with a clear message rather than silently succeeding empty.
  • Residential proxy — discover mode automatically uses Apify Residential with the requested country code.

MCP / AI-agent ready

One MCP-discoverable tool apify--tiktok-live-scraper exposes all four modes. Input descriptions are written for LLM tool-selection (when to use, what NOT to use it for). Output fields are flat, semantically named, and stable across runs.

FAQ

Q: Can I capture chat from a creator who isn't currently live? No. The WebSocket only exists while the room is broadcasting. The actor returns a chat_disconnected record with a clear note when the room is offline.

Q: Does this return past LIVEs / replays? No. TikTok does not expose a stable public archive of past LIVEs. For past TikTok videos see tiktok-trending-videos-scraper or tiktok-transcript-scraper.

Q: Can I run multiple usernames + chat capture in one run? No — chat capture is a single-creator, long-running operation. Run a separate task per creator if you need multiple chat captures.

Q: How accurate is the viewer count? It is a snapshot of TikTok's reported liveRoomStats.userCount at the moment of the call. To watch it over time, schedule the actor on a 1-5 minute interval.

Q: Discover mode returns zero rooms — why? TikTok occasionally rate-limits or A/B-tests the /live/discover surface. Retry, switch discoverRegion, or pick a different category. The actor returns a discover_blocked record instead of crashing.

Use only for publicly available TikTok LIVE data. You are responsible for complying with TikTok's Terms of Service, applicable copyright, and data-protection law (including GDPR/CCPA) in your jurisdiction. This actor does not access private accounts, login-gated content, or paid-event content behind the paywall.