Douyin Trending Live Rooms Scraper avatar

Douyin Trending Live Rooms Scraper

Pricing

from $2.00 / 1,000 scraped rooms

Go to Apify Store
Douyin Trending Live Rooms Scraper

Douyin Trending Live Rooms Scraper

Discover live rooms on Douyin (Chinese TikTok) by category: hot, chat, music, games, dance, and more. Get live viewer counts, streamer profiles, follower counts, cover images, and stream URLs. No login needed.

Pricing

from $2.00 / 1,000 scraped rooms

Rating

0.0

(0)

Developer

Harish Garg

Harish Garg

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Discover what is live on Douyin (抖音直播, the Chinese TikTok) right now. This Douyin live scraper browses the live category pages on live.douyin.com and returns every live room it finds. You get live viewer counts, room titles, cover images, streamer profiles with follower counts, and FLV and HLS stream URLs.

Browse Hot (热门), Chat (聊天), Music (音乐), Games (游戏), Anime (二次元), Dance (舞蹈), Culture (文化), Lifestyle (生活), Sports (运动), and game titles such as Honor of Kings (王者荣耀), League of Legends (英雄联盟), and Valorant (无畏契约). No Douyin account, cookies, or login are needed.

The Actor gives you a snapshot of the Douyin live directory as structured data. Select the categories you want, start the run, and download a list of live rooms in JSON, CSV, Excel, or HTML.

  • 📺 Browse 17 live categories – 9 main categories and 8 game subcategories.
  • 🆕 Get new categories automatically – leave the category list empty, and the Actor scrapes every live category that Douyin shows at the time of the run.
  • 👀 Live viewer counts – the number of people who watch each room now, and the total viewers of the broadcast.
  • 🏆 Category rank – the position of each room in the category list.
  • 👤 Streamer profiles – nickname, Douyin ID, bio, avatar, follower and following counts, verification text, and profile URL.
  • 🛒 Live commerce flag – see which live rooms sell products.
  • 🎥 Stream URLs – FLV and HLS URLs for every available video quality (optional).
  • 🎯 Filters – skip rooms below a minimum viewer count, limit the number of results, and remove duplicate rooms.

What data can you get from Douyin live rooms?

FieldDescriptionExample
urlLive room URLhttps://live.douyin.com/73596365817
titleLive room title啊!!这是谁回来了……
categoryNameCategory name in Chinese热门
categoryNameEnCategory name in EnglishHot
rankPosition of the room in the category list1
viewersNowCurrent live viewers250171
viewersNowTextCurrent live viewers as Douyin shows them25万在线观众
totalViewersTextTotal viewers of the broadcast as Douyin shows them10万+
coverUrlRoom cover imageimage URL
gameTagGame name for game streams王者荣耀
isRecommendedDouyin marks the room as recommendedtrue
hasCommerceGoodsThe room sells products (live commerce)false
streamerNickname, Douyin ID, bio, avatar, followers, following, profile URLobject
streamFLV and HLS URLs per quality (FULL_HD1, HD1, SD1, SD2)object
scrapedAtTime of the scrape (ISO 8601)2026-10-22T05:31:07.256Z

The full field list is in the Output section.

Use cases for Douyin live data

  • Live streaming trend research – see which categories, games, and streamers draw the most live viewers in China.
  • Influencer discovery – find active Douyin streamers in a niche, with follower counts and profile links.
  • Live commerce monitoring – track which live rooms sell products and how many people watch them.
  • Esports and game analytics – compare live viewers across game titles such as Honor of Kings, PUBG, and League of Legends.
  • Time series of live viewership – schedule the Actor every hour and compare the snapshots.
  • Live stream archives and monitoring – collect stream URLs for the rooms that you want to watch or record.

Input

All input fields are optional. With an empty input, the Actor scrapes every live category and saves every room it finds.

FieldTypeDefaultDescription
categoriesarray of ID strings[] (all)Categories to browse. Empty = every category that Douyin shows now.
maxResultsinteger0 (no limit)Stop after this many rooms are saved, in total for the run.
minViewersinteger0Skip rooms with fewer live viewers than this number.
includeStreamUrlsbooleantrueAdd FLV and HLS stream URLs to each room.
deduplicatebooleanfalseSave each room once, even when it shows in more than one category.

Example input:

{
"categories": ["720", "1010045"],
"maxResults": 200,
"minViewers": 100,
"includeStreamUrls": false,
"deduplicate": true
}

Douyin live category IDs

Send category IDs as strings, for example "720", not 720. The input accepts only the IDs in this table. To get categories that are not in the table, leave categories empty.

IDCategoryChinese nameParent
720Hot热门–
101Chat聊天–
102Music音乐–
103Games游戏–
104Anime (ACG)二次元–
105Dance舞蹈–
106Culture文化–
107Lifestyle生活–
108Sports运动–
1011032Delta Force三角洲行动Games
1010045Honor of Kings王者荣耀Games
1010017Valorant无畏契约Games
1010014League of Legends英雄联盟Games
1010032Peacekeeper Elite和平精英Games
1010042Naruto Mobile火影忍者手游Games
1010026PUBG绝地求生Games
1010055Golden Spatula (TFT)金铲铲之战Games

Rooms in a game subcategory also show in Games. To save each room once, set deduplicate to true.

Output

Each live room is one item in the dataset. This is a sample item (the streamer data and stream URLs are shortened):

{
"roomId": "7699360201154661161",
"webRid": "73596365817",
"url": "https://live.douyin.com/73596365817",
"title": "啊!!这是谁回来了……",
"categoryId": "720",
"categoryName": "热门",
"categoryNameEn": "Hot",
"rank": 1,
"viewersNow": 6,
"viewersNowText": "6在线观众",
"totalViewersText": "7",
"coverUrl": "https://p11-webcast.douyinpic.com/img/aweme-avatar/...webp",
"gameTag": null,
"tagName": null,
"isRecommended": true,
"hasCommerceGoods": false,
"streamer": {
"userId": "2652466855544127",
"secUid": "MS4wLjABAAAA...",
"displayId": "62629351460",
"nickname": "…",
"signature": "…",
"avatarUrl": "https://p11.douyinpic.com/aweme/100x100/aweme-avatar/...jpeg",
"followerCount": 13816,
"followingCount": 5,
"verifiedReason": null,
"profileUrl": "https://www.douyin.com/user/MS4wLjABAAAA..."
},
"scrapedAt": "2026-10-22T05:31:07.256Z",
"stream": {
"defaultQuality": "HD1",
"flvUrls": { "FULL_HD1": "http://pull-q3.douyincdn.com/...flv", "HD1": "…", "SD1": "…", "SD2": "…" },
"hlsUrls": { "FULL_HD1": "http://pull-q3.douyincdn.com/...m3u8", "HD1": "…", "SD1": "…", "SD2": "…" },
"hlsUrl": "http://pull-q3.douyincdn.com/...m3u8"
}
}

The stream object is present only when includeStreamUrls is true. Fields that Douyin does not show for a room are null.

In Apify Console, the dataset has two views:

  • Live rooms – cover, title, room URL, live viewers, category, rank, game, streamer, followers, and the commerce flag.
  • Streamers – avatar, nickname, Douyin ID, followers, verification, bio, profile URL, room URL, and live viewers.

Each run also saves a SUMMARY record in the key-value store. It shows the total number of rooms saved, and the pages loaded and rooms saved for each category.

You can run the Actor in Apify Console, through the Apify API, or from an AI assistant. The examples below use the Actor ID HGServices/douyin-trending-live-rooms-scraper. In API URLs, the slash becomes a tilde: HGServices~douyin-trending-live-rooms-scraper.

Apify Console

  1. Open the Actor in Apify Console.
  2. In Categories, select the categories you want. Leave the field empty to scrape all categories.
  3. Optionally, set Minimum live viewers to skip small rooms.
  4. Optionally, set Max results to limit the run.
  5. Click Start.
  6. When the run is done, open the Output tab.
  7. Click Export to download the results as JSON, CSV, Excel, XML, or HTML.

To get a snapshot every hour, open the Actor and click Schedule.

Apify API (HTTP)

Get your API token from Settings › API & Integrations in Apify Console. This request runs the Actor, waits for the run to finish, and returns the dataset items:

curl -X POST \
"https://api.apify.com/v2/acts/HGServices~douyin-trending-live-rooms-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"categories": ["1010045"],
"maxResults": 50,
"minViewers": 1000,
"includeStreamUrls": false
}'

The synchronous endpoint waits up to 300 seconds. For long runs, such as a run of all categories, start the run with POST /v2/acts/HGServices~douyin-trending-live-rooms-scraper/runs. Then get the items from GET /v2/datasets/{defaultDatasetId}/items when the run is done.

JavaScript (Node.js) with apify-client

Install the client with npm install apify-client.

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
// Start the Actor and wait for the run to finish.
const run = await client.actor('HGServices/douyin-trending-live-rooms-scraper').call({
categories: ['720', '1010045'],
maxResults: 200,
minViewers: 100,
includeStreamUrls: false,
deduplicate: true,
});
// Read the live rooms from the run's dataset.
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const room of items) {
console.log(room.viewersNow, room.title, room.url, room.streamer?.nickname);
}

Python with apify-client

Install the client with pip install apify-client.

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
# Start the Actor and wait for the run to finish.
run = client.actor("HGServices/douyin-trending-live-rooms-scraper").call(
run_input={
"categories": ["720", "1010045"],
"maxResults": 200,
"minViewers": 100,
"includeStreamUrls": False,
"deduplicate": True,
}
)
# Read the live rooms from the run's dataset.
for room in client.dataset(run["defaultDatasetId"]).iterate_items():
print(room["viewersNow"], room["title"], room["url"])

AI assistants (Claude, ChatGPT, and other MCP clients)

The Apify MCP server lets AI assistants run this Actor and read the results. Use this server URL to give the assistant access to this Actor only:

https://mcp.apify.com/?tools=HGServices/douyin-trending-live-rooms-scraper

Claude (claude.ai and Claude Desktop):

  1. Open Settings › Connectors.
  2. Click Add custom connector.
  3. Paste the server URL above.
  4. Sign in to Apify when Claude asks you.

Claude Code:

$claude mcp add --transport http apify "https://mcp.apify.com/?tools=HGServices/douyin-trending-live-rooms-scraper"

ChatGPT:

  1. Open Settings › Apps & Connectors.
  2. Turn on Developer mode in the advanced settings.
  3. Create a new connector with the server URL above.
  4. Sign in to Apify when ChatGPT asks you.

Other MCP clients (Cursor, VS Code, and more):

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=HGServices/douyin-trending-live-rooms-scraper"
}
}
}

Then ask the assistant in plain language. Example prompts:

  • "Find the 20 Honor of Kings live rooms on Douyin with the most viewers now. Show the streamer, follower count, and room URL."
  • "Which Douyin live categories have the most viewers now? Make a table."
  • "List Douyin streamers in the Music category with more than 100,000 followers."

Tips and limitations

  • Hot is a discovery feed, not a top list. Douyin mixes small and large rooms in the Hot category. To get only big rooms, set Minimum live viewers or sort the results by viewersNow.
  • Category depth. Douyin shows about 100–150 rooms per category. Small categories, such as Dance or Sports, can have only 15 rooms at some times of day.
  • maxResults is a total for the run. When you select more than one category, the first categories can use up the limit.
  • Stream URLs expire. Use them soon after the run.
  • Results are a snapshot. Live rooms start and end all the time. Schedule the Actor to track changes.
  • No keyword search. The Actor browses live categories. It does not search Douyin for keywords.

FAQ

Do I need a Douyin account or cookies?

No. The Actor collects data from the public live category pages. You do not need a Douyin account, cookies, or a login.

Do I need a proxy?

No. You do not need to configure a proxy. The Actor manages its connection to Douyin.

How long does a run take?

A run of all categories (about 1,500 rooms) usually takes 1–2 minutes. A run of one category takes a few seconds.

Can I get comments, gifts, or more data for one live room?

No. This Actor finds live rooms and gives you their room URLs. To get more data for one live room, give the room URL to a Douyin live room scraper.

This Actor collects only data that Douyin shows publicly to every visitor of live.douyin.com. The output includes public streamer profile data. You are responsible for using it in line with the Douyin terms of service and data protection laws such as GDPR and the Chinese PIPL. Read more in the Apify blog post Is web scraping legal?.

I found a bug or need a feature

Open an issue in the Issues tab of the Actor. We read every report.