# Bilibili Creator Videos Scraper - UP主投稿 (B站) (`arjun_code/bilibili-creator-videos-scraper`) Actor

Get a Bilibili creator's public video uploads by UID or space URL. Choose list metadata or detailed metrics with likes, coins, favorites, shares and tags. Export JSON/CSV without login. 获取B站UP主投稿列表，可选点赞、投币、收藏、分享与标签等详情。

- **URL**: https://apify.com/arjun_code/bilibili-creator-videos-scraper.md
- **Developed by:** [Arjun Data](https://apify.com/arjun_code) (community)
- **Categories:** Videos, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.19 / 1,000 video list results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

Turn a Bilibili creator UID or space-page link into a structured video dataset. Choose newest, most viewed or most favorited using Bilibili's native ordering. Start with upload-list metadata, or turn on video details to add available likes, coins, favorites, shares, tags and more. Export JSON/CSV without a Bilibili login.

输入一位 UP 主的 UID 或主页链接，选择 B站原生的最新发布、最多播放或最多收藏排序，获取公开投稿视频。可以先获取列表信息，也可以开启更多视频详情，补充点赞、投币、收藏、分享、标签等数据。无需 B站登录，支持 JSON/CSV 导出。

### Why use this Actor? / 适合什么需求

- **Creator video inventories / UP 主投稿整理**: collect titles, links, covers, publication times and metrics from a known creator, rather than keyword-search results. / 从指定 UP 主的投稿列表整理资料，不混入关键词搜索结果。
- **List or details / 按需选择数据深度**: keep details off for fewer requests, or enable them for additional video metrics and tags. / 先获取列表，或按需补充视频详情，不必额外查询完整 UP 主资料。
- **Content research and repeated checks / 内容研究与定期查看**: export snapshots for your own comparisons, reports or downstream workflows. / 导出数据后用于内容盘点、报告或定期对比；仅新增视频的识别由你的工作流处理。

This Actor accepts one creator per run. It collects metadata, not video files, comment text or individual danmaku messages. Field availability depends on Bilibili's public responses.

每次运行支持一位 UP 主。获取的是视频元数据，不下载视频文件，不采集评论正文或逐条弹幕内容；具体字段以 B站公开返回的数据为准。

### Quick start / 快速开始

1. Enter a numeric creator UID or space-page link. / 填写数字 UID 或 UP 主主页链接。
2. Choose a sort order, start with the 5-video example and leave video details off. / 选择排序，首次使用 5 条视频的示例，并关闭更多视频详情。
3. Run the Actor and open its Dataset to view and export results. / 运行后打开数据集查看和导出结果。

```json
{
  "creator": "https://space.bilibili.com/23947287",
  "maxVideosPerCreator": 5,
  "sortBy": "newest",
  "includeVideoDetails": false
}
```

### Main inputs / 输入参数

Enter one creator, choose the result count and sort order, and optionally request more video details. No advanced setup is needed.

填写一位 UP 主，设置获取数量和排序，再选择是否获取更多视频详情。其余由 Actor 自动处理。

| Input / 参数 | Default / 默认值 | How to use / 怎么填写 |
| --- | --- | --- |
| `creator` | Required; example `23947287` / 必填，表单预填示例 | One UID as a string or creator-page link, for example `"23947287"` or `https://space.bilibili.com/23947287`. Not a nickname, video link or BV ID. Missing input does not start an example lookup. / 填写一个字符串格式的 UID 或 UP 主主页链接，不要填写昵称、视频链接或 BV 号；未填写时不会自动查询示例账号。 |
| `maxVideosPerCreator` | `20` when omitted; first-run example `5` / 省略时为20，首次示例为5 | A whole number without quotes or decimals. `100` selects up to 100 videos; `0` removes the result-count cap. Negative numbers are invalid. / 填写不带引号、没有小数部分的整数；`100` 表示最多 100 条，`0` 表示全部可访问投稿，不支持负数。 |
| `sortBy` | `newest` | `newest`: newest publication first; `mostViewed`: highest view count first; `mostFavorited`: highest favorite count first. Ordering is applied by Bilibili on every page, not locally after collection. / 最新发布、最多播放或最多收藏。每页均由 B站直接排序，不会先抓完再在本地排序。 |
| `includeVideoDetails` | `false` | Use the boolean `true` or `false`, not the strings `"true"` or `"false"`. Off: faster list results. On: also request likes, coins, favorites, shares, tags, uploader avatar and more details, where available; more requests and longer runtime. / 使用不带引号的布尔值 `true` 或 `false`。关闭时更快获取列表；开启后额外请求互动指标、标签、头像等详情，耗时更长，字段以 B站实际返回为准。 |

For a quick first run, use the prefilled 5-video example and leave video details off. If you omit `maxVideosPerCreator` from an API request, the existing default remains 20.

首次使用，建议采用表单预填的 5 条视频，并关闭更多视频详情。API 请求省略 `maxVideosPerCreator` 时，仍按原有默认值 20 条执行。

The limit counts selected unique videos, not guaranteed successful detail results. With a limit of 20, a failed detail request is not replaced with another video beyond that limit. Native pages may contain more items than the remaining limit; those extra items are not saved or enriched.

数量按选中的唯一视频计算，不代表一定能返回同样数量的视频详情。例如设置 20 条，个别详情获取失败时，不会继续抓取第 21 条来补足数量。列表页中超出剩余数量的条目不会保存，也不会额外请求详情。

To collect all accessible uploads, use / 获取全部可访问的公开投稿视频时，可使用：

```json
{
  "creator": "https://space.bilibili.com/23947287",
  "maxVideosPerCreator": 0,
  "sortBy": "newest",
  "includeVideoDetails": false
}
```

Collection stops when the requested limit is reached, the public list ends, the spending limit cannot cover another result, or a list request cannot be recovered. `0` removes only the count limit; it does not bypass the spending limit, run timeout or Bilibili access restrictions. If the run stops early, results already saved to the Dataset remain available. Adjust the timeout in Apify run options to suit the workload.

达到设置数量、公开列表结束、剩余费用上限不足以获取下一条结果，或列表请求未能恢复时，会停止获取。`0` 只是取消数量上限，不能绕过费用上限、运行超时或 B站访问限制，也不保证能获取全部历史视频。即使提前结束，已保存到数据集（Dataset）的结果仍可查看；需要更多运行时间时，可在 Apify 的运行选项中调整超时时间。

Completed-page progress is saved during the run. If collection stops early, use **Actions → Resurrect** on that same run to continue from the next unfinished page with the same sort order. Start a new run if you want to change the sort order. Check the final run summary for completeness rather than relying only on the platform's success status.

运行时会保存已完成分页的进度。如果中途停止，可在同一次运行的 **Actions → Resurrect** 中按原排序恢复，继续获取未完成的分页；想更换排序时，请新建运行。是否获取完整，请以最终运行汇总为准，不要仅看平台是否显示成功。

### Native video sorting / 原生视频排序

`sortBy` orders the creator's uploads on Bilibili before each page is returned. For example, `mostViewed` with a limit of 20 collects that creator's 20 most-viewed accessible uploads, without first collecting the entire history. Set the limit to `0` to keep collecting all accessible uploads in the selected order.

`sortBy` 让 B站在返回每一页之前，直接对该 UP 主的投稿排序。例如选择 `mostViewed` 并设置最多 20 条，会获取该 UP 主可访问投稿中播放量最高的前 20 条，不必先获取全部历史视频。数量设为 `0` 时，则按所选顺序持续获取全部可访问投稿。

```json
{
  "creator": "https://space.bilibili.com/438926406",
  "maxVideosPerCreator": 20,
  "sortBy": "mostFavorited",
  "includeVideoDetails": false
}
```

Most favorited orders uploaded videos by their favorite counts; it does not fetch the creator's saved favorite lists. Sorting alone does not require video-detail requests. Enable `includeVideoDetails` if you also need `favoriteCount` in each result. Counts change over time, so ranks can shift during a long run.

最多收藏按投稿视频被收藏的次数排序，不是获取 UP 主的收藏夹。排序本身无需逐条请求视频详情；如果还需要每条结果中的 `favoriteCount`，请开启 `includeVideoDetails`。计数会随时间变化，长时间运行中的排名也可能发生变动。

### List or video details? / 列表信息与视频详情怎么选

Leave `includeVideoDetails=false` for upload-list metadata. Turn it on when you need additional video metrics, tags or uploader avatars. Details require more requests and take longer; they do not add a separate creator-profile lookup.

只需整理投稿目录时，保持 `includeVideoDetails=false`。需要更多互动指标、标签或 UP 主头像时再开启。详情模式请求更多、耗时更长，但不会另外查询完整 UP 主资料。

| Data / 数据 | List / 列表 | Details / 详情 |
| --- | --- | --- |
| Video IDs, links, titles, descriptions and covers / 视频标识、链接、标题、描述与封面 | When available / 以实际返回为准 | When available / 以实际返回为准 |
| Duration, publication time, views, comment count and danmaku count / 时长、发布时间、播放量、评论数与弹幕数 | When available / 以实际返回为准 | When available / 以实际返回为准 |
| Basic publisher UID, name and link / 发布者基本 UID、名称与主页链接 | When available / 以实际返回为准 | When available / 以实际返回为准 |
| Likes, coins, favorites, shares and tags / 点赞、投币、收藏、分享与标签 | Not requested / 不额外请求 | When available / 以实际返回为准 |
| Uploader avatar, CID, part information, dimensions, rights and collaboration staff / 头像、CID、分 P 信息、尺寸、权限与联合投稿成员 | Not requested / 不额外请求 | When available / 以实际返回为准 |

Collection information and category fields are included when supplied. Collection-wide totals are not presented as an individual video's metrics. Neither mode returns a full creator profile or calculated creator scores.

合集、分类等字段在有数据时返回，不会把合集总计数当作单个视频指标。两种模式都不会返回完整 UP 主资料或计算生成的创作者评分。

### View and export results / 查看与导出结果

Open the run's **Output → Creator videos / UP主投稿**. Switch views to see different columns of the same Dataset:

打开运行页面的 **Output → Creator videos / UP主投稿**，可切换视图查看同一数据集的不同字段：

| View / 视图 | What you see / 展示内容 |
| --- | --- |
| **Video list / 投稿列表** (default / 默认) | Position, cover preview, title, clickable video link, publisher, publication time, duration, views, comments and danmaku. / 顺序、封面预览、标题、可点击视频链接、发布者、发布时间、时长、播放量、评论数和弹幕数。 |
| **Engagement / 互动数据** | Views, likes, coins, favorites, shares, comments, danmaku and tags. Additional metrics and tags require `includeVideoDetails=true`. / 播放、点赞、投币、收藏、分享、评论、弹幕与标签；更多互动指标和标签需开启视频详情。 |
| **Video metadata / 视频资料** | Identifiers, description, publisher details, categories, part information, collection, collaborators and available native flags. / 视频标识、简介、发布者资料、分区、分P、合集、联合投稿成员与可用原生标记。 |

Views change the displayed columns, not the collected records or their native sort order. Nested objects remain together rather than generating duplicate video rows. Use the Dataset's JSON view or download JSON without a field-limited view to inspect every stored field. CSV and Excel are also available through Apify's export options.

视图只调整展示列，不改变已采集数据或原生排序。嵌套对象保留在原记录中，不展开为重复视频行。需要查看全部已保存字段时，可切换到数据集的 JSON 展示，或导出未按视图限制字段的 JSON；也可使用 Apify 导出选项下载 CSV、Excel。

The **Status / 采集状态** and **Notice / 提示** columns show any saved incomplete-collection notice; these fields are not added to normal video records. Blank detail metrics in list-only mode mean they were not requested, not that the count is zero. A status record is not a video.

如存在已保存的采集未完成提示，表格的 **Status / 采集状态** 与 **Notice / 提示** 列会显示原因；正常视频记录不会额外添加这些字段。仅获取列表时，详情指标为空表示未请求，不代表计数为 0。状态提示不属于视频结果。

### Output fields / 主要返回字段

Both modes save one `recordType=video` row per unique video, using consistent names for shared fields. Details mode does not add a duplicate list row. Missing list fields are omitted rather than filled with placeholder values. Some optional detail fields may be null or empty.

每个唯一视频保存一条 `recordType=video` 记录，共用字段名称一致。详情模式不会再输出一份重复的列表记录。列表中未提供的字段不会用占位值补齐；详情中的部分可选字段可能为空。

| Fields / 字段 | Meaning / 含义 |
| --- | --- |
| `bvid`, `aid`, `url` | Video identifiers and canonical video link / 视频标识与标准视频链接 |
| `title`, `description`, `thumbnailUrl` | Video title, description and cover / 标题、描述与封面 |
| `durationSeconds`, `durationText` | Duration in seconds and formatted duration / 秒数与易读时长 |
| `publishTimestamp`, `publishedAt` | Publication timestamp and UTC date-time / 发布时间戳与 UTC 标准时间 |
| `viewCount`, `commentCount`, `danmakuCount` | Counts, not comment or danmaku text / 播放、评论与弹幕计数，不是正文内容 |
| `authorMid`, `authorName`, `authorUrl` | The actual publisher, which can differ for co-created videos / 实际发布者，联合投稿中可能与输入 UP 主不同 |
| `likeCount`, `coinCount`, `favoriteCount`, `shareCount`, `tags` | Additional video data requested when details are on / 开启详情后请求的更多视频指标与标签 |
| `authorAvatarUrl`, `partCount`, `selectedPart`, `staff` | Optional uploader avatar, part information and collaboration members in details mode / 详情模式中可用的头像、分 P 信息与联合投稿成员 |
| `sourceRank` | Position in the creator's upload list under the selected sort order, not a keyword-search rank / 在所选排序下的 UP 主投稿列表中的位置，不是关键词搜索排名 |
| `scrapedAt` | Time this record was collected / 本条记录的采集时间 |

### Real output example / 真实结果示例

Excerpt from a saved cloud list result collected on October 28, 2026. Additional fields are omitted here for readability; live counters change over time.

以下节选自 2026 年 10 月 28 日保存的云端列表结果，为便于阅读省略了其他字段；实时计数会随时间变化。

```json
{
  "recordType": "video",
  "bvid": "BV1Vbnn6iEfG",
  "url": "https://www.bilibili.com/video/BV1Vbnn6iEfG",
  "title": "法国影响力最大的八卦是什么？【神奇组织56】",
  "durationSeconds": 2369,
  "publishedAt": "2026-10-20T03:00:00Z",
  "viewCount": 2876617,
  "commentCount": 6452,
  "danmakuCount": 17109,
  "authorMid": 23947287,
  "authorName": "小约翰可汗",
  "sourceRank": 1
}
```

### Status notices / 参数、空列表与采集提示

Handled input errors, empty public upload lists and lookup problems finish with an Apify run status of **Succeeded**. This means processing finished, not that every requested video was collected. The Dataset and the `OUTPUT` run summary show the actual outcome. Normal video records do not receive these status fields.

已处理的参数错误、空投稿列表和采集问题会以 **Succeeded（执行成功）** 结束运行。这表示处理流程已经结束，不代表一定获取到了视频或全部视频。请查看数据集和 `OUTPUT` 运行汇总中的实际结果；正常视频记录不会额外添加这些状态字段。

| Dataset `status` | Meaning / 含义 |
| --- | --- |
| `invalidInput` | A required value or parameter combination needs correction; no new video requests were made. / 必填内容或参数组合需要修正，没有发起新的视频请求。 |
| `noVideos` | Bilibili returned an empty public upload list. The creator may have no public uploads, or the list may not be visible. / B站返回了空的公开投稿列表，可能没有公开投稿，或列表不可见。 |
| `notFound` | Bilibili reported that the requested public creator could not be found. / B站明确返回找不到该公开账号。 |
| `blocked` | Bilibili temporarily restricted the request; this is not treated as an empty upload list. / B站暂时限制访问，不会误报为“没有视频”。 |
| `unavailable` | The requested data could not be retrieved at the moment; `errorCode` and `message` explain the issue. / 暂时无法获取数据，原因见 `errorCode` 和 `message`。 |
| `partial` / `incomplete` | The requested scope did not finish. Any saved videos remain available. / 请求范围未完成，已保存的视频仍可查看。 |
| `chargeLimitReached` | The remaining run budget cannot cover another result. / 剩余预算不足以获取下一条结果。 |

Status notices use `recordType=proofStatus` and are **not charged as video results**. A start fee may still apply to a started run. For example, an empty-list notice has this structure (illustrative):

状态提示使用 `recordType=proofStatus`，**不收视频结果费**；已启动的运行仍可能收启动费。空列表提示的结构如下（示意）：

```json
{
  "recordType": "proofStatus",
  "status": "noVideos",
  "inputValue": "https://space.bilibili.com/123456789",
  "creatorUid": 123456789,
  "errorCode": "NO_PUBLIC_VIDEOS",
  "message": "No publicly accessible uploaded videos were returned for this creator. The account may have no public uploads, or its upload list may not be visible. No video-result fee was charged."
}
```

Apify validates JSON syntax, field types and dropdown choices before starting a run. These platform-level rejections have friendly input messages but do not create a run or Dataset. Platform-enforced timeouts, out-of-memory termination and manual cancellation cannot be converted into successful runs by the Actor; a final notice may not be written in those cases.

Apify 会在启动前检查 JSON 格式、字段类型和下拉选项，校验不通过时会显示参数提示，但不会创建运行或数据集。平台强制超时、内存不足或手动中止，也不能由 Actor 改为成功状态，且可能来不及写入最后的提示记录。

### Pricing / 收费说明

Pay per saved video result. Choose list mode for an upload inventory, or details mode for additional video data. Details mode replaces the list fee; the two result fees are never added together for one video.

按成功保存的视频结果收费。整理投稿目录时选择列表模式，需要更多视频数据时选择详情模式。同一条视频只收对应模式的一次结果费，不会叠加列表费和详情费。

| Apify discount tier / 优惠档位 | List / 列表，每 1,000 条 | Details / 详情，每 1,000 条 |
| --- | ---: | ---: |
| FREE | $1.49 | $2.99 |
| BRONZE | $1.39 | $2.79 |
| SILVER | $1.29 | $2.59 |
| GOLD, PLATINUM, DIAMOND | $1.19 | $2.39 |

- **Actor Start:** $0.00005 per run at this Actor's 512 MB memory setting. This platform-managed fee can apply even when no video results are saved. / \*\*启动费：\*\*本 Actor 使用 512 MB 内存，每次运行 $0.00005；即使没有保存视频结果，也可能产生启动费。
- **No result fee** for failed video requests, empty upload lists or status notices. Normal records with unavailable optional fields remain video results. / 失败的视频请求、空投稿列表和状态提示不收结果费；部分可选字段缺失的正常视频记录仍属于视频结果。
- No additional charge for pagination, sorting, retries or individual fields. Platform usage is included, not charged separately to the user. / 分页、排序、重试及单独字段不额外收费，平台资源费用已包含，不再向用户单独收取。
- Set a maximum run charge in Apify's run options. The minimum selectable spending ceiling is $0.01; this is **not a minimum charge**. The Actor stops requesting further videos when the remaining budget cannot cover another result. / 可在运行选项中设置费用上限，最低可设 $0.01；这是**预算上限的最低设置值，不是最低消费**。剩余预算不足以获取下一条结果时，Actor 会停止继续请求视频。

For example, 5 list results at the FREE-tier rate cost $0.00750 including one start event; 5 detail results cost $0.01500. Your applicable tier and current prices are shown in Apify's pricing panel.

例如，按 FREE 档价格计算，5 条列表结果加一次启动费共 $0.00750；5 条详情结果共 $0.01500。实际适用档位和当前价格以 Apify 的价格面板为准。

### FAQ / 常见问题

#### Can I enter a nickname, keywords or a BV ID? / 能输入昵称、关键词或 BV 号吗？

No. This Actor starts with one creator UID or space-page link. Use Bilibili Search Scraper for keyword discovery, or Bilibili Details Scraper for known video IDs and full creator profiles.

不能。本 Actor 从一位 UP 主的 UID 或主页链接开始。关键词查找使用搜索 Actor；已知视频 ID 或需要完整 UP 主资料时，使用详情 Actor。

#### Does 0 guarantee the entire video history? / 填写 0 能保证拿到全部历史视频吗？

No. It removes the count limit and continues through accessible public uploads until the list ends or the run cannot continue. Deleted, private or otherwise unavailable videos are not guaranteed. The run timeout still applies.

不能保证。`0` 只是取消数量上限，持续获取可访问的公开投稿，直到列表结束或运行无法继续。删除、私密或其他不可访问视频不保证获取，运行超时限制仍然有效。

#### Why can a video name another publisher? / 为什么个别视频的发布者不是输入的 UP 主？

A creator's upload list can contain co-created videos published by another account. The actual publisher is kept in `authorMid` and `authorName`; available collaboration information is returned in `staff` when details are enabled.

投稿列表可能包含由其他账号发布的联合投稿。`authorMid` 和 `authorName` 保留真实发布者；开启详情后，`staff` 返回可用的联合投稿成员信息。

#### What happens if collection stops early? / 提前结束时，已获取的数据怎么办？

Completed records remain in the Dataset. Handled collection errors add a non-video status notice with the reason; individual detail failures are also recorded in the run summary named `OUTPUT`. Handled outcomes finish successfully, but this does not guarantee all requested video details were saved. If Apify stops the run at its timeout, a final summary may not be written.

已完成的记录会保留在数据集中。已处理的采集问题会附带一条非视频状态提示，说明原因；逐条详情的失败信息也可在 `OUTPUT` 运行汇总中查看。这些情况会成功结束运行，但不代表所选视频详情一定全部保存；如果平台强制超时，最终汇总可能来不及写入。

When importing video rows into another tool, select records where `recordType` is `video`.

导入其他工具时，可筛选 `recordType=video` 的记录。

#### Can I schedule repeated checks? / 可以定时获取吗？

Use an Apify schedule or your own workflow to run the Actor repeatedly. Each run is a snapshot; this Actor does not keep an only-new-video history between runs. Compare or deduplicate by `bvid` in your workflow.

可通过 Apify 定时任务或自己的工作流重复运行。每次返回一次数据快照，本 Actor 不会跨运行保存“仅获取新增视频”的历史状态；可在工作流中按 `bvid` 比对或去重。

### Related Actors / 相关工具

- [Bilibili Search Scraper](https://apify.com/arjun_code/bilibili-search-scraper): discover videos and creators by keyword. / 按关键词搜索视频和 UP 主。
- [Bilibili Details Scraper](https://apify.com/arjun_code/bilibili-details-scraper): fetch known video details or full UP profiles. / 获取已知视频详情或完整 UP 主资料。

### Support and data use / 支持与数据使用

For help, report the run URL, input and affected video IDs through the Actor's Issues tab. Do not include API tokens or other credentials.

需要帮助时，请通过 Actor 的 Issues 页面提供运行链接、输入参数及相关视频 ID，不要提交 API Token 或其他凭据。

This is an independent tool, not an official Bilibili service. Use public data in accordance with applicable terms, laws and the rights of content creators. The Actor does not bypass private or login-only access.

本工具不是 B站官方服务。请遵守适用条款、法律及内容创作者的权利，合理使用公开数据。本工具不提供绕过私密或登录限制的访问。

# Actor input Schema

## `creator` (type: `string`):

Enter one creator's numeric UID or space-page link, for example 23947287 or https://space.bilibili.com/23947287. One creator per run. Use the UID, not a nickname, video link or BV ID.

中文：填写一个 UP 主的数字 UID 或主页链接，例如 23947287 或 https://space.bilibili.com/23947287。每次运行填写一位 UP 主；不要填写昵称、视频链接或 BV 号。

## `maxVideosPerCreator` (type: `integer`):

The first-run example prefills 5 videos. If this field is omitted from an API request, the default remains 20. Enter 100 for up to 100 videos, or 0 to keep collecting all accessible public uploads in the chosen sort order. The limit counts selected unique videos, not guaranteed successful detail results. Timeouts or access restrictions may stop the run early; saved results remain available.

中文：首次示例预填 5 条视频；API 请求省略此参数时，仍默认获取 20 条。填写 100 表示最多 100 条；填写 0 表示按所选排序持续获取全部可访问的公开投稿。数量按选中的唯一视频计算，详情失败时结果可能少于设置值。运行超时或访问受限可能提前结束，已保存的结果仍可查看。

## `sortBy` (type: `string`):

Choose Bilibili's native ordering: newest publication, most views, or most favorites first. Every page is requested in this order; results are not collected first and sorted locally. With a limit of 20, this returns the first 20 videos in the selected order; 0 keeps collecting all accessible uploads. Most favorited means how often each uploaded video was favorited, not the creator's favorite lists. Sorting does not require video details, but favoriteCount is available only when video details are enabled.

中文：选择 B站原生排序：最新发布、最多播放或最多收藏。每一页都直接按所选顺序请求，不会先抓完再在本地排序。数量设为 20 时，获取该排序的前 20 条；设为 0 时，持续获取全部可访问投稿。最多收藏按投稿视频被收藏的次数排序，不是获取 UP 主的收藏夹。排序本身无需开启视频详情；如需返回 favoriteCount，请开启视频详情。

## `includeVideoDetails` (type: `boolean`):

Off (default): faster; collect titles, links, covers, publication times, duration, views, comments and danmaku where available, at the list-result price. On: request additional likes, coins, favorites, shares, tags, uploader avatar and more video details, at the detail-result price instead of the list price. No double result fee. Details take more requests and time. Neither mode separately requests the full creator profile. Some fields may be unavailable from Bilibili. See Pricing for your applicable rate.

中文：关闭（默认）：更快获取标题、链接、封面、发布时间、时长、播放量、评论数和弹幕数等基础信息，按列表结果价格收费。开启：额外请求点赞、投币、收藏、分享、标签、UP 主头像等更多视频详情，改按详情结果价格收费，不会叠加列表费。开启后请求更多、耗时更长。两种模式都不会单独查询完整 UP 主资料，字段以 B站实际返回为准。具体单价请查看价格面板。

## Actor input object example

```json
{
  "creator": "23947287",
  "maxVideosPerCreator": 5,
  "sortBy": "newest",
  "includeVideoDetails": false
}
```

# Actor output Schema

## `results` (type: `string`):

Video list, engagement and metadata views of the same Dataset. Input issues, empty uploads and lookup notices remain visible without a video-result fee. 通过投稿列表、互动数据和视频资料视图查看同一数据集；参数问题、空投稿及采集提示也会展示，不收视频结果费。

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "creator": "23947287",
    "maxVideosPerCreator": 5,
    "sortBy": "newest"
};

// Run the Actor and wait for it to finish
const run = await client.actor("arjun_code/bilibili-creator-videos-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "creator": "23947287",
    "maxVideosPerCreator": 5,
    "sortBy": "newest",
}

# Run the Actor and wait for it to finish
run = client.actor("arjun_code/bilibili-creator-videos-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "creator": "23947287",
  "maxVideosPerCreator": 5,
  "sortBy": "newest"
}' |
apify call arjun_code/bilibili-creator-videos-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,arjun_code/bilibili-creator-videos-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/aj9f3aeFrDereH7qg/builds/qcvjSfbPHe8DDDXAQ/openapi.json
