Bilibili Trending Videos Scraper 哔哩哔哩: Rankings & Hot Searches avatar

Bilibili Trending Videos Scraper 哔哩哔哩: Rankings & Hot Searches

Pricing

from $3.00 / 1,000 feed rows

Go to Apify Store
Bilibili Trending Videos Scraper 哔哩哔哩: Rankings & Hot Searches

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

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

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

FieldTypeRequiredDescription
feedenumNoWhich 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.
rankingPartitionenumNoRanking board only. Pick one of 19 category partitions, or all partitions for the site-wide top 100.
rankingTypeenumNoRanking board only. All content, original uploads only, or rookie creators only.
categoriesarray of stringsNoKeep videos in these categories. Accepts English or Chinese names such as Gaming or 游戏, sub-category names or numeric category IDs. Leave empty for all.
excludeCategoriesarray of stringsNoDrop videos in these categories. Same formats as the category filter.
keywordsarray of stringsNoKeep videos whose title, description or hashtags contain at least one of these words. Not case sensitive.
excludeKeywordsarray of stringsNoDrop videos whose title, description or hashtags contain any of these words.
creatorsarray of stringsNoKeep videos from these creators. Accepts a creator ID, a space.bilibili.com profile link or part of the creator name.
minViewsintegerNoDrop videos with fewer views than this. Zero turns the filter off.
minLikesintegerNoDrop videos with fewer likes than this. Zero turns the filter off.
minEngagementRatePctnumberNoDrop 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.
minDurationMinutesnumberNoDrop videos shorter than this many minutes. Zero turns the filter off.
maxDurationMinutesnumberNoDrop videos longer than this many minutes. Zero turns the filter off.
publishedWithinenumNoKeep only recent uploads, from the last 6 hours up to the last 30 days. Good for spotting fresh breakouts. Defaults to any time.
contentOriginenumNoKeep only self-made uploads, or only reposts and licensed uploads. Defaults to both.
contentKindenumNoCreator uploads versus official series episodes (anime, drama and similar) that Bilibili mixes into its lists. Defaults to both.
includeTagsbooleanNoAdd each video's tag list, useful for topic analysis. Off by default. Billed only for videos that have tags.
includeCreatorStatsbooleanNoAdd 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.
trackChangesbooleanNoSave 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.
historyNamestringNoA name for the tracking history. Use different names to keep separate histories for different schedules or filter sets that read the same feed.
onlyNewEntriesbooleanNoSave only videos that entered the list since the last run, or came back after leaving. Needs change tracking and an earlier run.
maxItemsintegerNoMaximum rows to save after filtering and sorting, from 1 to 500. Defaults to 20.
scanDepthintegerNoHow many list positions to read before filtering, up to 500 on the popular feed. Raise it when your filters are tight. Defaults to 100.
sortByenumNoOrder of the saved rows: Bilibili's own order, or by views, likes, coins, favorites, shares, comments, danmaku, engagement rate, views per hour or newest.
proxyConfigurationobjectNoOptional 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.

FieldTypeDescription
recordTypestringRow type: video or hotSearch.
feedstringFeed the row came from: popular, ranking, mustWatch or hotSearches.
positionintegerPosition in the feed (1 is the top).
videoIdstringBilibili BV video ID.
avIdintegerNumeric AV video ID.
titlestringVideo title.
descriptionstringVideo description.
urlstringVideo page link.
shortUrlstringShort b23.tv link.
thumbnailUrlstringCover image link.
durationSecondsintegerLength in seconds.
durationFormattedstringLength as m:ss or h:mm:ss.
publishedAtstringPublish time (ISO 8601, UTC).
ageHoursnumberHours since publication at retrieval time.
categorystringBilibili sub-category name.
categoryIdintegerSub-category ID.
categoryParentstringTop-level partition name in Chinese.
categoryParentEnstringTop-level partition name in English.
contentKindstringugc for creator uploads, ogv for official series episodes.
isOriginalbooleanTrue for self-made uploads, false for reposts and licensed uploads.
partCountintegerNumber of parts for multi-part videos.
isVerticalbooleanTrue for portrait video.
resolutionstringVideo resolution, for example 1920x1080.
publishLocationstringUpload location label shown by Bilibili.
recommendReasonstringBadge or editor note shown on the list, for example 百万播放.
hashtagsarray of stringsHashtags found in the video post text.
creatorIdintegerCreator (UP主) ID.
creatorNamestringCreator name.
creatorUrlstringCreator profile link.
creatorAvatarUrlstringCreator avatar link.
viewsintegerView count.
likesintegerLike count.
coinsintegerCoin count.
favoritesintegerFavorite count.
sharesintegerShare count.
commentsintegerComment count.
danmakuintegerDanmaku (bullet comment) count.
peakRankingPositionintegerBest position the video has reached on Bilibili ranking boards, when shown.
engagementRatePctnumberLikes, coins, favorites, shares and comments as a percent of views.
likeRatePctnumberLikes as a percent of views.
coinRatePctnumberCoins as a percent of views.
favoriteRatePctnumberFavorites as a percent of views.
shareRatePctnumberShares as a percent of views.
tripleActionRatePctnumberLikes, coins and favorites together as a percent of views.
danmakuPer1kViewsnumberDanmaku per 1,000 views.
viewsPerHourintegerAverage views per hour since publication.
rankingPartitionstringRanking partition name.
rankingTypestringRanking type.
mustWatchListstringName of the all-time must-watch list.
tagsarray of stringsVideo tags. Only with Add video tags on.
creatorFollowersintegerCreator followers. Only with Add creator stats on.
creatorFollowingintegerAccounts the creator follows. Only with Add creator stats on.
creatorVideoCountintegerCreator upload count. Only with Add creator stats on.
creatorTotalLikesintegerTotal likes across the creator. Only with Add creator stats on.
creatorLevelintegerCreator account level. Only with Add creator stats on.
creatorBiostringCreator bio. Only with Add creator stats on.
creatorVerifiedbooleanWhether the creator is officially verified. Only with Add creator stats on.
creatorVerifiedTitlestringVerification title. Only with Add creator stats on.
isNewbooleanTrue when the item entered the feed since the previous run.
reEnteredbooleanTrue when the item left the feed and came back.
previousPositionintegerPosition in the previous run.
positionChangeintegerPositions gained since the previous run; positive means it moved up.
previousSeenAtstringWhen the previous run saw the item.
firstSeenAtstringWhen tracking first saw the item.
timesSeenintegerNumber of runs that have seen the item.
bestPositionintegerBest position seen across runs.
viewsGainedintegerViews gained since the previous run.
viewsGainedPerHourintegerViews gained per hour since the previous run.
likesGainedintegerLikes gained since the previous run.
coinsGainedintegerCoins gained since the previous run.
favoritesGainedintegerFavorites gained since the previous run.
commentsGainedintegerComments gained since the previous run.
sharesGainedintegerShares gained since the previous run.
danmakuGainedintegerDanmaku gained since the previous run.
keywordstringHot search keyword.
displayNamestringDisplay text when different from the keyword.
heatScoreintegerHot search heat score.
heatChangeintegerHeat score change since the previous run.
searchUrlstringBilibili search link for the keyword.
iconUrlstringBadge icon link for the keyword.
retrievedAtstringWhen 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.
⭐ ⭐ ⭐ ⭐ ⭐
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