Bilibili Video Scraper: Search & Channel Videos avatar

Bilibili Video Scraper: Search & Channel Videos

Pricing

from $1.05 / 1,000 videos

Go to Apify Store
Bilibili Video Scraper: Search & Channel Videos

Bilibili Video Scraper: Search & Channel Videos

Bilibili videos from searches or whole channels, each with its full detail page's data. $1.50 per 1,000 videos. Views, likes, coins, saves, parts.

Pricing

from $1.05 / 1,000 videos

Rating

0.0

(0)

Developer

Luzi

Luzi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

Get Bilibili videos from searches or from whole channels, read to the channel's last upload, each with what its video page shows: views, likes, coins, saves, shares, comments and danmaku, chart ranks, every part, the uploader, and co-creators and the collection when it has them. No Bilibili account, login or cookies needed.

Tested daily. Latest checks: 20 of 20 videos for one search in 37 seconds; 400 of 400 from a search and a channel (200 each) in 14 minutes.

What does this Actor do?

You give it searches (the words you would type in Bilibili's search box), Bilibili search links, or channels. For a search it reads the results page after page, in Bilibili's order; for a channel it reads every video the channel uploaded, newest first. It then reads each video and saves one row per video until it reaches your limit or the end of the list.

Each row comes with:

  • the video's ids (BV… and the older av number), link, title, full description, cover, publish and upload dates, length and its place in the list (1 = the top result or the newest upload)
  • its numbers: views, likes, coins, saves, shares, comments, danmaku (the comments shown on the video) and dislikes, plus its rank on Bilibili's charts, and honors such as "weekly must-watch" when it has any
  • for a search result, its category name and tags (a channel's videos carry the category's number only)
  • whether it is original or a repost, members-only, a story, or part of a paid collection, and its rights (download, reprint, autoplay …)
  • every part of a multi-part video: title, length, size and first frame
  • when Bilibili shows them: the notice under the video (such as "contains AI-generated content"), the uploader's post that came with it and its subtitle languages
  • the uploader (id, name, picture, link) and, for a joint video, every co-creator with their role and followers
  • for a video in a collection (合集): the collection, with its totals and the list of its videos
  • the search or channel it came from, and for a channel its count of videos

Why use it?

  • Whole channels. A channel is read to its last upload, and the run's status compares what it read with the count Bilibili gives for the channel (that count includes deleted and hidden videos, which are skipped).
  • Everything the video page shows. Coins, saves, shares, danmaku, chart ranks, parts, and honors, co-creators and collections where a video has them, at no extra cost.
  • Bilibili's own sort and length filters for searches, or paste a search link with the ones you already picked.
  • Use the data anywhere. Download as JSON, CSV or Excel, or send it to your own tools through Apify's API and integrations.

How to use it

  1. Type one or more searches into Searches, or paste channel or search links into Channel or search links.
  2. Optionally, set Max videos per search or channel, Sort by and Length.
  3. Click Start. When the run ends, open the Output tab to view the videos or download them.

Run it with no input to see a sample: up to 20 videos for "minecraft", charged as usual.

Input

FieldWhat it doesDefault
Searches (searchQueries)Words to search for, one search each—
Channel or search links (startUrls)space.bilibili.com/<id> channel links or ids, and Bilibili search links—
Max videos per search or channel (maxVideos)Stop each search or channel after this many videos (1 to 5,000)50
Sort by (sortBy)totalrank (best match), click (most played), pubdate (newest), dm, stowtotalrank
Length (duration)any, under10, 10to30, 30to60 or over60 (minutes)any

Give at least one search or one link. Example input:

{
"searchQueries": ["原神", "minecraft"],
"startUrls": ["https://space.bilibili.com/2"],
"maxVideos": 200,
"sortBy": "pubdate"
}

Output

One row per video. An example, with made-up values:

{
"bvid": "BV1xx411c7mD",
"aid": 170001,
"url": "https://www.bilibili.com/video/BV1xx411c7mD",
"title": "A video title",
"description": "The whole description …",
"description_segments": [{ "text": "The whole description …", "type": 1, "biz_id": 0 }],
"cover_url": "http://i0.hdslb.com/bfs/archive/….jpg",
"published_at": "2026-10-01T12:00:00.000Z",
"uploaded_at": "2026-10-01T11:40:00.000Z",
"duration_seconds": 754,
"part_count": 1,
"parts": [
{
"cid": 279786,
"page": 1,
"title": "Part one",
"duration_seconds": 754,
"width": 1920,
"height": 1080,
"first_frame_url": "http://i0.hdslb.com/bfs/storyff/….jpg",
"uploaded_at": "2026-10-01T11:40:00.000Z",
"source": "vupload",
"external_id": null,
"external_link": null,
"asr_language": null
}
],
"category": "Gaming",
"category_id": 17,
"category_id_v2": 2001,
"tags": ["minecraft", "survival"],
"is_original": true,
"copyright": 1,
"state": 0,
"owner_mid": 2,
"owner_name": "An uploader",
"owner_avatar_url": "https://i0.hdslb.com/bfs/face/….jpg",
"owner_url": "https://space.bilibili.com/2",
"staff": [],
"view_count": 123456,
"like_count": 7890,
"coin_count": 1234,
"favorite_count": 2345,
"share_count": 345,
"comment_count": 456,
"danmaku_count": 567,
"dislike_count": 0,
"vt": 0,
"current_rank": 0,
"highest_rank": 0,
"honors": [],
"notice": null,
"notice_type": 0,
"notice_link": null,
"dynamic_text": null,
"cid": 279786,
"width": 1920,
"height": 1080,
"rotate": 0,
"subtitles": [],
"subtitle_submit_open": false,
"rights": { "download": true, "no_reprint": true, "autoplay": true, "pay": false },
"is_members_only": false,
"is_members_preview": false,
"is_paid_collection": false,
"is_story": false,
"premiere": null,
"mission_id": null,
"collection": null,
"position": 1,
"source": "search",
"search_keyword": "minecraft",
"search_total": 1000,
"channel_mid": null,
"channel_total": null,
"source_url": "https://search.bilibili.com/video?keyword=minecraft"
}
FieldWhat it holds
bvidThe video's id (BV…)
aidIts older number id (av…)
urlA link to the video
titleThe title
descriptionThe whole description
description_segmentsThe description in parts: text, and the people it mentions (type 2, their id in biz_id)
cover_urlThe cover picture
published_atWhen it was published (ISO date and time)
uploaded_atWhen it was uploaded
duration_secondsIts length in seconds, all parts together
part_countHow many parts it has
partsEach part: id, number, title, length, size, first frame, upload date, source
categoryIts category's name (search results only)
category_idIts category's number
category_id_v2Its category's number in Bilibili's newer list
tagsIts tags (search results only; empty for channel videos)
is_originalWhether it is the uploader's own work rather than a repost
copyright1 = original, 2 = repost
stateBilibili's state for it (0 = open)
owner_midThe uploader's id
owner_nameThe uploader's name
owner_avatar_urlThe uploader's picture
owner_urlA link to the uploader's channel
staffFor a joint video: every co-creator (id, name, role, picture, followers)
view_countViews
like_countLikes
coin_countCoins given
favorite_countSaves (favorites)
share_countShares
comment_countComments
danmaku_countDanmaku (comments shown on the video)
dislike_countDislikes (Bilibili shows 0 for most videos)
vtBilibili's vt count, as given
current_rankIts place on Bilibili's chart now (0 = not on it)
highest_rankThe best place it ever reached (0 = never on it)
honorsHonors such as "weekly must-watch" (type, text)
noticeThe notice Bilibili shows under the video, such as "contains AI-generated content"
notice_typeThat notice's type
notice_linkThat notice's link, when it has one
dynamic_textThe uploader's post that came with the video
cidThe first part's id
width, heightThe video's size
rotate1 when the video is turned on its side
subtitlesIts subtitle languages (id, language code and name, whether AI-made)
subtitle_submit_openWhether viewers may add subtitles
rightsIts rights as yes/no: download, reprint, autoplay, paid, interactive (is_stein_gate) …
is_members_onlyWhether only the uploader's paying members may watch
is_members_previewWhether non-members see a preview
is_paid_collectionWhether it is part of a paid collection
is_storyWhether it is a vertical "story" video
premiereIts premiere, when it has one
mission_idThe event it was entered in, when it was
collectionThe collection (合集) it belongs to: id, title, cover, intro, totals and the list of its videos
positionIts place in the search's results or the channel's list, 1 = the first
sourcesearch or channel
search_keywordThe search it came from
search_totalHow many results Bilibili gives for that search (at most 1,000)
channel_midThe channel it came from
channel_totalThat channel's count of videos
source_urlThe search or channel link

Not included: comments, danmaku text, subtitles' text, the video file and a channel video's tags.

How much does it cost?

No surcharges and no paid options; an item that fails is not charged.

You pay for what you get:

  • $1.50 per 1,000 videos ($0.0015 a video). Each video is charged once per run.
  • No start fee, and nothing per search or channel.

So 1,000 videos cost $1.50. If you set a maximum cost for a run, the Actor stops when it reaches it and keeps every video saved so far.

How long does a run take?

About 40 seconds for 20 videos, then about 2 seconds a video: 400 videos took 14 minutes. A run's default time limit (1 hour) holds about 1,700 videos; for more, raise Timeout under the run's options.

Good to know

  • A search ends at 1,000 videos. Bilibili shows at most 50 pages of 20 results for a search, so a search ends there even with a higher maximum. Narrow it with Length or several searches to get more.
  • A channel is read newest first, to its last upload or your maximum.
  • A video found by two searches is saved and charged once, under the search that reached it first.
  • A pasted search link keeps its own sort and length, which win over the fields above it.
  • Check your links first. A link that is not a Bilibili channel or search link (a video page, for example) stops the run before anything is read, and the message names it.
  • One search or channel that cannot be read does not stop the run. The others carry on, and the run's status names the ones that could not be read.
  • A deleted, hidden or region-locked video is skipped and not charged, and so is a video Bilibili still refuses after a few tries.

More Actors from us

Use it from an AI agent or the API

One call starts a run and returns its items (Apify waits up to 300 seconds; for a longer run, start it with POST /v2/acts/…/runs and read its dataset):

POST https://api.apify.com/v2/acts/luzivanlt~bilibili-videos-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>

With the sample input as its JSON body:

{
"searchQueries": ["minecraft"],
"maxVideos": 20,
"sortBy": "totalrank",
"duration": "any"
}

Its inputs, in the order of the input form:

InputWhat it takesDefault
searchQueries (Searches)Words to search Bilibili for, one search per line, as you would type them in Bilibili's search box (Chinese or any other language), up to 100 characters each.—
startUrls (Channel or search links)Bilibili channel links (https://space.bilibili.com/\<id>, any of its tabs) or bare channel ids for every video a channel uploaded, newest first; and Bilibili search links (https://search.bilibili.com/video?keyword=…), each keeping its own sort and length.—
maxVideos (Max videos per search or channel)Stop each search or channel after this many videos.50
sortBy (Sort by)The order Bilibili lists a search's videos in: best match, most played, newest, most comments on screen (danmaku) or most saved."totalrank"
duration (Length)Keep only videos of this length: any, under 10 minutes, 10–30 minutes, 30–60 minutes or over 60 minutes."any"

Apify's MCP server, https://mcp.apify.com, lists it as luzivanlt/bilibili-videos-scraper. To give an AI agent this Actor as a tool, add the server to the agent's MCP config:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=luzivanlt/bilibili-videos-scraper"
}
}
}

The client signs in with OAuth, or add "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }.

Charged per video delivered; the sample input above costs at most $0.01.

FAQ

Do I need a Bilibili account or cookies? No. The Actor reads what anyone can see on Bilibili without logging in.

Can I search in Chinese? Yes. Type the words as you would on Bilibili; any language works.

Can I run it from my own code, on a schedule, or with other apps? Yes. Like any Apify Actor, you can start it through the Apify API, run it on a schedule, and connect it to other apps with Apify's integrations and webhooks.

This Actor reads only what anyone can see on Bilibili without logging in. Check Bilibili's terms and the laws that apply to you before you use the data, and only collect personal data when you have a legitimate reason to. If you are unsure, ask a lawyer.

Support

Found a problem or missing a feature? Open an issue on the Issues tab and include the run's link.


This Actor is not affiliated with, endorsed by or sponsored by Bilibili.