Bilibili Trending Videos Scraper 哔哩哔哩: Rankings & Hot Searches
Pricing
from $3.00 / 1,000 feed rows
Bilibili Trending Videos Scraper 哔哩哔哩: Rankings & Hot Searches
Scrape Bilibili 哔哩哔哩 (B站) popular videos, category ranking boards, the all-time must-watch list and hot searches as JSON. Filter by views, category and age, sort by views per hour, and track new entries and rank moves between scheduled runs. Export to CSV, Excel or API.
Pricing
from $3.00 / 1,000 feed rows
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
📺 Bilibili Trending Videos Scraper 哔哩哔哩: Rankings & Hot Searches
|
See what is breaking out on Bilibili, hour by hour Pull the popular feed, category top 100s, the must-watch list and hot searches from Bilibili, with views per hour, engagement rates and rank moves on every row. |
|
📊 Four lists, one run Popular feed, top-100 boards for 19 partitions, the must-watch list and hot searches. |
⚡ Views per hour built in Engagement rate and views per hour on every row, ready to sort. |
🔁 Rank-change tracking See new entries, places moved and views gained since your last run. |
🎯 Filters that cut the noise Category, keywords, creators, minimum views, length and age. |
Track what is trending on Bilibili (哔哩哔哩, also known as B站), China's biggest video community, without any login. Read four public lists, filter them down to what matters, and compare runs to see which videos are rising, new or dropping out.
🔍 What does Bilibili Trending Videos Scraper do?
It collects the lists Bilibili itself publishes: the live popular feed (up to 500 positions), the top-100 ranking boards for 19 category partitions, the all-time must-watch list and the current hot search keywords. Results download as JSON, CSV or Excel.
Each video row comes with engagement rate, like, coin, favorite and share rates, views per hour and video age already worked out. Turn on change tracking and a scheduled run also tells you who is new, how many places a video moved and how many views it gained. Optional extras add video tags and creator stats such as followers, uploads, level and verification.
Fields Bilibili does not provide are left out, never filled with placeholders.
💡 Why use it
- I am a trend analyst covering China's online video. I sort by views per hour each morning to find videos that are climbing fast, not just the ones that are already huge.
- I am a brand or agency scout. I filter a category ranking board by minimum views and engagement rate, then pull creator followers and verification to build an outreach shortlist.
- I am a content strategist. I watch hot search keywords and video tags to see which topics are heating up before I plan the next batch of content.
- I am a market researcher. I schedule daily snapshots and load the flat rows straight into a dashboard to show what China's online audience is watching.
🚀 How it works
|
STEP 1 Choose a list Pick the popular feed, a ranking board, the must-watch list or hot searches, then add filters. |
STEP 2 Get ranked rows Every video arrives with engagement rates and views per hour, sorted the way you asked. |
STEP 3 Schedule and track Run it hourly or daily to see what is new, what climbed and what dropped out. |
📥 Input
| Field | Type | Required | Description |
|---|---|---|---|
feed | enum | No | Which Bilibili list to collect: the live popular feed, the top-100 ranking board, the all-time must-watch list or the current hot search keywords. Defaults to the popular feed. |
rankingPartition | enum | No | Ranking board only. Pick one of 19 category partitions, or all partitions for the site-wide top 100. |
rankingType | enum | No | Ranking board only. All content, original uploads only, or rookie creators only. |
categories | array of strings | No | Keep videos in these categories. Accepts English or Chinese names such as Gaming or 游戏, sub-category names or numeric category IDs. Leave empty for all. |
excludeCategories | array of strings | No | Drop videos in these categories. Same formats as the category filter. |
keywords | array of strings | No | Keep videos whose title, description or hashtags contain at least one of these words. Not case sensitive. |
excludeKeywords | array of strings | No | Drop videos whose title, description or hashtags contain any of these words. |
creators | array of strings | No | Keep videos from these creators. Accepts a creator ID, a space.bilibili.com profile link or part of the creator name. |
minViews | integer | No | Drop videos with fewer views than this. Zero turns the filter off. |
minLikes | integer | No | Drop videos with fewer likes than this. Zero turns the filter off. |
minEngagementRatePct | number | No | Drop videos whose engagement rate is lower. Engagement rate adds likes, coins, favorites, shares and comments as a percentage of views. Zero turns the filter off. |
minDurationMinutes | number | No | Drop videos shorter than this many minutes. Zero turns the filter off. |
maxDurationMinutes | number | No | Drop videos longer than this many minutes. Zero turns the filter off. |
publishedWithin | enum | No | Keep only recent uploads, from the last 6 hours up to the last 30 days. Good for spotting fresh breakouts. Defaults to any time. |
contentOrigin | enum | No | Keep only self-made uploads, or only reposts and licensed uploads. Defaults to both. |
contentKind | enum | No | Creator uploads versus official series episodes (anime, drama and similar) that Bilibili mixes into its lists. Defaults to both. |
includeTags | boolean | No | Add each video's tag list, useful for topic analysis. Off by default. Billed only for videos that have tags. |
includeCreatorStats | boolean | No | Add follower count, following count, upload count, total likes, level and verification for each creator. Off by default. Billed only for videos where creator stats were found. |
trackChanges | boolean | No | Save a snapshot after each run and add rank moves, new-entry flags and views gained by comparing with the last snapshot. The first run only creates the baseline. On by default. |
historyName | string | No | A name for the tracking history. Use different names to keep separate histories for different schedules or filter sets that read the same feed. |
onlyNewEntries | boolean | No | Save only videos that entered the list since the last run, or came back after leaving. Needs change tracking and an earlier run. |
maxItems | integer | No | Maximum rows to save after filtering and sorting, from 1 to 500. Defaults to 20. |
scanDepth | integer | No | How many list positions to read before filtering, up to 500 on the popular feed. Raise it when your filters are tight. Defaults to 100. |
sortBy | enum | No | Order of the saved rows: Bilibili's own order, or by views, likes, coins, favorites, shares, comments, danmaku, engagement rate, views per hour or newest. |
proxyConfiguration | object | No | Optional proxy settings. Used only when Bilibili turns a direct request away, and blocked requests are retried automatically. The default is enough for most runs. |
The default input returns the top 20 videos from the popular feed in a few seconds.
📊 Data table
Each dataset row is one video or one hot search keyword.
| Field | Type | Description |
|---|---|---|
recordType | string | Row type: video or hotSearch. |
feed | string | Feed the row came from: popular, ranking, mustWatch or hotSearches. |
position | integer | Position in the feed (1 is the top). |
videoId | string | Bilibili BV video ID. |
avId | integer | Numeric AV video ID. |
title | string | Video title. |
description | string | Video description. |
url | string | Video page link. |
shortUrl | string | Short b23.tv link. |
thumbnailUrl | string | Cover image link. |
durationSeconds | integer | Length in seconds. |
durationFormatted | string | Length as m:ss or h:mm:ss. |
publishedAt | string | Publish time (ISO 8601, UTC). |
ageHours | number | Hours since publication at retrieval time. |
category | string | Bilibili sub-category name. |
categoryId | integer | Sub-category ID. |
categoryParent | string | Top-level partition name in Chinese. |
categoryParentEn | string | Top-level partition name in English. |
contentKind | string | ugc for creator uploads, ogv for official series episodes. |
isOriginal | boolean | True for self-made uploads, false for reposts and licensed uploads. |
partCount | integer | Number of parts for multi-part videos. |
isVertical | boolean | True for portrait video. |
resolution | string | Video resolution, for example 1920x1080. |
publishLocation | string | Upload location label shown by Bilibili. |
recommendReason | string | Badge or editor note shown on the list, for example 百万播放. |
hashtags | array of strings | Hashtags found in the video post text. |
creatorId | integer | Creator (UP主) ID. |
creatorName | string | Creator name. |
creatorUrl | string | Creator profile link. |
creatorAvatarUrl | string | Creator avatar link. |
views | integer | View count. |
likes | integer | Like count. |
coins | integer | Coin count. |
favorites | integer | Favorite count. |
shares | integer | Share count. |
comments | integer | Comment count. |
danmaku | integer | Danmaku (bullet comment) count. |
peakRankingPosition | integer | Best position the video has reached on Bilibili ranking boards, when shown. |
engagementRatePct | number | Likes, coins, favorites, shares and comments as a percent of views. |
likeRatePct | number | Likes as a percent of views. |
coinRatePct | number | Coins as a percent of views. |
favoriteRatePct | number | Favorites as a percent of views. |
shareRatePct | number | Shares as a percent of views. |
tripleActionRatePct | number | Likes, coins and favorites together as a percent of views. |
danmakuPer1kViews | number | Danmaku per 1,000 views. |
viewsPerHour | integer | Average views per hour since publication. |
rankingPartition | string | Ranking partition name. |
rankingType | string | Ranking type. |
mustWatchList | string | Name of the all-time must-watch list. |
tags | array of strings | Video tags. Only with Add video tags on. |
creatorFollowers | integer | Creator followers. Only with Add creator stats on. |
creatorFollowing | integer | Accounts the creator follows. Only with Add creator stats on. |
creatorVideoCount | integer | Creator upload count. Only with Add creator stats on. |
creatorTotalLikes | integer | Total likes across the creator. Only with Add creator stats on. |
creatorLevel | integer | Creator account level. Only with Add creator stats on. |
creatorBio | string | Creator bio. Only with Add creator stats on. |
creatorVerified | boolean | Whether the creator is officially verified. Only with Add creator stats on. |
creatorVerifiedTitle | string | Verification title. Only with Add creator stats on. |
isNew | boolean | True when the item entered the feed since the previous run. |
reEntered | boolean | True when the item left the feed and came back. |
previousPosition | integer | Position in the previous run. |
positionChange | integer | Positions gained since the previous run; positive means it moved up. |
previousSeenAt | string | When the previous run saw the item. |
firstSeenAt | string | When tracking first saw the item. |
timesSeen | integer | Number of runs that have seen the item. |
bestPosition | integer | Best position seen across runs. |
viewsGained | integer | Views gained since the previous run. |
viewsGainedPerHour | integer | Views gained per hour since the previous run. |
likesGained | integer | Likes gained since the previous run. |
coinsGained | integer | Coins gained since the previous run. |
favoritesGained | integer | Favorites gained since the previous run. |
commentsGained | integer | Comments gained since the previous run. |
sharesGained | integer | Shares gained since the previous run. |
danmakuGained | integer | Danmaku gained since the previous run. |
keyword | string | Hot search keyword. |
displayName | string | Display text when different from the keyword. |
heatScore | integer | Hot search heat score. |
heatChange | integer | Heat score change since the previous run. |
searchUrl | string | Bilibili search link for the keyword. |
iconUrl | string | Badge icon link for the keyword. |
retrievedAt | string | When the row was collected (ISO 8601). |
A run summary with counts, filter results, new entries, videos that dropped out and the biggest risers is saved with every run.
📤 Sample output
A real video row from a second scheduled run with tags and creator stats switched on. Long text fields and image links are left out here for length.
{"recordType": "video","feed": "popular","position": 1,"videoId": "BV1Vtpg65EnA","title": "也是当上外卖大法官了","url": "https://www.bilibili.com/video/BV1Vtpg65EnA","durationFormatted": "4:55","publishedAt": "2026-10-10T10:30:00.000Z","ageHours": 22.9,"category": "综合","categoryParentEn": "Animation","isOriginal": false,"creatorId": 480680646,"creatorName": "阿萨Aza","views": 1533775,"likes": 53187,"coins": 3397,"favorites": 4324,"shares": 911,"comments": 1019,"danmaku": 495,"engagementRatePct": 4.1,"viewsPerHour": 66977,"retrievedAt": "2026-10-11T09:26:17.934Z","isNew": false,"previousPosition": 1,"positionChange": 0,"viewsGained": 3883,"likesGained": 50,"firstSeenAt": "2026-10-11T09:25:50.801Z","timesSeen": 2,"bestPosition": 1,"tags": ["搞笑","阿萨Aza","切片","外卖","虚拟主播"],"creatorFollowers": 1726313,"creatorVideoCount": 2738,"creatorTotalLikes": 54025548,"creatorLevel": 6,"creatorVerified": true}
💰 Pricing
Pricing is pay per result. You pay for each row saved to your dataset, so a run that saves nothing costs nothing. There are no subscriptions, and per-row prices fall automatically on higher Apify plans.
- Tags and creator stats are billed only for videos that actually include them, and only when you switch those options on.
- Change tracking, rank moves, new-entry flags, filters and engagement metrics are included in the row price.
- Set a maximum charge for the run in Apify and the Actor stops saving rows once it is reached.
⭐ Enjoying Bilibili Trending Videos Scraper?
|
⭐ ⭐ ⭐ ⭐ ⭐ One scheduled run just showed you which Bilibili videos are breaking out, not just which are big. A 5-star rating takes 10 seconds and helps other trend analysts, agencies and brand scouts find this Actor. Your feedback also tells us what to build next. |
| ★ Rate this Actor on Apify |
❓ FAQ
B站热门视频怎么批量导出?
Run the Actor with the popular feed selected and set maxItems and scanDepth to the number of positions you want, up to 500. Download the rows as JSON, CSV or Excel, or send them to a sheet or dashboard.
哔哩哔哩排行榜和热搜怎么每天自动监控?
Pick the ranking board or hot searches, then schedule the Actor hourly or daily with the same tracking name. From the second run on, every row shows whether it is new, how many places it moved and how many views it gained.
Do I need a Bilibili account?
No. The Actor reads public lists, so no login, cookie or API key is needed. It does not return comment threads, danmaku text, keyword search results or video downloads.
Why did I get fewer rows than my limit, or no trend fields?
Filters apply after the scan, so tight filters can leave fewer rows. Raise scanDepth or loosen a filter, and check the run summary to see which filter removed rows. Trend fields start on the second run, because the first run only creates the baseline.
🔗 Other actors
- Douban Movie Top 250 Scraper 豆瓣电影: Hot Charts, Filters, Changes ↗ - Chinese film charts with ratings, filters and change tracking.
- Douban Music Scraper 豆瓣音乐: Top 250, Weekly Charts and Tag Lists ↗ - Chinese music rankings and weekly charts.
- Douban Book Scraper 豆瓣读书: Top 250, Tags, New Releases, Changes ↗ - Chinese book rankings, tag lists and new releases.
- Xigua Video Scraper 西瓜视频: Keyword & Hashtag Search, Play Stats ↗ - Search Chinese short video by keyword or hashtag with play stats.
- Kick Trending Clips Scraper: Rank Viral Clips by View Velocity ↗ - Find streaming clips going viral, ranked by views per hour.