B站搜账号下作品集
📝 简介
B站账号作品列表实时查询工具,根据B站UP主的UID实时调用 Redfox 接口获取该UP主发布的视频作品列表,返回实时数据(非缓存/历史数据)。支持游标翻页浏览更多作品。
✨ 功能特性
| 功能模块 | 能力描述 | 核心价值 |
|---|---|---|
| 实时查询 | 输入UID实时获取UP主作品列表 | 获取非缓存的实时数据 |
| 游标翻页 | 支持cursor游标逐页浏览 | 深入浏览UP主更多作品 |
| 数据排序 | 返回结果按播放量降序排列 | 快速定位爆款作品 |
🔑 鉴权
获取 API Key
请前往 红狐hub 获取 API KEY
配置 API Key
方案1: 以 Qoder 为例,将 REDFOX_API_KEY 添加到 ~/.openclaw/openclaw.json 中:
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
方案2: 终端配置
export REDFOX_API_KEY="ak_xxxx..."
🔄 工作流程
Step 1:理解用户意图,提取UID
1. 提取B站UID
- 从用户描述中提取B站UP主的UID(纯数字,如
946974) - 若用户提供了UP主昵称而非UID,告知用户:「B站作品列表查询需要UID(纯数字),请在B站UP主主页URL中找到UID后告诉我,例如 bilibili.com/space/946974 中的 946974」
- 不得在用户未提供UID时擅自猜测并调用脚本
2. 识别翻页参数(用户未指定时使用默认值)
- 游标(
--cursor):默认不传(第一页)- 用户提到"下一页"、"更多" → 传上次返回的 cursor 值
- 首次查询 → 不传 cursor
Step 2:调用作品列表查询脚本
python ".qoder/skills/B站搜账号下作品集/scripts/fetch_bili_user_works.py" "<UID>" [--cursor 翻页游标]
参数说明:
| 参数 | 可选值 | 含义 |
|---|---|---|
| uid | 纯数字字符串 | B站UP主的UID |
--cursor |
游标字符串 | 翻页参数,第一页不传,传上次返回的cursor值 |
脚本以 JSON 格式输出:
| 字段 | 说明 |
|---|---|
user_info |
UP主基础信息(昵称、UID等) |
works |
作品列表(按播放量降序) |
cursor |
下一页游标(空字符串表示无下一页) |
has_next |
是否有下一页(true/false) |
total_count |
本页作品数量 |
total_work_count |
UP主总作品数 |
每条作品字段:
| 字段 | 说明 |
|---|---|
title |
视频标题 |
author |
UP主昵称 |
danmaku_count |
弹幕数 |
comment_count |
评论数 |
collect_count |
收藏数 |
play_count |
播放量 |
work_url |
视频链接(直接可用) |
publish_time |
发布时间(格式化) |
cover_url |
封面图(https协议) |
bv_id |
BV号 |
tags |
视频标签(逗号分隔) |
category |
视频分区名称 |
duration |
视频时长 |
Step 3:判断结果并展示
情况 A:works 数量 > 0(有作品数据)
A1. 展示UP主信息 + 告知查询结果
📊 UP主「昵称」(UID: XXX)共有 total_work_count 部作品,当前展示 N 条(API返回N条),以下是详细数据:
A2. 渲染 Markdown 表格(⚠️ 必须逐条全部展示,严禁截断)
| # | 视频标题 | 播放量 | 弹幕数 | 时长 | 发布时间 |
| --- | -------------------- | ------- | ------ | -------- | ---------- |
| 1 | [标题文字](视频链接) | 105.2w | 1.2w | 15:21:04 | 2026-06-20 |
⚠️ 序号连续规则:
- 第1页序号从1开始,第2页从21开始,第N页从
(N-1)*20+1开始 - 在上下文中记录当前页码,翻页时自动递增
⚠️ 展示纪律(强制执行):
- 每页必须完整渲染
works数组中的全部条目,严禁因篇幅原因截断或省略 - 标准页满20条,最后一页可不足20条,但有多少展示多少
- 表格行数必须与
total_count字段一致,若不一致视为执行错误
数字格式化规则:
< 10000:原始数字(如320)≥ 10000:x.xw格式(如1.2w)
标题规则: [标题](work_url);超过 30 字截断并加 ...
A3. 翻页提示(紧接在表格之后,每次必须输出)
- 若
has_next为 true:
📄 还有更多作品。回复「下一页」继续查看。
- 若
has_next为 false:
📄 已展示全部作品,无更多数据。
⚠️ A1~A3 缺一不可,必须在同一轮输出中连续完成。若缺少 A3,视为执行错误,必须重新补充输出。
情况 B:works 数量 = 0(无作品数据)
😔 抱歉,未查询到UID「XXX」的作品数据。可能原因:1) 该账号暂无公开投稿 2) 账号UID不正确 3) 账号已注销。请核实UID后重试。
Step 4:记录游标和页码(内部逻辑,不展示给用户)
将本次返回的 cursor 值和当前页码记录在上下文中。当用户回复「下一页」时,使用该 cursor 值再次调用脚本获取下一页数据,页码 +1。
- 首次查询:页码 = 1
- 每次翻页:页码 +1
