Package: bilibili-toolman
安装pip install bilibili_toolman使用以 Github Actions 转载视频：准备凭据凭据需要在本地准备pip 安装 bilibili_toolmanWindows 用户: 在Releases可下载已打包.exe版本使用 Web 端 APIpython -m bilibili_toolman --save --cookies "SESSDATA=8aafe8**********;bili_jct=4f39b**********"SESSDATA,bili_jct可在XHR请求头中或document.cookies获得，这里不将阐述使用 上传助手 APIpython -m bilibili_toolman --save --sms跟随输出操作即可（注：需要完成 Geetest 校验）凭据即输出的 Base64 编码内容Actions - 配置凭据Fork 此项目在项目 Settings > Secret > New repository secret 创建：Name  :SESSIONValue :此处为准备好的凭据可选替换不同凭据上传、投稿指定上传凭据Name  :SESSION_UPLOADValue :此处为准备好的凭据指定投稿凭据Name  :SESSION_SUBMITValue :此处为准备好的凭据一般推荐使用 Web 凭据上传，上传助手凭据投稿（高速 (?) (~400Mbps) 上传，多P投稿）Actions - 手动上传该 Actions 适用于手动转载的用户在项目 Actions > 手动转载 > Run Workflow 填入值（详见参数说明）运行即可Actions - 定时上传该 Actions 适用于需要自动转载Youtube频道的用户依照reupload-channel-timed.yml及其注释配置即可API 使用示例>>>frombilibili_toolman.bilisession.webimportBiliSession# 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 投稿>>>frombilibili_toolman.bilisession.common.submissionimportSubmission# 准备稿件>>>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....'}}]}其它例程 :examples编辑稿件信息投稿VTT字幕解码--save凭据main.pyAPI 实现 ：client.pyweb.py示例感谢PC 上传助手逆向 · FortuneDayssss/BilibiliUploader分区数据，API 参考 · Passkou/bilibili_apiYoutube 解析 · yt-dlp/yt-dlp参数说明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分区ID (tid) 表动画分区TIDMAD·AMV24MMD·3D25综合27短片·手书·配音47特摄86手办·模玩210番剧分区TID连载动画33资讯51官方延伸152国创分区TID国产动画153国产原创相关168布袋戏169资讯170动态漫·广播剧195音乐分区TID原创音乐28音乐现场29VOCALOID·UTAU30翻唱31演奏59音乐综合130MV193电音194舞蹈分区TID宅舞20舞蹈综合154舞蹈教程156街舞198明星舞蹈199中国舞200游戏分区TID单机游戏17Mugen19网络游戏65GMV121音游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音MAD26人力VOCALOID126教程演示127时尚分区TID美妆157服饰158T台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