Bilibili Scraper avatar

Bilibili Scraper

Pricing

$2.00 / 1,000 results

Go to Apify Store
Bilibili Scraper

Bilibili Scraper

Scrapes Bilibili without login: videos with views, likes, coins, favorites, shares, danmaku, tags and uploader followers, from video links, uploader pages or keyword searches.

Pricing

$2.00 / 1,000 results

Rating

0.0

(0)

Developer

Mina

Mina

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

What does Bilibili Scraper do?

Bilibili Scraper collects video data from Bilibili (哔哩哔哩, B站), China's biggest video site, without logging in. Paste video links, uploader (UP主) spaces or search pages, or type keywords, and get one clean row per video with views, likes, coins, favorites, shares, danmaku and comments, plus the title, description, tags, category, duration, cover, publish time, copyright type and the uploader's name and follower count. Uploader links can also add a profile row with followers, following, video count, total likes, level and verification.

Every video row has the same complete set of fields, whether it came from a link, an uploader or a search: coins and shares are not left empty for search results.

Try it with the prefilled input: click Start and 11 videos arrive in a few seconds. Because it runs on the Apify platform, you also get API access, scheduled runs, integrations (Google Sheets, Make, Zapier, webhooks), run monitoring, and automatic retries through Apify Proxy if Bilibili refuses a request.

Why scrape Bilibili?

  • Influencer (KOL) research: compare uploaders by followers, total likes and the engagement of their newest or most popular videos.
  • Brand and campaign tracking: find every video about your product, game or brand and follow its views, likes, coins and comments.
  • Market and trend research: see what Chinese Gen-Z audiences watch, by keyword, category, duration or date range.
  • Content strategy: study titles, tags, categories, video length and publishing times of top videos in your niche.
  • Data for analysis and AI: export structured video metadata at scale.

How to scrape Bilibili videos

  1. Open a Bilibili video, an uploader's space or a search, and copy the address. The text the app's Share button copies works too.
  2. Paste it into Bilibili links, one per line. Or type words into Search keywords.
  3. Set Max videos per uploader or search, and choose the order you want.
  4. Click Start. When the run finishes, download the results.

Input

Everything is set on the Input tab. The links the Actor understands:

You pasteYou get
A video: https://www.bilibili.com/video/BV1p7411Y7BC, av84887919, an m.bilibili.com link, a b23.tv short link, or the app's share textThat video
An uploader: https://space.bilibili.com/546195, m.bilibili.com/space/… or uid:546195Their videos, plus a profile row
A search page: https://search.bilibili.com/all?keyword=…Its results, with the order, duration, category and date filters set on the page

In JSON, the input looks like this:

{
"startUrls": [
"https://www.bilibili.com/video/BV1p7411Y7BC",
"https://space.bilibili.com/546195",
"https://search.bilibili.com/all?keyword=%E6%97%85%E8%A1%8C&order=click&duration=2"
],
"searchKeywords": ["lofi", "原神 攻略"],
"maxVideos": 50,
"searchSort": "relevance",
"uploaderSort": "newest",
"includeUploaderInfo": true
}
FieldWhat it does
startUrlsVideo, uploader and search links (see the table above). Bare ids such as BV1p7411Y7BC or uid:546195 work too.
searchKeywordsWords to search for, in Chinese or any other language.
maxVideosStops after this many videos for each uploader, search link and keyword. Default: 50. A video link always gives its one video.
searchSortOrder of keyword results: relevance (default), newest, mostViewed, mostDanmaku, mostFavorited or mostComments. Search links keep their own order.
uploaderSortWhich of an uploader's videos come first: newest (default), mostViewed or mostFavorited.
includeUploaderInfoAdds one profile row for each uploader link. Default: on.
proxyConfigurationOptional; leave it empty (see the FAQ).

Output

Each video becomes one row. Here is a real one, with its description shortened:

{
"type": "video",
"bvid": "BV1p7411Y7BC",
"aid": 84887919,
"url": "https://www.bilibili.com/video/BV1p7411Y7BC",
"title": "最强自夸王!!!!!",
"description": "歌曲:《自夸小队》\n作词/演唱:某幻君,老番茄,中国boy超级大猩猩,花少北…",
"coverUrl": "https://i2.hdslb.com/bfs/archive/202bc40ecf4991d21df91f52a2d112eddb977de1.jpg",
"durationSeconds": 231,
"partCount": 1,
"publishedAt": "2020-01-25T12:00:12+08:00",
"category": "原创音乐",
"categoryV2": "鬼畜调教",
"copyright": "original",
"tags": ["发现《自夸小队》", "阴阳怪气", "花少北", "老番茄", "某幻君", "上海ZOO", "中国boy", "自夸小队", "干杯计划", "RAP"],
"viewCount": 41487287,
"likeCount": 1970526,
"coinCount": 1797096,
"favoriteCount": 910435,
"shareCount": 249890,
"danmakuCount": 461655,
"commentCount": 61758,
"uploader": {
"mid": 1577804,
"name": "某幻君",
"url": "https://space.bilibili.com/1577804",
"avatarUrl": "https://i2.hdslb.com/bfs/face/a7eda2f97431d13f89a43b310262d1b19be83c01.jpg",
"followerCount": 9000635
},
"searchRank": null,
"sourceInput": "https://www.bilibili.com/video/BV1p7411Y7BC/?spm_id_from=333.1007",
"scrapedAt": "2026-10-08T12:59:06.319415+00:00"
}

And an uploader's profile row:

{
"type": "uploader",
"mid": 546195,
"name": "老番茄",
"url": "https://space.bilibili.com/546195",
"avatarUrl": "https://i0.hdslb.com/bfs/face/bc5ca101313d4db223c395d64779e76eb3482d60.jpg",
"bio": "新浪微博:_老番茄_",
"level": 6,
"followerCount": 20828051,
"followingCount": 6,
"videoCount": 680,
"likeCount": 195733344,
"isVerified": true,
"verification": "2025百大UP主、2025年度商业影响力奖UP主、2022年度联合创作奖UP主",
"sourceInput": "https://space.bilibili.com/546195",
"scrapedAt": "2026-10-08T12:59:06.713493+00:00"
}

The Output tab has two views, Videos and Uploader profiles. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data fields

Video rows (type is video):

FieldDescription
bvid, aidThe video's BV id and av number.
urlLink to the video.
title, descriptionAs written by the uploader. description is null when there is none.
coverUrlThe cover image.
durationSecondsLength in seconds (all parts together).
partCountNumber of parts (分P).
publishedAtWhen it was published, in China Standard Time (UTC+8), ISO 8601, for example 2020-01-25T12:00:12+08:00: the time Bilibili shows on the video page.
categoryBilibili's category (zone, 分区) name, such as 单机游戏.
categoryV2The category in Bilibili's newer zone list, such as 旅游记录.
copyrightoriginal (自制), repost (转载) or unspecified when the uploader did not say.
tagsThe video's tags.
viewCount, likeCount, coinCount, favoriteCount, shareCount, danmakuCount, commentCountExact counters. A counter Bilibili hides is null.
uploaderThe uploader's mid, name, url, avatarUrl and followerCount.
searchRankThe video's place in the search results, from 1; null for videos from links and uploaders.
sourceInputThe link or keyword the video was found through.
scrapedAtWhen the row was saved (UTC).

Uploader rows (type is uploader): mid, name, url, avatarUrl, bio, level, followerCount, followingCount, videoCount, likeCount (total likes on their videos), isVerified, verification (the verification title), sourceInput and scrapedAt.

How much does it cost to scrape Bilibili?

Bilibili Scraper uses pay-per-event pricing: you pay for each row saved (each video or uploader profile). See the Pricing tab for the exact price.

  • Links that return nothing are never saved as rows, so they are not charged.
  • If you set a maximum cost for a run, the Actor stops as soon as it is reached.
  • The Actor uses plain, fast requests and no browser. In our tests 1,000 videos took three to four minutes, and the prefilled input under ten seconds.

Tips for scraping Bilibili

  • Filter with a search link. Open Bilibili search, set the order, duration, category (分区) or publish date there, and paste the address. The filters are kept.
  • Go past 1,000 search results. Bilibili's search stops at about 1,000 videos per search. For more, run the same keyword with several date ranges (search links with different publish dates).
  • Get an uploader's best videos: set uploaderSort to mostViewed or mostFavorited.
  • Monitor uploaders: schedule a daily run with uploaderSort: newest and a small maxVideos to collect their latest videos and stats.
  • Only need videos? Turn off includeUploaderInfo; video rows still carry the uploader's name and follower count.
  • Each video is saved only once per run, even when several inputs lead to it.

FAQ, disclaimers and support

What can't it scrape? Comments and danmaku texts, live rooms, anime, films and TV series (番剧/bangumi), and videos that Bilibili shows only to logged-in users, to the uploader, or not in the region it sees. Such links are listed with the reason in the FAILED_INPUTS record.

What happens to links that return nothing? They are not saved as rows, so you are not charged for them. Each one is listed with its reason in the FAILED_INPUTS record of the run's key-value store, and the run's status message gives the counts. A run fails only when every input failed because Bilibili could not be reached.

Do I need a proxy? No. Bilibili answers the Actor directly. Bilibili limits how fast one address may ask, so on big runs the Actor also sends requests through Apify's datacenter proxy, and retries a request that Bilibili keeps refusing through Apify's residential proxy as a last resort.

Why do some of an uploader's videos name another uploader? Bilibili lists videos made together (合作) on the page of every uploader who took part. The uploader field always names the video's owner, so you can filter on it.

Why are some search results only loosely related? Like Bilibili's own search, rare or misspelled keywords are filled up with loosely related videos. The Actor saves what Bilibili's search returns, in its order.

Why are categories in Chinese? They are Bilibili's own names. category uses the zone list most tools know, and categoryV2 the newer one Bilibili's website now shows.

Is it legal to scrape Bilibili? This Actor reads only public video pages and profiles that Bilibili shows to any visitor without logging in. Video data and uploader profiles can still contain personal data, so you are responsible for making sure your use complies with Bilibili's Terms of Service and with data protection laws such as the GDPR and China's PIPL. If in doubt, ask a lawyer.

Found a problem or need a custom solution? Open an issue on the Issues tab and we will look into it. Custom scrapers and data feeds are available on request.