合集管理

关于用户空间的合集及视频列表参见 合集和视频列表信息

获取合集列表

https://member.bilibili.com/x2/creative/web/seasons

请求方式: GET

认证方式: Cookie (SESSDATA)

URL参数:

参数名类型内容必要性备注
pnnum页码必要默认为 1
psnum每页数量必要默认为 30
orderstr排序方式不必要创建时间: ctime
修改时间: mtime
sortstr排序方式不必要创建时间: asc
修改时间: desc
draftnum1不必要作用尚不明确

JSON回复:

字段类型内容备注
codenum返回值0:成功
messagestr错误信息
ttlnum1
dataobj信息本体

data对象:

字段类型内容备注
seasonsarr合集列表
tipobj内容 title url 均为空
totalnum合集总数
play_typenum1作用尚不明确

seasons数组中的对象:

字段类型内容备注
seasonobj合集信息
coursenull
checkinobj审核信息?
seasonStatobj合集统计信息
sectionsobj小节列表
part_episodesarr合集视频列表

seasons数组中的对象中的season对象:

字段类型内容备注
idnum合集 ID
titlestr合集标题
descstr合集描述
coverstr合集封面 URL
isEndnum是否已完结?0: 未完结
midnum合集作者 ID
isActnum是否为活动合集?0: 否
is_paynum是否付费?0: 否
statenum合集状态?0: 正常显示
-6: 正在审核
partStatenum合集分段状态?0
signStatenum合集签名状态?0
rejectReasonstr合集拒绝原因?
ctimenum创建时间
mtimenum修改时间
no_sectionnum是否设小节1: 不设小节
forbidnum合集是否禁止?0: 否
protocol_idstr
ep_numnum0
season_pricenum合集价格?0: 免费
is_openednum是否公开?1: 公开
has_charging_paynum是否充电付费?0: 否

seasons数组中的对象中的checkin对象:

字段类型内容备注
statusnum状态?0: 正常显示
status_reasonstr状态原因?
season_statusnum合集审核状态?1: 审核通过

seasons数组中的对象中的seasonStat对象:

字段类型内容备注
viewnum播放量
danmakunum弹幕数
replynum评论数
favnum收藏数
coinnum硬币数
sharenum分享数
nowRanknum当前排名?
hisRanknum历史最高排名?
likenum点赞数
subscriptionnum订阅数
vtnum0

seasons数组中的对象中的sections对象:

字段类型内容备注
sectionsarr小节列表套了个娃

seasons数组中的对象中的sections数组中的对象:

字段类型内容备注
idnum小节 ID
typenum1
seasonIdnum合集 ID
titlestr小节标题
ordernum排序
statenum状态?0: 正常
partStatenum合集分段状态?0: 正常
rejectReasonstr拒绝原因?
ctimenum创建时间
mtimenum修改时间
epCountnum视频数量
coverstr封面 URL
has_charging_paynum是否充电付费?0: 否
Episodesnull

seasons数组中的对象中的part_episodes数组中的对象:

字段类型内容备注
idnum合集内视频 ID
titlestr视频标题
aidnum视频 aid
bvidstr视频 bvid
cidnum视频 cid
seasonIdnum合集 ID
sectionIdnum小节 ID
ordernum排序编号
videoTitlestr
archiveTitlestr
archiveStatenum0
rejectReasonstr拒绝理由?
statenum0
coverstr封面 URL
is_freenum是否免费?0: 免费
aid_ownerboolfalse
charging_paynum充电付费?0: 否

示例:

curl -G 'https://member.bilibili.com/x2/creative/web/seasons' \
--data-urlencode 'pn=1' \
--data-urlencode 'ps=30' \
-b "SESSDATA=xxx"
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": {
    "seasons": [
      {
        "season": {
          "id": 3541247,
          "title": "🍥Debian",
          "desc": "这里是泽生折腾 Debian GNU/Linux 的珍贵影像记录喵~",
          "cover": "https://archive.biliimg.com/bfs/archive/ec51de61b53159c5e2430cf963f5f97e692baeaf.jpg",
          "isEnd": 0,
          "mid": 645769214,
          "isAct": 0,
          "is_pay": 0,
          "state": 0,
          "partState": 0,
          "signState": 0,
          "rejectReason": "",
          "ctime": 1722573640,
          "mtime": 1722577206,
          "no_section": 1,
          "forbid": 0,
          "protocol_id": "",
          "ep_num": 0,
          "season_price": 0,
          "is_opened": 1,
          "has_charging_pay": 0
        },
        "course": null,
        "checkin": {
          "status": 0,
          "status_reason": "",
          "season_status": 1
        },
        "seasonStat": {
          "view": 6793,
          "danmaku": 21,
          "reply": 93,
          "fav": 64,
          "coin": 26,
          "share": 12,
          "nowRank": 0,
          "hisRank": 0,
          "like": 141,
          "subscription": 0,
          "vt": 0
        },
        "sections": {
          "sections": [
            {
              "id": 3954033,
              "type": 1,
              "seasonId": 3541247,
              "title": "正片",
              "order": 1,
              "state": 0,
              "partState": 0,
              "rejectReason": "",
              "ctime": 1722573640,
              "mtime": 1722577206,
              "epCount": 2,
              "cover": "http://i2.hdslb.com/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
              "has_charging_pay": 0,
              "Episodes": null
            }
          ]
        },
        "part_episodes": [
          {
            "id": 77260687,
            "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
            "aid": 1906473802,
            "bvid": "BV1MU411S7iJ",
            "cid": 1625992822,
            "seasonId": 3541247,
            "sectionId": 3954033,
            "order": 1,
            "videoTitle": "",
            "archiveTitle": "",
            "archiveState": 0,
            "rejectReason": "",
            "state": 0,
            "cover": "http://i2.hdslb.com/bfs/archive/b76c0b574862f5a8e8eb133f5f33fcbcd602401a.jpg",
            "is_free": 0,
            "aid_owner": false,
            "charging_pay": 0
          },
          {
            "id": 77260688,
            "title": "十多年前的电脑运行Debian12的启动过程",
            "aid": 1956170305,
            "bvid": "BV1Ay411i7Ph",
            "cid": 1607067247,
            "seasonId": 3541247,
            "sectionId": 3954033,
            "order": 2,
            "videoTitle": "",
            "archiveTitle": "",
            "archiveState": 0,
            "rejectReason": "",
            "state": 0,
            "cover": "http://i0.hdslb.com/bfs/archive/0bff6624fdfcbf3326fba1837fef093d455c846a.jpg",
            "is_free": 0,
            "aid_owner": false,
            "charging_pay": 0
          }
        ]
      },
      {
        "season": {
          "id": 3541327,
          "title": "BACollect",
          "desc": "",
          "cover": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
          "isEnd": 0,
          "mid": 645769214,
          "isAct": 0,
          "is_pay": 0,
          "state": 0,
          "partState": 0,
          "signState": 0,
          "rejectReason": "",
          "ctime": 1722574656,
          "mtime": 1722574658,
          "no_section": 1,
          "forbid": 0,
          "protocol_id": "",
          "ep_num": 0,
          "season_price": 0,
          "is_opened": 1,
          "has_charging_pay": 0
        },
        "course": null,
        "checkin": {
          "status": 0,
          "status_reason": "",
          "season_status": 0
        },
        "seasonStat": {
          "view": 0,
          "danmaku": 0,
          "reply": 0,
          "fav": 0,
          "coin": 0,
          "share": 0,
          "nowRank": 0,
          "hisRank": 0,
          "like": 0,
          "subscription": 0,
          "vt": 0
        },
        "sections": {
          "sections": [
            {
              "id": 3954127,
              "type": 1,
              "seasonId": 3541327,
              "title": "正片",
              "order": 1,
              "state": 0,
              "partState": 0,
              "rejectReason": "",
              "ctime": 1722574656,
              "mtime": 1722574656,
              "epCount": 0,
              "cover": "http://static.hdslb.com/images/transparent.gif",
              "has_charging_pay": 0,
              "Episodes": null
            }
          ]
        },
        "part_episodes": null
      }
    ],
    "tip": {
      "title": "",
      "url": ""
    },
    "total": 2,
    "play_type": 1
  }
}

创建合集

ttps://member.bilibili.com/x2/creative/web/season/add

请求方式: POST

认证方式: Cookie (SESSDATA)

注: 有人工审核

正文参数 (application/x-www-form-urlencoded):

参数名类型内容必要性备注
titlestr合集标题必要
descstr合集简介不必要
coverstr封面图必要上传封面 处获取
season_pricenum0不必要作用尚不明确
csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

JSON回复:

根对象:

字段类型内容备注
codenum返回值0:成功
messagestr错误信息
ttlnum1
datanum合集 ID

示例:

curl -X POST 'https://member.bilibili.com/x2/creative/web/season/add' \
--data-urlencode 'title=🍥Debian' \
--data-urlencode 'desc=这里是泽生折腾 Debian GNU/Linux 的珍贵影像记录喵~' \
--data-urlencode 'cover=https://archive.biliimg.com/bfs/archive/ec51de61b53159c5e2430cf963f5f97e692baeaf.jpg' \
--data-urlencode 'season_price=0' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx; bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1,
  "data": 3541247
}

添加视频到合集

https://member.bilibili.com/x2/creative/web/season/section/episodes/add

请求方式: POST

认证方式: Cookie (SESSDATA)

URL参数:

参数名类型内容必要性备注
csrfstrCSRF Token (即 Cookies 中 bili_jct )必要

正文参数 (application/json):

根对象:

参数名类型内容必要性备注
episodearray视频列表必要
section_idnum合集小节 ID必要

episode 数组中的对象:

参数名类型内容必要性备注
aidnum视频 aid必要
cidnum稿件 cid必要
titlestr合集内单集标题必要
charging_paynum0不必要作用尚不明确

JSON回复:

根对象:

字段类型内容备注
codenum返回值0:成功
messagestr错误信息
ttlnum1

示例:

假设您已经把请求有效荷载放在 payload.json 文件中:

{
  "sectionId": 3954033,
  "episodes": [
    {
      "title": "Linux小寄巧: 原地卸载内核然后尝试救活!",
      "aid": 1906473802,
      "cid": 1625992822,
      "charging_pay": 0
    },
    {
      "title": "十多年前的电脑运行Debian12的启动过程",
      "aid": 1956170305,
      "cid": 1607067247,
      "charging_pay": 0
    }
  ]
}
curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/section/episodes/add' \
--url-query 'csrf=xxx' \
-H 'Content-Type: application/json' \
--data-binary @payload.json \
-b 'SESSDATA=xxx; bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1
}

编辑合集小节

https://member.bilibili.com/x2/creative/web/season/section/edit

请求方式: POST

认证方式: Cookie (SESSDATA)

URL参数:

参数名类型内容必要性备注
csrfstrCSRF Token (即 Cookies 中 bili_jct)必要

正文参数 (application/json):

根对象:

参数名类型内容必要性备注
sectionobj小节信息必要
sortsarray排序列表必要

section 对象:

参数名类型内容必要性备注
idnum小节 ID必要
seasonIdnum合集 ID必要
titlestr小节标题必要
typenum1必要

sorts 数组中的对象:

参数名类型内容必要性备注
idnum合集内视频 ID必要
ordernum排序位置必要

JSON回复:

根对象:

字段类型内容备注
codenum返回值0:成功
messagestr错误信息
ttlnum1

示例:

假设您已经把请求有效荷载放在 payload.json 文件中:

{
  "section": {
    "id": 3954033,
    "type": 1,
    "seasonId": 3541247,
    "title": "正片"
  },
  "sorts": [
    {
      "id": 77260687,
      "sort": 1
    },
    {
      "id": 77260688,
      "sort": 2
    }
  ]
}
curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/section/edit' \
--url-query 'csrf=xxx' \
-H 'Content-Type: application/json' \
--data-binary @payload.json \
-b 'SESSDATA=xxx; bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1
}

编辑合集信息

https://member.bilibili.com/x2/creative/web/season/edit

请求方式: POST

认证方式: Cookie (SESSDATA)

注: 也有人工审核

URL参数:

参数名类型内容必要性备注
csrfstrCSRF Token (即 Cookies 中 bili_jct)必要

正文参数 (application/json):

根对象:

参数名类型内容必要性备注
seasonobj合集信息必要
sortsarray排序列表必要

season 对象:

参数名类型内容必要性备注
idnum合集 ID必要
titlestr合集标题必要
coverstr封面图必要上传封面 处获取
descstr合集简介不必要
season_pricenum0不必要作用尚不明确
isEndnum是否完结不必要0:未完结
1:完结

sorts 数组中的对象:

参数名类型内容必要性备注
idnum小节 ID必要
sortnum排序位置必要

JSON回复:

根对象:

字段类型内容备注
codenum返回值0:成功
messagestr错误信息
ttlnum1

示例:

假设您已经把请求有效荷载放在 payload.json 文件中:

{
  "season": {
    "cover": "https://archive.biliimg.com/bfs/archive/77906db03b1eefac02613de184afad03f7bc58d7.jpg",
    "id": 3541327,
    "title": "IWILLBEDEL"
  },
  "sorts": [
    {
      "id": 3954127,
      "sort": 1
    }
  ]
}
curl -X POST --url 'https://member.bilibili.com/x2/creative/web/season/edit' \
--url-query 'csrf=xxx' \
-H 'Content-Type: application/json' \
--data-binary @payload.json \
-b 'SESSDATA=xxx; bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1
}

删除合集

https://member.bilibili.com/x2/creative/web/season/del

请求方式: POST

认证方式: Cookie (SESSDATA)

正文参数 (application/x-www-form-urlencoded):

参数名类型内容必要性备注
idnum合集 ID必要
csrfstrCSRF Token (即 Cookie 中 bili_jct)必要

JSON回复:

根对象:

字段类型内容备注
codenum返回值0:成功
messagestr错误信息
ttlnum1

示例:

删除合集 id=3541327

curl -X POST 'https://member.bilibili.com/x2/creative/web/season/del' \
--data-urlencode 'id=3541327' \
--data-urlencode 'csrf=xxx' \
-b 'SESSDATA=xxx; bili_jct=xxx'
查看响应示例:
{
  "code": 0,
  "message": "0",
  "ttl": 1
}

获取合集小节中的视频

https://member.bilibili.com/x2/creative/web/season/section

请求方法: GET

认证方式: Cookie (SESSDATA)

可以在给合集排序时使用, 可以获取别人的

URL 参数:

参数名类型内容必要性备注
idnum合集 ID必要

JSON 回复:

字段类型内容备注
codenum返回值0:成功
messagestr错误信息
ttlnum1
dataobj信息本体

data 对象:

字段类型内容备注
sectionobj小节信息
episodesarr小节中的视频

data 对象中的 section 对象:

字段类型内容备注
idnum小节 ID
typenum小节类型
seasonIdnum合集 ID
titlestr小结标题
orderstr排序编号?
isEndnum是否已完结?0: 未完结
statenum合集状态?0: 正常显示
-6: 正在审核
partStatenum合集分段状态?0
rejectReasonstr合集拒绝原因?
ctimenum创建时间
mtimenum修改时间
epCountnum小节视频总数
covernum合集封面
shownum是否公开?1: 公开
has_charging_paynum是否充电付费?0: 否
Episodesnull
has_pugv_paynum是否 PUGV 付费?0: 否

data 对象中的 episodes数组中的对象:

字段类型内容备注
idnum合集内视频 ID
titlestr视频标题
aidnum视频 aid
bvidstr视频 bvid
cidnum视频 cid
seasonIdnum合集 ID
sectionIdnum小节 ID
ordernum排序编号
videoTitlestr视频标题
archiveTitlestr看起来也是标题
archiveStatenum0
rejectReasonstr拒绝理由?
statenum0
coverstr封面 URL
is_freenum是否免费?0: 免费
aid_ownerbool是否视频所有者true:是所有者
charging_paynum充电付费?0: 否

示例:

获取合集小节 176088 的视频

curl -G --url 'https://member.bilibili.com/x2/creative/web/season/section' \
--url-query 'id=176088' \
-b 'SESSDATA=xxx'
查看响应示例:

会返回全部的,由于很长,这里只保留三个作为例子

{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": {
        "section": {
            "id": 176088,
            "type": 1,
            "seasonId": 152812,
            "title": "正片",
            "order": 1,
            "state": 0,
            "partState": 0,
            "rejectReason": "",
            "ctime": 1643250822,
            "mtime": 1739466002,
            "epCount": 112,
            "cover": "http://i1.hdslb.com/bfs/archive/4439a182b142d92a169609e6e14e7217b3e14e0d.jpg",
            "has_charging_pay": 0,
            "Episodes": null,
            "show": 1,
            "has_pugv_pay": 0
        },
        "episodes": [
            {
                "id": 109100674,
                "title": "「开箱评测」三星Note8 EMR2笔对比公版Wacom笔 套娃笔首选 10寸 RK PX30 Wacom 电子书 天喻墨学 M2 M3",
                "aid": 113997323963614,
                "bvid": "BV14BNfeSE5c",
                "cid": 28376042631,
                "seasonId": 152812,
                "sectionId": 176088,
                "order": 1,
                "videoTitle": "「开箱评测」三星Note8 EMR2笔对比公版Wacom笔 套娃笔首选 10寸 RK PX30 Wacom 电子书 天喻墨学 M2 M3",
                "archiveTitle": "「开箱评测」三星Note8 EMR2笔对比公版Wacom笔 套娃笔首选 10寸 RK PX30 Wacom 电子书 天喻墨学 M2 M3",
                "archiveState": 0,
                "rejectReason": "",
                "state": 0,
                "cover": "",
                "is_free": 0,
                "aid_owner": true,
                "charging_pay": 0,
                "member_first": 0,
                "pugv_pay": 0
            },
            {
                "id": 108733886,
                "title": "「开箱评测」拆解 椭圆形的第三方AirTag GRTSZ S2 Tag",
                "aid": 113982291576104,
                "bvid": "BV1YyNvetEbX",
                "cid": 28325121446,
                "seasonId": 152812,
                "sectionId": 176088,
                "order": 2,
                "videoTitle": "「开箱评测」拆解 椭圆形的第三方AirTag GRTSZ S2 Tag",
                "archiveTitle": "「开箱评测」拆解 椭圆形的第三方AirTag GRTSZ S2 Tag",
                "archiveState": 0,
                "rejectReason": "",
                "state": 0,
                "cover": "",
                "is_free": 0,
                "aid_owner": true,
                "charging_pay": 0,
                "member_first": 0,
                "pugv_pay": 0
            },
            {
                "id": 106045797,
                "title": "「开箱评测」这帕姆怎么射不出来呢! 星穹铁道 KFC联动 财神帕姆 太可爱了",
                "aid": 113892936122993,
                "bvid": "BV1ZFFKeTEkr",
                "cid": 28087484764,
                "seasonId": 152812,
                "sectionId": 176088,
                "order": 3,
                "videoTitle": "「开箱评测」这帕姆怎么射不出来呢! 星穹铁道 KFC联动 财神帕姆 太可爱了",
                "archiveTitle": "「开箱评测」这帕姆怎么射不出来呢! 星穹铁道 KFC联动 财神帕姆 太可爱了",
                "archiveState": 0,
                "rejectReason": "",
                "state": 0,
                "cover": "",
                "is_free": 0,
                "aid_owner": true,
                "charging_pay": 0,
                "member_first": 0,
                "pugv_pay": 0
            }
        ]
    }
}