325 Commits

Author SHA1 Message Date
home-dev-pookz 1c66b7db4b docs: add MIT license and usage terms 2026-08-20 05:13:54 +08:00
home-dev-pookz 926be742cd fix(tencent): wire collection name into uploader 2026-08-20 04:21:03 +08:00
home-dev-pookz 9dc3cdb6d0 docs: document Weibo and Hupu CLI 2026-08-19 18:39:30 +08:00
home-dev-pookz 9fc5ec487f Merge pull request #270: Hupu uploader 2026-08-19 18:38:34 +08:00
home-dev-pookz d690c22ea6 Merge pull request #269: Weibo uploader 2026-08-19 18:33:46 +08:00
home-dev-pookz 49365fd046 Merge pull request #261: Tencent real-name verification 2026-08-19 18:31:07 +08:00
home-dev-pookz d596e18243 chore: remove unrelated empty design placeholder 2026-08-19 18:24:37 +08:00
home-dev-pookz c643471a98 docs: document current CLI platforms 2026-08-19 18:23:21 +08:00
home-dev-pookz 5b836d5f50 Merge pull request #268: Alipay uploader 2026-08-19 18:15:27 +08:00
home-dev-pookz 43bdcbb2fd Merge pull request #267: Xiaohongshu publish fixes 2026-08-19 18:14:06 +08:00
home-dev-pookz abfc13503d Merge pull request #266: Kuaishou upload fixes 2026-08-19 18:14:02 +08:00
home-dev-pookz 9969770039 Merge pull request #265: Tencent revamped editor fixes 2026-08-19 18:13:51 +08:00
home-dev-pookz 5628f76684 Merge pull request #264: Douyin flow hardening 2026-08-19 18:13:13 +08:00
home-dev-pookz 78c88bc315 Merge pull request #263: Tencent upload retry and timeout fixes 2026-08-19 18:12:58 +08:00
Alleria 1d65ceef11 Merge pull request #271 from carolius123/pr/baijiahao-uploader
feat(baijiahao): rewrite uploader on BaseVideoUploader and add CLI
2026-08-19 18:04:42 +08:00
Alleria dccaeb01c4 Merge pull request #272 from Dessalines39394/fix/star-history-chart
docs: fix broken stargazer chart by migrating to star-history.dera.page
2026-08-19 18:03:31 +08:00
Dessalines39394 b8469e8b56 docs: migrate star history links to star-history.dera.page
The GitHub stargazer API used by star-history.com has become unreliable. This switches the chart/links in README.md to our alternative instance (star-history.dera.page) which requires no API token and works for both API and frontend on the same domain.
2026-08-14 11:42:47 +00:00
suihf f64f712ab1 feat(baijiahao): rewrite uploader on BaseVideoUploader and add CLI
- Rewrite uploader/baijiahao_uploader/main.py: unify on BaseVideoUploader,
  add QR-code cookie login (headless), robust publish-page flow with
  title/desc/tags, thumbnail and collection support
- sau_cli: add 'baijiahao login/check/upload-video' subcommands
- examples: get_baijiahao_cookie_headless.py for headless QR login
2026-08-13 10:04:50 +08:00
suihf 254d0beb20 feat(hupu): add Hupu (虎扑) video uploader
- New uploader/hupu_uploader module: QR-code cookie login, direct publish
  page flow with title/desc/tags, cover upload, zone/declaration selection
- sau_cli: add 'hupu login/check/upload-video' subcommands
- utils/log.py: register hupu logger
2026-08-13 10:01:23 +08:00
suihf 466f81d3be feat(weibo): add Sina Weibo video uploader
- New uploader/weibo_uploader module: passport QR-code cookie login,
  upload flow with title/desc/tags, cover and collection support
- sau_cli: add 'weibo login/check/upload-video' subcommands
- utils/log.py: register weibo logger
2026-08-13 09:58:57 +08:00
suihf 0625f9b13b feat(alipay): add Alipay life account video uploader
- New uploader/alipay_uploader module: QR-code cookie login, upload page
  flow, title/desc/tags fill, thumbnail, collection and publish
- sau_cli: add 'alipay login/check/upload-video' subcommands
- examples: get_alipay_cookie.py and test_alipay_upload.py
- utils/log.py: register alipay logger
- utils/login_qrcode.py: robust QR decode on non-ASCII Windows paths
  (numpy imdecode with cv2.imread fallback)
2026-08-13 09:55:22 +08:00
suihf 233cb990a6 fix(kuaishou): robust desc editor focus, cookie auth and Joyride cleanup
- _focus_desc_editor: locate the description editor with multiple fallback
  strategies instead of a single brittle selector; dump page screenshot/HTML
  on failure for easier selector updates
- cookie_auth: positive verification via the upload button presence, with
  login-page / intro-page / legacy checks as fallbacks
- close_guide_overlay: also remove the Joyride portal and spotlight layers
  that intercept clicks
- add collection_name support to KSVideo
2026-08-13 09:50:21 +08:00
suihf c1617444f9 fix(tencent): adapt to Channels revamped editor and improve publish flow
- Open homepage first, then click the visible 'publish video' entry
  button instead of loading /platform/post/create directly, which gets
  bounced back to the homepage and leaves the form iframe un-mounted
- Detect expired cookies up front by watching for the /login.html
  redirect and the qrconnect iframe
- Drop the redundant confirm_thumbnail_crop call that caused a 5s
  timeout on cover upload
- Select collection by exact name after upload completes (form resets
  selections made while the video is still uploading); keep it
  unselected when no matching name is found instead of picking a
  random one
- Scroll the target option into view and fall back to forced click /
  native dispatch for headless visibility issues
- Tighten short-title length to 7~15 chars to pass platform validation
- Dismiss the occasional 'switch account' dialog that blocks the
  description box and the publish button
2026-08-13 09:49:34 +08:00
suihf ad49ebae7a fix(douyin): harden cover, collection and self-declaration flows
- Set cover via native click with retries; skip gracefully instead of failing the whole order
- Select the collection via its dedicated Semi select with overlay cleanup
- Rewrite self-declaration dialog handling (entry/dialog/option/confirm) and reuse it in upload
- Type description before tags and fill via set_input_files with robust upload input detection
- Keep SMS verification code prompt as a publish-loop guard
2026-08-13 09:48:40 +08:00
suihf 3590c526b0 fix(xiaohongshu): declare repost source and harden cover upload
- check_original_declaration: replace the original checkbox with the
  '来源转载' (repost) declaration flow: open the declaration picker, select
  '来源转载', fill the media name, confirm. Falls back to JS click when the
  element text is wrapped in non-interactive spans
- set_thumbnail: switch to the '上传封面' tab and target the upload-wrapper
  file input instead of the cover-plugin-preview selector; skip gracefully on
  failure and let the video first frame be used
2026-08-13 09:45:44 +08:00
FromTX2SJ 9342a343ab fix(tencent): 上传卡住时要说话 —— iframe 等待 / 重试上限 / 超时
三个问题都是「失败了但看起来像正常」,实测于 2026-08-11。

1. open_upload_page 不等 iframe 加载完
   上传表单在 micro/content/post/create 这个 iframe 里,domcontentloaded
   时它还是空的。紧接着找 input[type=file] 找不到,报「未找到视频号文件
   上传框」——而失败截图上左栏渲染正常、主内容区一片空白,完全不像是
   加载没完成。加一个 networkidle 等待。

2. 找上传框的重试窗口只有 20 秒
   实测这个 iframe 挂上 input 要几十秒。提到 60 秒,并在最终失败时留
   截图 + url + frames:这个错误的可能原因太多(没登录 / 落到首页 /
   iframe 没加载完 / 平台改版),只看错误字符串没法区分。

3. wait_for_upload_complete 是没有出口的 while True  ← 最严重
   上传出错就删掉重传,失败再删再传,永远循环;中间每 2 秒打一行
   「正在上传视频中...」——这条日志和真的在传一模一样,从外面完全分不出。

   实测 172MB / 上行 ~0.5Mbps:每次传到 4 分钟左右报错然后重来,
   循环了近 2 小时也不会停,进程也不会退。用户看到的只有「正在上传
   视频中」,真相是同一段视频被反复上传了 20 多次。

   改成 1 小时超时 + 3 次重试上限,两个都带现场截图报明确的错。
   进度日志从每 2 秒一行降到 30 秒一行并带上已等时长(原来 50 分钟
   刷了 1600 行同样的话)。
2026-08-11 19:55:52 +08:00
tankztz ad2419ef16 fix(tencent): wait for real-name verification 2026-08-10 02:09:51 +08:00
tankztz 8ee7bcdb8a fix(tencent): poll delayed publish entry 2026-08-07 17:04:43 +08:00
tankztz 2dfae17775 fix(tencent): support current video publish page 2026-08-06 18:57:56 +08:00
Alleria 008e4ff66a Update GitHub Sponsors username in FUNDING.yml 2026-07-31 12:55:06 +08:00
Alleria dde0eacb91 Merge pull request #250 from mechanic-Q/feat/douyin-explicit-declaration
fix(douyin): make self-declaration explicit and fail-closed (follow-up to #213)
2026-07-23 08:59:35 +08:00
Alleria 42bd4490ee Merge pull request #253 from snow-moonlight1/fix/tencent-qrcode-extraction
fix(tencent): 适配视频号新版 qrconnect 登录二维码 + cookie_auth 误报修复 + 中文路径二维码解码
2026-07-23 08:58:36 +08:00
snow-moonlight1 662633bb3d fix(tencent): cookie_auth 误报有效 + 上传页登录跳转前置检测
视频号 cookie 失效时, post/create 页面先正常加载, 数秒后才被前端 JS
跳转到 login.html。原 cookie_auth 在跳转前检查, 误报 'cookie 有效',
放行后在上传页报出无关错误(如 '未找到视频号文件上传框')。

- cookie_auth: 等待 8 秒确认是否被踢到 login.html, 外加 qrconnect
  登录 iframe 双保险, 消除误报
- open_upload_page: 同样的跳转检测前置, cookie 失效时报明确错误
  '请重新扫码登录后再发布'
2026-07-23 00:32:57 +08:00
snow-moonlight1 bb1f12977a fix(utils): decode QR image via np.fromfile for non-ASCII paths
cv2.imread cannot open files under non-ASCII (e.g. Chinese) paths on
Windows, so decode_qrcode_from_path() always returned None when the
project lived under a directory like D:\视频全平台同步\, and the
terminal QR re-print silently failed. Use np.fromfile + cv2.imdecode
instead, which handles arbitrary paths.
2026-07-21 14:03:11 +08:00
snow-moonlight1 f4693db9d7 fix(tencent): adapt QR code extraction to new qrconnect login iframe
The WeChat Channels login page now embeds the QR code in an
open.weixin.qq.com/connect/qrconnect iframe whose img.qrcode src is a
relative path (e.g. /connect/qrcode/xxxx) instead of an inline
data:image/ URL. The previous logic looked for a login-for-iframe
frame and only accepted data:image/ sources, so login always failed
with '未获取到视频号登录二维码地址'.

Changes:
- Detect the qrconnect iframe and resolve the relative img src,
  download the QR image via the browser context and convert it to a
  data URL so downstream save/decode logic stays unchanged
- Keep the legacy login-for-iframe and selector fallbacks
- Tolerate QR extraction failure: the login flow now continues and
  lets the user scan directly in the headed browser instead of
  aborting the whole login
2026-07-21 13:42:10 +08:00
lmr f83225c769 fix: move declaration to after runtime flags for positional compat
DouyinVideoUploadRequest dataclass 声明字段位置
被独立审查者(deleg_61d33c80)标记为P1兼容问题:
旧位置调用 ('scheduled', False, False) 会被错位解析。

把 declaration 移到最后,保留旧位置契约。

Previous-Review: deleg_61d33c80
Ref: dreammis/social-auto-upload#213(安全后续修正)
2026-07-18 14:19:42 +08:00
lmr e89d3a875a fix(douyin): require explicit self-declaration 2026-07-18 02:07:55 +08:00
Alleria d32280c98b Merge pull request #243 from sunshine6666666666/feat/bilibili-cover-cli
feat(bilibili): support custom video covers
2026-07-15 13:23:46 +08:00
Alleria 95083e04ac Merge pull request #244 from kelriclink/docs/fix-readme-toc
docs: fix README跳转错误
2026-07-15 13:23:17 +08:00
Alleria 723f703bf7 Merge pull request #245 from anzhen9/main
处理抖音发布视频短信验证码弹窗
2026-07-15 13:20:01 +08:00
anzhen9 395c6434bb feat(douyin): 支持终端交互输入短信验证码 2026-07-11 17:18:13 +08:00
anzhen9 be77aaef8b feat(douyin): 处理短信验证码弹窗 2026-07-11 16:52:42 +08:00
anzhen9 fa59d50030 Revert "feat(douyin): 添加短信验证码弹窗处理并移除多余浏览器参数"
This reverts commit 77b372a56e.
2026-07-11 16:47:04 +08:00
anzhen9 77b372a56e feat(douyin): 添加短信验证码弹窗处理并移除多余浏览器参数 2026-07-11 16:43:37 +08:00
kelriclink 4435d8d174 docs: fix README table of contents links 2026-07-11 15:50:57 +08:00
sunshine6666666666 945bf8e1c0 feat(bilibili): support custom video covers 2026-07-11 10:47:39 +08:00
Alleria 0d3f93e8ac Merge pull request #229 from DerekEXS/fix/douyin-cli-login-overhaul
fix(douyin): overhaul CLI auto-login to handle new creator center UI
2026-06-27 01:16:25 +08:00
Alleria 90b751f791 Merge branch 'main' into fix/douyin-cli-login-overhaul 2026-06-27 01:15:42 +08:00
Alleria d49bdd5daf Merge pull request #234 from Chang-Tao/fix/douyin-cookie-auth
fix(douyin): cookie_auth 容错瞬时跳转,避免间歇性误判失效
2026-06-27 01:11:12 +08:00
OpenClaw Contributor ae72b87141 fix(douyin): overhaul CLI auto-login + supporting fixes (rebased on main)
4 commits squashed into 1 due to force-push via API. See PR #229 body for full description.

Key changes:
- cookie_auth: polling loop (10s) instead of single count() snapshot (race fix)
- cookie_auth: env var DOUYIN_COOKIE_AUTH_HEADLESS for linux server headless override
- _extract_douyin_qrcode_src: 4-tier selector fallback (animate_qrcode_container)
- _wait_for_douyin_login: 2FA detection with warning
- export_douyin_cookie: USERNAME from os.environ
- ks/xiaohongshu uploader: chromium default + cdp_url support for ks
2026-06-25 18:44:55 +08:00