Skip to content

About

Windows 多平台视频发布器:B站 / 快手 / 抖音,基于 Playwright 的本地浏览器自动化

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

多平台视频发布器

抖音 / 快手 / B站 三平台一条视频批量发布,支持自定义标题、话题、封面,以及立即发布 / 定时发布。

分享或发布前必看:profile/ 里保存的是你的登录 Cookie,logs/、gui-state.json、 history.json 里可能有你的账号、视频路径和标题。打包给别人时不要带上这些内容, 否则等于把账号交出去。.venv/ 是本机依赖,也不要打包。 只发布代码、LICENSE、config.json、README.md、requirements.txt、setup.* 和两个 .bat 即可。

不依赖浏览器扩展:用 Playwright 直接驱动本机 Chrome(优先)或 Edge,登录态保存在 本地 profile/ 目录里,扫码登录一次即可长期复用。


为什么用 Playwright 直连

旧版 bsk 版 本版 Playwright 版
依赖 bsk CLI + 浏览器扩展必须保持 connected 只要本机有 Chrome/Edge
登录态 依赖你日常浏览器的已登录状态 独立 profile,互不干扰
传文件 模拟拖拽到上传区 直接写入 <input type=file>,更稳
日志 只在窗口里 logs/时间戳-任务/ 下留存 + 每步截图
调试 页面改版只能盲猜 失败时自动截图 + 存 DOM 快照

目录

多平台发布器/
├── setup.bat           一键安装(推荐)
├── setup.ps1           安装脚本:创建 .venv、装依赖、建桌面快捷方式
├── cli.py              命令行入口(doctor / login / publish)
├── gui.py              图形界面
├── 启动.bat            双击开图形界面
├── 登录.bat            双击扫码登录
├── requirements.txt    依赖清单
├── LICENSE             MIT 许可证
├── config.json         默认话题预设
├── gui-state.json      上次填写的字段(自动生成)
├── history.json        历史模板:标题 / 文案 / 各平台话题(自动生成)
├── core/
│   ├── __init__.py     版本号
│   ├── browser.py      浏览器启动与 profile 管理
│   ├── steps.py        点击 / 填写 / 上传 / 等待等通用动作
│   └── log.py          日志与截图
├── platforms/
│   ├── __init__.py
│   ├── base.py         任务数据结构与平台基类
│   ├── bilibili.py     B站投稿
│   ├── kuaishou.py     快手发布
│   └── douyin.py       抖音发布
├── .github/workflows/  GitHub Actions 语法检查
├── profile/            登录态(勿提交、勿分享、勿删除)
└── logs/               每次运行的日志与截图

一键安装(Windows,推荐)

  1. 下载本仓库(GitHub 页面点 Code → Download ZIP)并解压,或者 git clone。
  2. 双击 setup.bat。
  3. 安装完成后,双击桌面上的「多平台视频发布器」,或项目里的 启动.bat。
  4. 首次使用双击 登录.bat,三个平台各扫码一次。

setup.bat 会:

  • 检查 Python 3.9+(推荐 3.11)
  • 在项目里创建独立虚拟环境 .venv,不污染系统 Python
  • 安装 requirements.txt 里的 Playwright / Pillow
  • 运行 python cli.py doctor 做环境自检
  • 创建桌面快捷方式

安装脚本可以重复运行;如果只想装依赖、不要桌面快捷方式:

setup.bat -NoShortcut

如果自动安装失败,也可以手动执行下面的命令。


手动安装

cd D:\dsh\多平台发布器   # 换成你的实际目录

# 0. 安装依赖(只需一次)
pip install -r requirements.txt

# 1. 自检
python cli.py doctor

# 2. 登录:会弹出浏览器,三个平台各扫码一次,登好会自动结束
python cli.py login

# 3. 试跑:填好就停,页面保持打开
python cli.py publish --video "D:\v\测试.mp4" --title "测试标题"

不想敲命令:双击 登录.bat 即可,效果一样。浏览器会自己弹出来, 里面有三个标签页(B站 / 快手 / 抖音),用手机 App 扫码登录,三个都登好后 窗口自动结束,不需要按回车。默认最多等 10 分钟,--timeout 秒数 可调。

试跑时会依次打开三个平台,把标题、话题、封面、定时都填好,停在提交前不动。 去浏览器里肉眼检查一遍,没问题自己点发布。


正式发布

python cli.py publish `
  --video "D:\v\今日.mp4" `
  --cover "D:\v\今日-封面.jpg" `
  --title "不断杀" `
  --desc "今天这局有点东西" `
  --bili-tags "三国杀,桌游棋牌" `
  --ks-topics "#三国杀 #三国杀锦囊妙会" `
  --dy-topics "#三国杀 #随时随地杀一下" `
  --date 2026-10-21 --time 06:00

常用参数:

参数 说明
(默认) 填完就停,页面无限期保持,你自己在网页上点发布
--auto 填完直接自动提交(建议只在选择器稳定后使用)
--platforms bili,douyin 只发指定平台,默认三个全发
--hold 同上默认行为,写不写都一样
--date / --time 定时发布,默认明天 06:00
--now 立即发布:三个平台都不设定时,忽略 --date / --time
--desc 文案(默认同标题);B站简介 / 快手描述 / 抖音作品描述(与标题不同时才写入抖音)
--bili-tags B站标签,逗号分隔
--bili-topic B站「参与话题」,逗号分隔
--ks-topics 快手话题,# 开头空格分隔
--dy-topics 抖音话题,# 开头空格分隔
--cover 封面图片;不填就用平台推荐的封面(B站用系统推荐第一张,快手挑最亮的一张,抖音点第一张智能推荐)

话题默认值写在 config.json 的 defaults 里(键名见上面的参数表;发布包默认是空的,填上就会自动带上),命令行传了就以命令行为准。


封面规则

情况 实际行为
指定了封面图 三个平台都上传这张图,走平台自己的裁剪确认
没指定封面 B站点「系统推荐封面」里最上面那张;快手从「智能推荐封面」里挑最亮的一张;抖音点「Ai智能推荐封面」第一张并确认

快手推荐位的第一张常常就是视频开头的黑帧,所以按亮度挑,避免出来还是全黑。

快手指定封面时会走「封面截取 → 上传封面 → 确认」:程序会等「上传封面」标签真正切过去(页面多挂一个图片输入框)再塞图,最后比对封面缩略图确认真的换了。日志里如果出现「封面没生效」,说明平台这次没接住,请在网页上手动补一下封面。

话题怎么写

三个平台的话题用空格分开就行,# 可以不写,程序会自动补上:

#三国杀#三国杀锦囊妙会 #随时随地杀一下#三国杀将星筑梦

上面这串会拆成 4 个话题:#三国杀 #三国杀锦囊妙会 #随时随地杀一下 #三国杀将星筑梦。 逗号、顿号、分号(中英文)也都能当分隔符。

  • 抖音 / 快手:打完会校验是不是真的变成了话题胶囊,没变的会在日志里点名(多半是平台里没这个话题)
  • B站:走「搜索更多话题」,先找名字完全一样的,找不到就选播放量最高的那个,日志里会写清楚选了哪个 (比如搜「三国杀」,平台里没有正好叫「三国杀」的话题,就会选到「我爱三国杀 1870万次播放」这类)

图形界面(日常用这个)

双击 启动.bat,或:

python gui.py

流程就是五步:

  1. 选视频、封面(封面可留空,留空就用平台推荐封面),填标题和三个平台各自的话题
  2. 选「发布方式」:立即发布 / 定时发布;定时发布时用下拉框挑时间,日期有「今天 / 明天」快捷键
  3. 勾平台,选「跑完之后」的方式(默认第一项)
  4. 点「开始填表」,等日志打到最后
  5. 切到 Chrome/Edge 窗口,逐个标签页核对,自己点「发布 / 立即投稿」

「发布方式」两个选项:

选项 行为
立即发布 三个平台都切到「立即发布」,不设日期时间,页面上点发布就当场发出
定时发布 按设定的日期时间定时,抖音要求 ≥2 小时且 ≤14 天

「跑完之后」两个选项:

选项 行为
填好就停,页面保持打开,我自己点发布(默认) 填完三个平台后进程挂住,页面不限时保持,不自动提交。关掉浏览器后程序自动退出
填好并自动提交 填完直接点提交,适合已经验证过、信任选择器的时候;点「开始填表」后会再弹一次确认

几点说明:

  • 日期每次打开都默认明天,不会沿用上次的旧日期;其他字段记住上次输入 (存在 gui-state.json),包括选的是立即还是定时
  • 定时时间是个下拉框:06:00 / 07:00 / 08:00 / 09:00 / 10:00 / 12:00 / 16:00 / 17:00 / 18:00 / 19:00 / 20:00 / 21:00 / 22:00 / 23:00 点一下就行,也可以直接在框里改成任意 HH:MM
  • 选「立即发布」时,日期/时间控件会变灰,避免误填
  • 历史记录:每次点「开始填表」自动把这一套标题、文案、三个平台话题存成一条 模板(下拉列表里按时间倒序,最多 50 条)。下次直接从下拉里选一条,标题和话题 自动回填,视频和封面只在原文件还在时才跟着换。也可以不跑任务、直接点 「存为模板」;选中一条后点「删除」可以清理
  • 任务跑着的时候关掉图形界面窗口,不会停止后台任务,浏览器仍然开着
  • 日志按颜色区分:绿色是通过、黄色是警告、红色是错误;右上角显示已用时间。 跑飞了点「停止」会连浏览器一起关掉(会先确认)
  • 底部「重新登录」会另开一个窗口跑 cli.py login

出问题怎么查

每次运行都会生成 logs\<时间戳>-publish\:

  • run.log — 完整输出
  • bili-01-open.png … — 各阶段截图
  • xxx-crashed.png — 崩溃现场

定位方法:看最后一张截图停在哪个界面,就知道卡在哪一步;对照 run.log 里最后一条 [!!] 警告。常见三类:

  1. 找不到上传入口 → 平台改版了,改 platforms/<平台>.py 顶部的选择器常量
  2. 标题/描述填不进去 → 同上,该平台的选择器元组里加一条新写法
  3. 定时没设上 → 日期面板结构变了,通常是日期格子或时间列的 class 改名

截图偶尔会超时(平台页面渲染卡住时),程序会在同一页面连续失败 3 次后 自动跳过后续截图,避免整轮任务被拖慢;这时以 run.log 为准。

改完照常跑一遍,填完页面会停住,肉眼核对即可,不用真发。


已知限制

  • 串行发布:同一个浏览器里三个平台依次跑,一条视频大约 3–8 分钟(取决于体积)
  • 需要登录态有效:登录过期会卡在登录页,重跑 python cli.py login
  • profile 独占:上一次的浏览器窗口没关时,新任务会直接提示「profile 被占用」并退出, 先关掉旧窗口再跑(不会卡在启动阶段干等;Chrome 和 Edge 都会检查)
  • 自动提交有风险:页面改版后可能点错位置,正式发布建议用默认的「填好就停」
  • 风控:脚本已做基础反检测(去 webdriver 标记、真实 profile、慢速操作), 但高频发布仍可能触发平台验证,遇到验证码需要手动过一次
  • 定时时间:必须晚于当前时间,否则平台会拒绝(选「立即发布」则不受此限制)
  • 平台改版:DOM 一变就要修选择器,这是所有非官方 API 方案的共同成本

依赖

  • Windows 10/11
  • Python 3.9+(推荐 3.11)
  • Chrome 或 Edge(优先用 Chrome,装一个即可)
  • Playwright / Pillow:双击 setup.bat 会自动装好,也可以手动运行 pip install -r requirements.txt

Pillow 用于快手推荐封面按亮度挑选、以及封面是否真的换了的校验; 不装也能跑,但这两处会退化。

不需要 playwright install——直接用系统浏览器。


发布前检查清单

  • python cli.py doctor 通过
  • 用一条测试视频跑一遍默认模式,三个平台都能填到提交前
  • 不要把 profile/、logs/、gui-state.json、history.json、__pycache__/、.venv/ 打进发布包
  • config.json 里的默认话题改成通用示例,或确认可以公开
  • 在干净目录双击 setup.bat,确认能安装并创建快捷方式
  • LICENSE 已使用 MIT,如需其他许可证请自行替换

免责声明

本工具通过浏览器自动化操作平台页面,不是官方 API。使用可能违反平台服务条款, 并带来账号风控风险。请先用小号测试,发布前人工核对,风险自负。


许可证

本项目使用 MIT License。

About

Windows 多平台视频发布器:B站 / 快手 / 抖音,基于 Playwright 的本地浏览器自动化

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages