Bilibili Scraper: Videos, Comments, Danmaku & Uploaders avatar

Bilibili Scraper: Videos, Comments, Danmaku & Uploaders

Pricing

from $1.50 / 1,000 videos

Go to Apify Store
Bilibili Scraper: Videos, Comments, Danmaku & Uploaders

Bilibili Scraper: Videos, Comments, Danmaku & Uploaders

Scrape Bilibili videos by search, link or uploader without logging in: views, likes, coins, tags, uploader profiles, comments with replies and danmaku, in clean rows.

Pricing

from $1.50 / 1,000 videos

Rating

0.0

(0)

Developer

Stratum ICS

Stratum ICS

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What does Bilibili Scraper do?

Bilibili Scraper extracts Bilibili (哔哩哔哩, B站) videos, uploader profiles, comments and danmaku without logging in. Search Bilibili by keyword, paste video links or BV ids, or give uploader (UP主) links, and get title, description, tags, category, views, likes, coins, favorites, shares, danmaku and comment counts, uploader, parts, cover and publish date for every video, plus each uploader's followers, level, video count and verification.

Add the comments with their replies and the danmaku (弹幕, the comments that fly across the video) when you need them. Use it from the Apify Console, through the Apify API as a Bilibili API alternative, or from any AI agent connected to Apify.

Why use this Bilibili scraper?

  • No login, no cookies, no Chinese phone number. It reads Bilibili the way a logged-out visitor does, from anywhere in the world.
  • Full video details on every row. Views, likes, coins (投币), favorites (收藏), shares, danmaku and comment counts, tags, category, parts (分P), resolution, joint-work credits and the uploader, not just what a search card shows.
  • Searches, links and uploaders in one run. Up to 1,000 results per search term (Bilibili's own limit), sorted by best match, views, date, danmaku or favorites, with length and date filters.
  • All the comments you ask for. Logged-out Bilibili pages show 3 comments per video; this scraper pages through them, most liked or newest first, with replies right after the comment they answer.
  • Danmaku for every part. Text, the second it appears at, color, mode, font size and send time, in time order, at a fraction of a cent per thousand.
  • Follow uploaders on a schedule. With Only new videos, each run saves only videos earlier runs have not saved.
  • Fast and cheap to run. Plain HTTP requests, no browser: 330 videos from three searches took under a minute in our tests.

Typical uses: brand and agency work on the Chinese market (what is trending, who the creators are, how audiences react), creator and competitor tracking, comment and danmaku sentiment analysis for research and AI pipelines, and datasets of videos for media studies.

What data can you extract from Bilibili?

FieldExample
bvid, aid, cid, urlBV1pTap6UE1w · 117353656356865 · 42306046424 · video link
title, description, tags《原神》过场动画-「遗赠」 · description · 原神, 米哈游, 过场动画
category, categoryId, publishedAt, duration手机游戏 · 172 · 2026-10-10 · 450 seconds
viewCount, likeCount, coinCount, favoriteCount, shareCount762,568 · 88,980 · 17,052 · 11,523 · 2,607
danmakuCount, replyCount1,396 danmaku · 7,433 comments
ownerMid, ownerName, ownerFace401742377 · 原神 · picture link
cover, width, height, pagesCount, pagescover link · 2560 x 1440 · 4 parts with titles and lengths
isOriginal, isCooperation, stafforiginal work · joint work · credited uploaders and roles
Uploaders: name, sign, level, followers, following, videoCount老番茄 · bio · 6 · 20,850,826 · 7 · 682
Uploaders: likesCount, officialTitle, officialType196,276,391 · verification title · personal or organization
Comments: text, memberName, createdAt, likeCount, replyCountcomment text · commenter · date · likes · replies
Comments: parentId, rootId, isPinnedthread links for replies · pinned by the uploader
Danmaku: text, time, mode, color, fontSize, sentAt【每周必看】 · 0.338 s · scrolling · #ffffff · 25 · send date

Video links Bilibili does not show logged out (deleted, private, under review or limited to some regions) and uploaders that do not exist come back as free rows with a status of unavailable or notFound and Bilibili's own message, so you can see what happened to every input. Each run also saves a free summary per input in the SUMMARY record of its key-value store.

How to scrape Bilibili

  1. Open the Input tab and enter search terms (in Chinese or any language), video links or BV ids, or uploader links or ids.
  2. Set Videos per search or uploader. This caps what you pay.
  3. Optionally pick the search order and video length, a date limit, or turn on comments, replies and danmaku.
  4. Click Start. Rows appear in the Output tab as they are saved.
  5. Download the results as CSV, Excel, JSON or HTML, or send them to Google Sheets, Zapier, Make or n8n.
  6. To follow uploaders, turn on Only new videos and add a schedule to the saved task.

How much does it cost to scrape Bilibili?

You pay per row saved:

EventPrice
Video saved (all fields above)$0.003 ($3.00 per 1,000)
Uploader profile saved$0.003 ($3.00 per 1,000)
Comment or reply saved$0.001 ($1.00 per 1,000)
Danmaku saved$0.0002 ($0.20 per 1,000)
Unavailable videos, missing uploadersFree

1,000 videos cost $3.00. The latest 100 videos of 10 uploaders with their profiles cost 10 x $0.003 + 1,000 x $0.003 = $3.03. The first 50 comments of 100 videos cost 5,000 x $0.001 = $5, and 1,000 danmaku from each of them 100,000 x $0.0002 = $20. Apify's free plan includes $5 of monthly credit, enough for more than 1,600 videos.

Larger Apify plans pay less automatically: videos and uploaders cost $2.50 per 1,000 on Starter, $2.00 on Scale and $1.50 on Business, comments $0.80, $0.60 and $0.50, and danmaku $0.16, $0.12 and $0.10. Each run also has a start fee of $0.002.

Input

See the Input tab for every option. Three searches, 100 videos each, the newest first, from the last 30 days:

{
"searchTerms": ["原神", "美食", "minecraft"],
"searchOrder": "pubdate",
"maxResultsPerInput": 100,
"newerThan": "30 days"
}

Two uploaders' latest videos with comments, replies and danmaku:

{
"uploaders": ["https://space.bilibili.com/401742377", "546195"],
"maxResultsPerInput": 20,
"includeComments": true,
"includeReplies": true,
"maxCommentsPerVideo": 100,
"includeDanmaku": true
}
  • BV ids are Bilibili's video ids: the BV1... part of a link such as https://www.bilibili.com/video/BV1zd4y1Q7BE/. Older av ids (av386101383) and b23.tv short links work too.
  • Uploader ids (mid) are the numbers in space links: https://space.bilibili.com/401742377.
  • Search order: best match (综合), most views (最多播放), newest (最新发布), most danmaku (最多弹幕) or most favorites (最多收藏).
  • Only videos newer than is passed to Bilibili's search date filter, and reading an uploader stops at the first older video.

Output

You can download the dataset in various formats such as JSON, HTML, CSV or Excel. A video, an uploader, a comment and a danmaku from real runs (long text trimmed):

[
{
"type": "video",
"status": "ok",
"input": "原神",
"bvid": "BV1pTap6UE1w",
"aid": "117353656356865",
"cid": "42306046424",
"url": "https://www.bilibili.com/video/BV1pTap6UE1w/",
"title": "《原神》过场动画-「遗赠」",
"description": "唯有直面死亡才能理解其中的感受,死神也不例外。...",
"category": "手机游戏",
"categoryId": 172,
"publishedAt": "2026-10-10T04:00:00.000Z",
"duration": 450,
"ownerMid": "401742377",
"ownerName": "原神",
"ownerFace": "https://i2.hdslb.com/bfs/face/e63bacc8b9e68f59f401cc41728a99262ba661a3.jpg",
"viewCount": 762568,
"danmakuCount": 1396,
"replyCount": 7433,
"favoriteCount": 11523,
"coinCount": 17052,
"shareCount": 2607,
"likeCount": 88980,
"cover": "https://i1.hdslb.com/bfs/archive/2063b8933f7ab4ad868ceda83d509af4bb92f996.jpg",
"width": 2560,
"height": 1440,
"isOriginal": true,
"isCooperation": false,
"staff": [],
"pagesCount": 4,
"pages": [
{ "cid": "42306046424", "page": 1, "title": "《原神》过场动画-「遗赠」", "duration": 108 },
{ "cid": "42306634166", "page": 2, "title": "日-《原神》过场动画-「遗赠」", "duration": 114 }
],
"tags": ["圣土化", "死之执政", "原神", "miHoYo", "米哈游", "过场动画"],
"searchRank": 1,
"scrapedAt": "2026-10-18T07:43:00.477Z"
},
{
"type": "uploader",
"status": "ok",
"input": "https://space.bilibili.com/546195",
"mid": "546195",
"url": "https://space.bilibili.com/546195",
"name": "老番茄",
"sign": "新浪微博:_老番茄_",
"level": 6,
"followers": 20850826,
"following": 7,
"videoCount": 682,
"likesCount": 196276391,
"face": "https://i0.hdslb.com/bfs/face/bc5ca101313d4db223c395d64779e76eb3482d60.jpg",
"officialTitle": "2025百大UP主、2025年度商业影响力奖UP主、2022年度联合创作奖UP主",
"officialType": "personal",
"scrapedAt": "2026-10-18T07:38:50.189Z"
},
{
"type": "comment",
"id": "121679744688",
"videoBvid": "BV1zd4y1Q7BE",
"videoAid": "386101383",
"parentId": null,
"rootId": null,
"text": "感谢大家支持,感谢特邀嘉宾北子哥。大家别嫌短哦,我们录了好多局的,这是最有效果的一局!...",
"createdAt": "2022-07-20T07:56:17.000Z",
"likeCount": 50249,
"replyCount": 463,
"memberMid": "5970160",
"memberName": "小潮院长",
"memberLevel": 6,
"isPinned": true,
"scrapedAt": "2026-10-18T07:44:26.216Z"
},
{
"type": "danmaku",
"id": "2189970039698933504",
"videoBvid": "BV1zd4y1Q7BE",
"cid": "778227380",
"time": 0.338,
"text": "【每周必看】",
"mode": 1,
"color": "#ffffff",
"fontSize": 25,
"sentAt": "2026-08-31T05:59:32.000Z",
"senderHash": "74fe548f",
"scrapedAt": "2026-10-18T07:44:26.967Z"
}
]

Replies look like comments, with parentId and rootId set to the comment they answer.

Tips for better results

  • Only uploader videos: turn off Save uploader rows. Only search results: leave the other lists empty.
  • Engagement rate: divide likeCount + coinCount + favoriteCount by viewCount; coins and favorites show stronger interest than likes on Bilibili.
  • Danmaku timelines: time is seconds into the part (cid), so you can line danmaku up with moments in the video.
  • Large comment threads: with replies on, replies count toward Comments per video, so raise the limit for popular videos. If Bilibili ever stops serving the full comment list, the run saves the top comments its website shows (3 per video, with their replies) and says so in the status message and the run summary.
  • Uploader lists: Bilibili checks its uploader endpoints harder, so the scraper spaces those requests and retries refusals with a fresh visitor session. A test run still read 60 videos from each of 3 uploaders, with details, in 36 seconds.
  • Proxy: the default connects directly, moves to Apify Proxy datacenter IPs if Bilibili refuses it, and to residential IPs only if those are refused too. The price per row is the same whichever connection is used.

Integrations and API

  • API: start runs and download results from any language. The API tab has ready code in Python, JavaScript and cURL.
  • Python: from apify_client import ApifyClient, then client.actor("stratumics/bilibili-scraper").call(run_input={"searchTerms": ["原神"], "maxResultsPerInput": 100}).
  • JavaScript: import { ApifyClient } from 'apify-client', then client.actor('stratumics/bilibili-scraper').call({ searchTerms: ['原神'], maxResultsPerInput: 100 }).
  • No-code: Zapier, Make, n8n, Google Sheets and Slack from the Integrations tab, for example to add each new video of an uploader to a sheet.
  • AI agents: connect any MCP-capable assistant to Apify's MCP server (mcp.apify.com) and it can call this scraper as a tool to look up Bilibili videos and comments.

FAQ

This scraper reads only public information that Bilibili serves to every visitor without logging in, and it never logs in. Results can still contain personal data: uploader names and pictures, and commenters' names and levels when you turn comments on. Danmaku come with Bilibili's own hash of the sender, not the account. Personal data is protected by China's PIPL, the GDPR in the European Union and other laws around the world, so only collect it when you have a legitimate reason, and consult a lawyer if you are unsure. Also consider Bilibili's terms for your use case.

Do I need a Bilibili account, cookies or a Chinese IP?

No. It runs logged out, with no account or cookies, from Apify's servers outside China.

What are BV ids, av ids and cids?

A BV id (BV1...) is the id in a video link; the av id is the older numeric id of the same video; a cid is the id of one part (分P) of a video, which danmaku belong to. Every video row carries all three.

What are danmaku?

Danmaku (弹幕) are the short comments viewers send at a moment of the video, which fly across the screen at that second. Bilibili keeps a current pool per part (up to a few thousand on popular videos), and the scraper saves that pool in time order.

Why are some videos unavailable?

Bilibili hides some videos from logged-out visitors or from viewers outside some regions, and deleted, private or under-review videos answer with a message such as 稿件不可见 (not visible). Such links come back as free rows with status and message. Search results only list videos Bilibili shows.

Why is the category empty on a few videos?

Bilibili's logged-out video answers give the category id with an empty name. The scraper names it from search results and a built-in table of 99 categories read from Bilibili; a video in a category outside both keeps only categoryId.

Found a problem or need a field?

Open an issue in the Issues tab with the input you used, and we will look at it.

Other tools from Stratum ICS

  • Airbnb Scraper: Get every Airbnb listing in a city or from listing links: price per night, rating, reviews, guests, bedrooms, host and Superhost status.
  • App Store Reviews Scraper: Get Apple App Store reviews with star ratings, titles, text, app versions, helpful votes and developer replies, well past Apple's 500-review limit, for any country, plus app ratings.
  • Facebook Ads Library Scraper: Get ads from the Meta (Facebook) Ad Library by keyword, advertiser page or library link: texts, images, videos, dates, platforms and versions, plus spend for political ads.
  • Facebook Posts Scraper: Get posts from public Facebook pages: text, reactions by type, comments, shares, views and media, plus page details with followers, contacts, rating and creation date.
  • Google Ads Transparency Scraper: Get the ads any advertiser runs on Google Search, YouTube, Shopping, Maps and Play, from the Ads Transparency Center: images, formats, dates, regions and EU reach.
  • Google Maps Reviews Scraper: Get the Google Maps reviews of any place: rating, full text, exact date, photos, owner reply, reviewer details and food or service scores.
  • Google Maps Scraper: Get the businesses on Google Maps for any search and area: name, address, phone, website, rating, review count, opening hours, plus emails and social profiles.
  • Google News Scraper: Get Google News articles with real publisher URLs (not Google redirects), source, date, image, author and optional full text.
  • Google Play Reviews Scraper: Get Google Play reviews with star ratings, text, app versions, thumbs-up counts, developer replies and feature ratings in any language, plus app details with installs and star histogram.
  • Google Trends Scraper: Get Google Trends data as JSON, CSV or Excel: interest over time, interest by region and city, related queries, and trending searches by country.
  • Instagram Scraper: Scrape public Instagram profiles, posts, reels and comments without logging in: followers, bio, posts count, captions, likes, video views, media links, tags and music.
  • LinkedIn Jobs Scraper: Scrape LinkedIn jobs with full descriptions, salary ranges, seniority, job type and applicant counts.
  • Reddit Scraper: Get Reddit posts and full comment threads from subreddits, searches, user profiles and post links: titles, text, scores, flair, media and replies.
  • Telegram Channel Scraper: Get messages from public Telegram channels with views, dates, media, reactions, polls and forwards, plus channel info with exact subscriber counts.
  • Threads Scraper: Scrape Threads profiles, posts, replies and keyword search: followers, bio, post text, likes, replies, reposts, quotes, media and links.
  • TikTok Comments Scraper: Export TikTok comments and replies from any video or photo post: text, date, likes, reply count, commenter, pinned and creator-liked flags, plus video stats.
  • TikTok Scraper: Scrape TikTok profiles and videos: followers, likes, bio, the latest 10 to 12 videos of each profile, and full stats for any video link.
  • Website Contact Scraper: Turn a list of websites into one row per company with verified emails, formatted phone numbers, social profiles (LinkedIn, Facebook, Instagram, X), address and contact page.
  • YouTube Scraper: Get YouTube videos from searches, channels, playlists and links with exact views, likes, comment counts, dates and tags, plus channel profiles and comments.
  • YouTube Transcript Scraper: Get YouTube transcripts and captions as plain text, timed segments, SRT or WebVTT, from video links, whole channels or playlists, in any language YouTube offers.