Commit Graph
82 Commits
Author SHA1 Message Date
AlleriaandGitHub c9d6d5b39c Merge branch 'main' into main 2026-06-19 13:51:25 +08:00
AlleriaandGitHub 23b0cb2468 Merge pull request #227 from nirolee/feat/youtube-uploader
feat(youtube): add YouTube uploader via browser automation
2026-06-19 13:44:45 +08:00
billy d826a19bb2 feat(douyin): 添加 --bgm 参数支持选择音乐 2026-06-16 15:51:10 +08:00
billy 9c3d8de82d feat(douyin):新增图文标题和正文字符数校验 2026-06-15 15:32:54 +08:00
billy 9677fa3d70 fix(douyin)优化图文发布正文和话题输入方式 ,tags直接拼接到description末尾一起赋值,避免hashtag解析混乱 2026-06-15 15:01:36 +08:00
nirolee aa5112e985 fix(youtube): wait for upload to finish before publishing; add optional proxy
- Wait until the upload progress reaches 100% before clicking publish. The
  browser-based upload only progresses while the page is open, so publishing
  (and closing the browser) mid-upload cut it off and left the video stuck
  partway (e.g. 76%).
- Add optional YT_PROXY (conf.py): where youtube.com is blocked, direct
  connections time out and the chromium does not use the system proxy, so
  allow pointing it at a local proxy explicitly.
2026-06-14 15:18:05 +09:00
nirolee 991bcdfdf3 feat(youtube): add YouTube uploader via browser automation
Add a YouTube uploader that follows the existing cookie-based browser
automation pattern (uploader/youtube_uploader + sau youtube CLI:
login/check/upload-video). Supports title/description/tags, thumbnail,
adding to a playlist (for series), and visibility (public/unlisted/private).

Browser automation is used instead of the official Data API on purpose:
videos uploaded by an unaudited API project are force-locked to private
and cannot be made public without Google's compliance audit, which is
impractical for personal/single-channel use. Browser automation has no
such restriction and matches how every other platform here works.
2026-06-14 01:05:35 +09:00
changyandao 914a5f0910 fix(douyin): cookie 校验改有头,避免无头被反爬墙误判失效
cookie_auth 原硬编码 headless=True,但抖音无头会撞反爬墙→content/upload 跳登录→
间歇性误报 cookie 失效(实测登录刚成功 90s 后校验即失败)。改 headless=False +
反检测 args。
2026-06-13 18:23:35 +08:00
changyandao a083ad911f fix(douyin login): 二维码提取失败不致命 + 登录成功判定放宽
- _save_douyin_qrcode 定位不到二维码元素时不再抛错中止(有头浏览器可直接扫码),仅警告并继续轮询等登录跳转
- _is_douyin_login_completed 放宽到 creator-micro 任意页(不止 /home)
- Path(image_path) 对空路径做守卫
2026-06-13 17:34:39 +08:00
changyandao b9ca544892 fix(douyin): goto 改 domcontentloaded 避免抖音 SPA load 事件超时
创作者中心发布页 load 事件常迟迟不触发,默认 goto(wait_until=load) 偶发 30s 超时。
3 处 content/upload 的 goto 改 wait_until=domcontentloaded + timeout=90000;
对应 wait_for_url 保持仅 timeout(不接受 wait_until)
2026-06-13 16:23:23 +08:00
changyandao e192fa0cb1 fix(tencent): 视频号定时时间选择器收尾容错
set_schedule_time 键入小时后改用 Enter 确认 + 收起浮层做容错(直接点
input-editor 可能被 weui-desktop-dialog 时间选择浮层遮挡),避免定时步偶发卡死
2026-06-13 15:33:01 +08:00
changyandao 5e28092f20 fix(douyin): version_2 发布页适配——标题超时/封面输入/话题上限
- 标题/描述等待 10s→120s:version_2(post/video) 要等视频上传完才渲染表单(实测约40s)
- 封面上传修正:封面弹窗有4个隐藏input,前2个是左侧AI参考图,真封面是 nth(1);旧 .first 传错位置导致封面不生效
- set_thumbnail 先清 shepherd 引导浮层,避免拦截选择封面点击
- 完成按钮用 exact 文本,避免误中完成编辑
2026-06-13 15:16:29 +08:00
changyandaoc f5cb31079c fix(uploader): 适配抖音与视频号发布页最新 DOM 结构
抖音 douyin_uploader:
- 填标题/描述:改用 input[placeholder*=填写作品标题] 与 div.zone-container[contenteditable] 定位
- 话题输入后按 Escape 收起下拉,避免浮层拦截
- '选择封面'与'发布'改用 force 点击,并移除拦截点击的新手引导(shepherd)浮层
- 封面弹窗适配:div.dy-creator-content-modal + input.semi-upload-hidden-input;横竖版切换改用'设置竖封面'按钮;完成后等弹窗关闭

视频号 tencent_uploader:
- upload_video_file 遍历所有 frame 查找文件框 + 重试等待

说明:两平台发布均需有头模式(--headed),无头下视频号上传框不渲染。
2026-06-13 12:01:24 +08:00
zzxthy 8d030c7c61 fix(xiaohongshu): limit tags to 10 and add original declaration
- Add tag count validation (max 10) in both CLI and uploader layers
  - CLI: exit with error if tags > 10, prompt user to reduce
  - Uploader: truncate to first 10 with warning as fallback
  - Prevents infinite loop when XHS UI rejects excess tags

- Add check_original_declaration() to auto-check original content
  declaration before publishing (video and note modes)
  - Gracefully skips if the option is not present on the page
2026-06-04 16:33:24 +08:00
AlleriaandGitHub 5716d486cc Merge pull request #211 from muy97212-spec/fix/tencent-original-statement-optional
fix(tencent): 视频号「声明原创」缺失时跳过而非中止发布
2026-06-03 09:45:51 +08:00
AlleriaandGitHub 4f02d22ae2 Merge pull request #213 from muy97212-spec/feat/douyin-self-declaration
feat(douyin): 发布时自动选择「自主声明」;fix(xiaohongshu): 话题候选超时不再中断发布
2026-06-03 09:43:32 +08:00
AlleriaandGitHub f5c2e13df8 Merge pull request #217 from gorf/fix/xhs-upload-debug-log-syntax
fix: avoid f-string backslash syntax error in xiaohongshu uploader
2026-06-03 09:42:52 +08:00
gorfandCursor 13f7bd7a2a fix: avoid f-string backslash syntax error in xiaohongshu uploader
Move newline normalization out of the f-string expression so the CLI can import and run under Python 3.11+ without syntax errors.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 16:32:39 +08:00
yoqu aa526b6ca8 feat(cli): 支持双比例封面参数 2026-06-02 16:30:27 +08:00
智行oloandClaude Opus 4.8 7ae6943627 feat(douyin): 「自主声明」默认勾选「内容为个人观点或见解」
抖音发布页「自主声明」为必选项,此前自动化未填,是发布流程的缺口。新增
DouYinBaseUploader.set_self_declaration:点开占位「请选择自主声明」→ 弹窗
「对作品内容添加声明」中单选「内容为个人观点或见解」(exact 避免误点预览
文案) → 确定;在 DouYinVideo 贴完封面后调用。入口/弹窗均异步渲染,等不到
则 warning 跳过、继续发布,与小红书话题、视频号声明原创的容错策略一致。
当前仅覆盖视频(DouYinVideo),图文 DouYinNote 未涉及。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 20:14:58 -07:00
智行oloandClaude Opus 4.8 1b36b8bd9b fix(xiaohongshu): 话题候选等不到时跳过该标签继续发布
话题依赖小红书联想接口实时返回,网络抖动或无匹配时等不到候选框,会让整条
发布失败。改为 try/except:放宽超时(3s/2s→6s/4s),仍等不到就记 warning、
退格清掉已键入的 #tag 残留文本后 continue。标签为可选增强项,不应阻断主流程。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 19:01:47 -07:00
智行oloandClaude Opus 4.8 3ef4cd322a fix(tencent): 视频号「声明原创」缺失时跳过而非中止发布
视频号原创声明是可选项,但 apply_original_statement 在未找到声明入口时
会 raise RuntimeError 中止整个发布。在改版后的发布页(部分账号用 wujie
微前端,DOM 结构不同)经常匹配不到入口,导致本可正常发布的视频全部失败。

改为:未找到声明入口时记录 warning 并继续发布,不再中止。同时给诊断分支的
body 定位加 .first,避免页面存在多个 <body> 时 Playwright strict mode 崩溃。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 02:11:38 -07:00
AlleriaandGitHub 99a392af2c Merge pull request #205 from sunreview/main
修复了快手定时发布时间错误的问题
2026-05-30 16:20:30 +08:00
tianqi 1cba88de15 fix: add tencent cli and original declaration handling 2026-05-28 17:14:03 +08:00
tomridder 24807633f7 修复了快手定时发布时间错误的问题 2026-05-12 09:30:58 +08:00
zzzzzy2kandGitHub 8c30f4c6a6 fix: 修复小红书上传只有一个标签的问题 2026-05-03 14:03:10 +08:00
home-dev-pookz ff0285c7a6 腾讯重构一版 2026-04-22 19:04:20 +08:00
fengxian.guo fc531e9783 fix: 修复小红书上传视频卡等待的问题,把原来的精准定点找词改成全局模糊识、多信号状态检测 2026-04-08 12:00:04 +08:00
houjingyangandjoyholmes 05adf763ba fix(bilibili): 优先复用本地缓存的 biliup,避免每次运行都强制检查 GitHub Release 2026-03-26 19:19:09 +08:00
home-dev-pookz 90d03dc15a 小红书重构
1. 图文上传
2. 视频上传(封面,定时)
3. cli
4. skill
5. 无头模式
2026-03-25 15:19:40 +08:00
home-dev-pookz 2277a5fdf9 临时留档 2026-03-25 13:55:23 +08:00
home-dev-pookz 0778e29a04 feat: finalize bilibili cli workflow 2026-03-25 04:29:35 +08:00
home-dev-pookz 1bc8ae7698 feat: add bilibili cli commands 2026-03-25 03:44:56 +08:00
home-dev-pookz 7c3e002429 feat: add biliup runtime bootstrap 2026-03-25 03:41:36 +08:00
home-dev-pookz 23230db9a9 fix 2026-03-25 03:00:34 +08:00
home-dev-pookz f01ac59dea 1. 修复快手默认有头模式 2026-03-25 02:53:01 +08:00
home-dev-pookz b415613b38 1. 重构快手
- 图文增加
- 封面增加
2. 快手skill,cli支持
2026-03-25 02:25:02 +08:00
home-dev-pookz 90845f50ad 重构douyin上传,增加douyin图文
修复douyin视频封面上传
2026-03-24 23:02:22 +08:00
home-dev-pookz fe6e9f4af9 重构douyin上传,增加douyin图文
修复douyin视频封面上传
2026-03-24 21:33:15 +08:00
home-dev-pookz b8b3107881 1. 更新最新可用的b站上传工具
https://github.com/biliup/biliup/releases/tag/v1.1.29
2026-03-05 14:55:34 +08:00
home-dev-pookz ab2dbb0de6 1. 抖音我这边遇到必须上传封面的情况,自动设置第一个推荐封面(大概率首帧) 2025-12-09 15:01:04 +08:00
AlleriaandGitHub 2f957b79ff Merge branch 'main' into main 2025-11-17 17:39:19 +08:00
Deroino 81b71d023d feat(wechat-channel): add draft upload functionality for video channel
- Add isDraft parameter to TencentVideo class to control publishing behavior
- Modify click_publish method to click "保存草稿" instead of "发表" when isDraft is true
- Update post_video_tencent function to accept and pass is_draft parameter
- Add is_draft parameter to /postVideo API endpoint to receive frontend data
- Add "视频号上传草稿" checkbox in frontend that appears only for video channel platform
- Update defaultTabInit to include isDraft property with default value false
- Include isDraft in publishData sent to backend API
- Implement proper URL checking for draft vs publish success confirmation

The new functionality allows users to save WeChat Channel videos as drafts
instead of immediately publishing them when the checkbox is selected.
2025-11-13 09:12:39 +08:00
Deroino 0cdd088d97 fix(playwright): Prevent launch error when LOCAL_CHROME_PATH is empty 2025-11-13 05:08:06 +08:00
听风 de2389c9b1 feat: 增加Docker容器环境 2025-11-06 14:50:19 +08:00
Leo Song d20fc13631 添加注释 2025-11-03 15:19:41 +08:00
Leo Song 0235e89b9e 重新支持抖音封面设置 2025-11-03 15:17:50 +08:00
Leo Song 2f95a5512c wait for elements 2025-10-24 16:31:43 +08:00
Leo Song 2dbedcc206 如果链接不可用,关掉弹窗 2025-10-18 13:07:27 +08:00
AlleriaandGitHub adb6af2a71 Merge branch 'main' into feature/douyin-productlink 2025-10-17 11:01:12 +08:00