Social media · Live on Apify

Bilibili Scraper: Videos, Comments and Creators

Get public Bilibili data in clean rows. Search videos, read video stats, collect comments or check creators. No Bilibili account is needed.

About $2.81 for 1,000 rows$0.0028 per row + $0.006 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

typevideo
bvidBV1Lzpr6TELC
aid117437089450751

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: AI in Search keywords. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Scrape public Bilibili data with no login. Search videos by keyword, get full stats for video links, collect up to 2,000 root comments per video, or read creator profiles and their latest videos. Each item is one clean row with views, likes, coins, favorites, danmaku, tags and more. A typical run with 20 rows takes about 5 seconds and costs $0.062 on the Free plan.

Data you get

  • Videos: BV ID, av ID, title, URL, description, cover image, duration, publish time, author name and ID, views, likes, coins, favorites, shares, danmaku count, comment count, tags and category.
  • Comments: comment ID, text, likes, reply count, user name, user ID, user level, created time, pinned flag and the video it belongs to.
  • Creators: user ID, name, profile URL, public bio, level, followers, following, video count, total likes, official title and avatar URL.
  • Status: one free row that lists inputs that were not found, invalid, duplicate or failed, with a reason for each.

Who uses it

China market researchers

See which topics get the most views on Bilibili.

Brand teams

Read what viewers say in comments about your product.

Influencer agencies

Build a creator shortlist with followers and total likes.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Start fee$0.006Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.
Data row$0.0028 (from $0.0024 on paid Apify plans)Charged for each saved video, comment or creator row. The status row is free.

Examples

  • One row: about $0.0088.
  • 1,000 rows: about $2.81.
  • Every day 100 rows, for 30 days: about $8.58 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 1,700 rows.

Prices checked on 24 October 2026. See the current price on Apify.

Questions

Can I get replies to comments?

No. You get root comments and the danmaku count only.

Why do I get fewer search results than I asked for?

Bilibili had fewer results, or it reached its limit of 1,000 results.

Do I need to add my cookies?

No. The tool uses public guest access. Please do not add cookies.

Do I need a Bilibili account or cookies?

No. The Actor uses public guest access. Do not add your cookies.

Are BV and av IDs both supported?

Yes. BV1xx411c7mD, av2 and the full link point to the same video, and the Actor saves and charges it once.

Why did a search return fewer rows than maxItems?

Bilibili had fewer results for that keyword, or it reached its limit of 1,000 results.

Is the data the same as on the website?

Yes, it comes from the same public data. Counters change quickly, so values can differ a little minutes later.

Details

Step by step on Apify
  1. Open Input.
  2. Keep What to scrape as search, Search keywords as AI and Max items as 20.
  3. Click Start.
  4. Open the Videos tab of the Output to see the rows. Open Run summary to check each input.
Use cases
TaskInputKey fieldsNext step
Track a topic on Bilibilisearch, several keywords, pubdatetitle, views, publishedAt, tagsCompare topics by views and dates.
Compare video performancevideo with a list of linksviews, likes, coins, favorites, danmakuRank videos by engagement.
Study audience opinioncomments, hot, maxItems: 1000text, likes, createdAtRun sentiment or keyword analysis.
Research creatorsuser with creator IDsfollowers, videoCount, totalLikes, videosBuild a creator shortlist.
Tips for better results
  • Pick one mode per run: search, videos, comments or creators.
  • BV and av IDs both work; duplicates are counted once.
  • Send comment text to a translation or sentiment tool.
Limits and good to know
  • Field names are this Actor's own (views, likes, danmaku…). They are not a drop-in copy of other Bilibili scrapers' output
  • Bilibili search serves at most 1,000 results per keyword. Some keywords return fewer; the run summary warns about it
  • A creator's public video list can be shorter than videoCount, because Bilibili hides some videos
  • Comments mode collects root comments only. Replies are counted in replyCount but not collected. Danmaku text is not collected
  • Bilibili sometimes refuses requests from cloud IPs (HTTP 412). Creator video lists are refused more often than other pages. The Actor retries on a new proxy session up to 6 times within about one minute and keeps going after a single refused input. Two refused inputs in a row stop the run as a partial SOURCE_ERROR with all saved rows kept
  • The Actor waits 0.5 s between requests to stay polite. Large creator lists and comment runs take longer than search
  • Counters change all the time. Keep fetchedAt with your data
  • Short b23.tv links are not resolved. Open them in a browser and copy the full video link

Troubleshooting

SymptomPossible reasonCheckAction
Run fails with "Invalid input"Missing list for the mode, or a value over a limitThe message in the run logUse an example above and change one field at a time.
NOT_FOUND, no data rowsVideos or creators do not exist or are hiddenThe status rowCheck the IDs in a browser.
duplicate in the status rowThe same video or creator was given twice (BV and av forms count as one)The status rowNothing to do; it was not charged twice.
Partial CHARGE_LIMITYour maximum cost per run was reachedcounts.chargedRows in Run summaryRaise the limit if you need more rows.
Partial TIME_LIMITToo much work for the run timeoutStatus messageRaise the timeout or split the input into several runs.
Partial SOURCE_ERRORBilibili refused or failed repeatedlyhttp.blocked in Run summaryRun again later; keep the default Apify Proxy.
coins or shares are null in searchSearch lists do not carry these countersfullStats is falseSet includeFullStats: true.
Other tabs show empty cellsDataset views cannot filter rows by kindtype columnFilter by type in your export.

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "type": "video",
  "bvid": "BV1Lzpr6TELC",
  "aid": 117437089450751,
  "url": "https://www.bilibili.com/video/BV1Lzpr6TELC",
  "title": "AI自制打针情景短片《母女打针》第二天",
  "description": "视频已做合理化删减",
  "thumbnailUrl": "https://i1.hdslb.com/bfs/archive/07188a8bef3c3146aaa5b3ea2b37186058221df4.jpg",
  "durationSec": 321,
  "publishedAt": "2026-10-14T03:23:59.000Z",
  "authorMid": 113904740,
  "authorName": "西瓜智造BOB",
  "views": 2975,
  "likes": 81,
  "coins": null,
  "favorites": 153,
  "shares": null,
  "danmaku": 4,
  "comments": 27,
  "tags": ["影视剪辑", "娱乐观察局", "AI", "剧情向", "电视剧", "国产", "情景", "医生", "母女", "短片"],
  "category": "小剧场",
  "source": "search",
  "fullStats": false,
  "input": "AI",
  "searchKeyword": "AI",
  "searchRank": 1,
  "fetchedAt": "2026-10-14T13:03:47.027Z"
}

Use it from code

Actor ID: cliqtomedia/bilibili-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/bilibili-scraper").call(run_input={
    "mode": "search",
    "keywords": [
        "AI"
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~bilibili-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "keywords": ["AI"]}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/bilibili-scraper")
result = tool.invoke({"run_input": {"mode": "search", "keywords": ["AI"]}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Input settings (10)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
What to scrape requiredmodestring"search"
Search keywordskeywordsarray["AI"]
Video links or IDsvideoUrlsarray
Creator IDs or space linksuserIdsarray
Max items per keyword, video or creatormaxItemsinteger20
Search sort ordersearchOrderstring"totalrank"
Comment sort ordercommentSortstring"hot"
Add full video stats (coins, shares)includeFullStatsbooleanfalse
Include creator videosincludeUserVideosbooleantrue
ProxyproxyConfigurationobject{"useApifyProxy": true}

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure