pip install bilibili_toolman
凭据需要在本地准备
-
- Windows 用户: 在 Releases 可下载已打包
.exe
版本
- Windows 用户: 在 Releases 可下载已打包
-
使用 Web 端 API
python -m bilibili_toolman --save --cookies "SESSDATA=8aafe8**********;bili_jct=4f39b**********"
SESSDATA
,bili_jct
可在XHR请求头中或document.cookies
获得,这里不将阐述 -
使用 上传助手 API
python -m bilibili_toolman --save --sms
跟随输出操作即可(注:需要完成 Geetest 校验)
-
凭据即输出的 Base64 编码内容
-
Fork 此项目
-
在项目 Settings > Secret > New repository secret 创建:
- Name :
SESSION
- Value :
此处为准备好的凭据
- Name :
-
可选 替换不同凭据上传、投稿
指定上传凭据
- Name :
SESSION_UPLOAD
- Value :
此处为准备好的凭据
指定投稿凭据
- Name :
SESSION_SUBMIT
- Value :
此处为准备好的凭据
一般推荐使用 Web 凭据上传,上传助手凭据投稿(高速 (?) (~400Mbps) 上传,多P投稿)
- Name :
该 Actions 适用于手动转载的用户
- 在项目 Actions > 手动转载 > Run Workflow 填入值(详见参数说明)
- 运行即可
该 Actions 适用于需要自动转载Youtube频道的用户
- 依照 reupload-channel-timed.yml 及其注释配置即可
>>> from bilibili_toolman.bilisession.web import BiliSession
# bilisession.client 即上传助手 API。较 Web 版相比,可以用低等级帐号投稿多 P 视频
# 同时,可以免去大部分人机校验操作
# bilisession.web 即 Web 端创作中心 API。在上传速度上会有优势
# 注:投稿与上传*不需要*在同一个 Session 中完成
# 不论 import 的是什么版本,登录态恢复时都会重新实例化登录态对应的 Session
>>> session = BiliSession.from_base64_string("H4sIADKW+2EC/5VVWW/bRhB2EF216...")
# 从凭据恢复登录态,详情见 准备凭据
>>> endpoint_1,cid_1 = session.UploadVideo("本地视频01.mp4")
('n220208141kq78....', ...)
>>> endpoint_2,cid_2 = session.UploadVideo("本地视频02.mp4")
('n220209892re88....', ...)
# 上传视频并拿 key
# 上传线路根据恢复的 Session 而定
# Web / Cookies 使用的是网宿CDN,国内外速度都很可观
# Client 使用的 CDN 在海外的速度则较慢
# 推荐分别准备 Web / Client 的 Session. 如此可用 Web 高速上传,Client 多 P 投稿
>>> from bilibili_toolman.bilisession.common.submission import Submission
# 准备稿件
>>> submission = Submission(
title="【toolman】 转载测试",
desc="...as per request"
)
# 新建稿件 (标题描述出现韩文字符等会导致稿件无效,具体参见 -h 输出)
>>> submission.videos.append(
Submission(
title="多 P (P1)",
video_endpoint=endpoint_1
)
)
>>> submission.videos.append(
Submission(
title="多 P (P2)",
video_endpoint=endpoint_2
)
)
# 添加视频 (P),注意仅父节点(稿件)描述会被显示;分 P 视频和父稿件同类型
>>> cover = session.UploadCover('封面测试.png')
>>> submission.cover_url = cover['data']['url']
# 上传,设置封面
>>> submission.source = 'https://github.com/mos9527/bilibili-toolman'
# 设置转载来源
>>> submission.tags.append('转载')
# 添加标签
>>> submission.thread = 17
# 设置分区(详见 README 文末分区表)
>>> session.SubmitSubmission(submission,seperate_parts=False)
# 投稿视频 (尝试以多 P 模式上传)
# 若使用 Web API,如果条件不足(Lv3+ 及 1000+ 关注量) 则会报错
>>> session.SubmitSubmission(submission,seperate_parts=True)
# 投稿视频 (尝试以将多 P 分为单 P 后上传)
{'code:': 0,
'results': [{'code': 0, 'message': '0','ttl': 1,
'data': {'aid': 5939...., 'bvid': 'BV1oq....'}}]}
PC 上传助手逆向 · FortuneDayssss/BilibiliUploader
分区数据,API 参考 · Passkou/bilibili_api
usage: bilibili-toolman [-h] [--cookies COOKIES] [--sms] [--load LOAD]
[--load_upload LOAD_UPLOAD]
[--load_submit LOAD_SUBMIT] [--save] [--http]
[--noenv] [--cdn {ws,qn,bda2,kodo,gcs,bos}]
[--opts OPTS] [--thread_id THREAD_ID] [--tags TAGS]
[--desc DESC] [--title TITLE] [--seperate_parts]
[--no_upload] [--no_submit] [--original]
[--no_reprint] [--localfile LOCALFILE-URL]
[--youtube YOUTUBE-URL]
使用帮助
optional arguments:
-h, --help show this help message and exit
身份设置 (随方式优先级排序):
--cookies COOKIES 登陆: 使用 Cookies 登陆,即使用 Web API (不可多 P 上传) ( 需要 SESSDATA 及 bili_jct ) e.g.SESSDATA=cb0..; bili_jct=6750...
--sms 登陆:使用短信验证码登陆,即使用 上传助手 API (可多 P 上传)(需手动交互)(有日获取限制,请配合 --save 使用)
--load LOAD 登陆:加载凭据,同时用于上传及投稿
--load_upload LOAD_UPLOAD
登陆:使用该凭据上传,而不用--load凭据上传
--load_submit LOAD_SUBMIT
登陆:使用该凭据投稿,而不用--load凭据投稿
--save 登陆:向stdout输出当前登陆凭据并退出(其他输出转移至stderr)
--http 强制使用 HTTP (不推荐)
--noenv 上传时,不采用环境变量(如代理)
--cdn {ws,qn,bda2,kodo,gcs,bos}
上传用 CDN (限 Web API) (对应 网宿(适合海外),七牛,百度(默认),七牛,谷歌,百度)
--retry_submit_delay RETRY_SUBMIT_DELAY
投稿限流时,重新投稿周期
--retry_submit_count RETRY_SUBMIT_COUNT
投稿限流时,尝试重新投稿次数
上传设置:
--opts OPTS 解析可选参数 ,详见 --opts 格式
--thread_id THREAD_ID
分区 ID
--tags TAGS 标签
--desc DESC 描述格式 e.g. "原描述:{desc}" (其他变量详见下文)(仅稿件有描述)
--title TITLE 标题格式 e.g. "[Youtube] {title} (其他变量详见下文)(使用于稿件及分P)"
--seperate_parts 不分P (e.g. --youtube [播放列表],--localfile [文件夹])独立投稿(不分P)(Web上传默认不分 P)
--no_upload 只下载资源
--no_submit 不提交稿件,适用于获取filename参数
--original 设置稿件为原创
--no_reprint 设置稿件不允许转载
解析可选参数 "opts" (格式 : [参数1]=[值1];[参数2]=[值2] (query-string)):
--localfile LOCALFILE-URL
本地文件
参数:
cover (str) - 封面图片路径
e.g. --localfile "le videos/" --opts cover="le cover.png" --tags ...
--youtube YOUTUBE-URL
Youtube / Twitch / etc 视频下载 (yt-dlp)
参数:yt-dlp 参数:
format (str) - 同 yt-dlp -f
quite (True,False) - 是否屏蔽 yt-dlp 日志 (默认 False)
特殊参数:
playlistend - 对于播放列表、频道,下载到(时间顺序,新者在前)第 n 个视频为止
playliststart - 对于播放列表、频道,从(时间顺序,新者在前)第 n 个视频开始下载
daterange - 只下载在该参数指定时间窗口内的视频 (精确到毫秒)
格式可以为 YYmmdd,也可以用相对时间. 如:
e.g. daterange=now; (下载今天上传的视频)
e.g. daterange=now-1day; (下载昨天到今天上传的视频)
e.g. daterange=220430~220501 (下载 2022年4月30日~2022年5月1日 的视频)
hardcode - 烧入硬字幕选项
e.g. 启用 ..;hardcode;...
e.g. 换用字体 ..;hardcode=style:FontName=Segoe UI
e.g. NV硬解码 ..;hardcode=input:-hwaccel cuda/output:-c:v h264_nvenc -crf 17 -b:v 5M
多个选项用 / 隔开
e.g. --youtube "..." --opts "format=best&quiet=True&hardcode" --tags ...
此外,针对视频对象,还提供其他变量:
{id}
{title}
{descrption}
{upload_date}
{uploader}
{uploader_id}
{uploader_url}
{channel_id}
{channel_url}
{duration}
{view_count}
{avereage_rating}
...
注:输入播放列表且多 P 时,稿件标题为播放列表标题,稿件描述仅为 `来自Youtube`
默认配置:不烧入字幕,下载最高质量音视频,下载字幕但不操作
变量:
{title},{desc} 等变量适用于:
title, desc, tags
通用变量:
{title} - 原标题
{desc} - 原描述
{safe_korean_title}
- 【韩文】替换韩文为特殊字符的标题
{roma_korean_title}
- 【韩文】替换韩文为罗马音的标题 (需要安装 korean_romanizer)
本工具支持将给定视频源转载至哔哩哔哩
详见项目 README 以获取更多例程 : github.com/greats3an/bilibili-toolman
分区 | TID |
---|---|
MAD·AMV | 24 |
MMD·3D | 25 |
综合 | 27 |
短片·手书·配音 | 47 |
特摄 | 86 |
手办·模玩 | 210 |
分区 | TID |
---|---|
连载动画 | 33 |
资讯 | 51 |
官方延伸 | 152 |
分区 | TID |
---|---|
国产动画 | 153 |
国产原创相关 | 168 |
布袋戏 | 169 |
资讯 | 170 |
动态漫·广播剧 | 195 |
分区 | TID |
---|---|
原创音乐 | 28 |
音乐现场 | 29 |
VOCALOID·UTAU | 30 |
翻唱 | 31 |
演奏 | 59 |
音乐综合 | 130 |
MV | 193 |
电音 | 194 |
分区 | TID |
---|---|
宅舞 | 20 |
舞蹈综合 | 154 |
舞蹈教程 | 156 |
街舞 | 198 |
明星舞蹈 | 199 |
中国舞 | 200 |
分区 | TID |
---|---|
单机游戏 | 17 |
Mugen | 19 |
网络游戏 | 65 |
GMV | 121 |
音游 | 136 |
电子竞技 | 171 |
手机游戏 | 172 |
桌游棋牌 | 173 |
分区 | TID |
---|---|
野生技术协会 | 122 |
社科人文 | 124 |
科学科普 | 201 |
财经 | 207 |
校园学习 | 208 |
职业职场 | 209 |
分区 | TID |
---|---|
手机平板 | 95 |
电脑装机 | 189 |
摄影摄像 | 190 |
影音智能 | 191 |
分区 | TID |
---|---|
日常 | 21 |
动物圈 | 75 |
美食圈 | 76 |
搞笑 | 138 |
手工 | 161 |
绘画 | 162 |
运动 | 163 |
其他 | 174 |
汽车 | 176 |
分区 | TID |
---|---|
鬼畜调教 | 22 |
音MAD | 26 |
人力VOCALOID | 126 |
教程演示 | 127 |
分区 | TID |
---|---|
美妆 | 157 |
服饰 | 158 |
T台 | 159 |
健身 | 164 |
风尚标 | 192 |
分区 | TID |
---|---|
热点 | 203 |
环球 | 204 |
社会 | 205 |
综合 | 206 |
分区 | TID |
---|---|
综艺 | 71 |
明星 | 137 |
分区 | TID |
---|---|
短片 | 85 |
影视杂谈 | 182 |
影视剪辑 | 183 |
预告·资讯 | 184 |
分区 | TID |
---|---|
人文·历史 | 37 |
科学·探索·自然 | 178 |
军事 | 179 |
社会·美食·旅行 | 180 |
分区 | TID |
---|---|
其他国家 | 83 |
欧美电影 | 145 |
日本电影 | 146 |
华语电影 | 147 |
分区 | TID |
---|---|
国产剧 | 185 |
海外剧 | 187 |