【原创】视频号自动上传工具,基于playwright

✅ 一、总体目标

这个脚本是一个自动上传视频到微信视频号平台的程序,具备以下功能:

  • 自动打开浏览器、登录微信视频号平台

  • 监听 Redis 任务队列(zset)

  • 解析任务、上传视频、填写信息并发表

  • 自动重试失败任务、记录日志

  • 支持定时刷新页面保持会话有效


✅ 二、功能模块分析

1. 浏览器初始化

  • 使用 Playwright + 本地用户数据目录(保持登录态)

  • 自动导航到微信视频号发布页面

  • 检测是否已登录,等待用户扫码(最长2分钟)


2. 任务调度与来源

  • 任务来自 Redis 的 upload_tasks zset,结构是:

    {
      "video": "xxx.mp4",
      "desc": "视频描述",
      "title": "短标题"(可选)
    }
    
  • 使用 zrangebyscore 获取“到期”的任务(基于时间戳)

  • 每隔 60 秒检查一次 Redis 是否有新任务


3. 视频上传核心流程

  • 进入上传页面 https://channels.weixin.qq.com/platform/post/create

  • 检查是否已经登录(多个选择器判断)

  • 上传视频(避免触发系统上传框 ✅)

  • 填写:

    • 视频描述(富文本区域)

    • 合集(通过合集标题点击)

    • 视频短标题

    • 勾选选项(如原创、声明等)


4. 发布视频

  • 检查所有必要字段

  • 声明原创

  • 点击“发表”按钮

  • 发表后重新跳转到创建页,准备下一个任务


5. 任务容错与重试机制

  • 每个任务最多重试 3 次

  • Redis 中用 task_fail_count:{video} 来记录失败次数

  • 成功上传后自动从 Redis 移除任务并清除失败记录


6. 会话保活

  • 每 5 分钟刷新页面,保持登录状态,避免 session 过期

  • 会在后台定期执行 self.page.goto(...) 并检测是否仍在登录状态


7. 日志记录和调试

  • 所有操作记录都写入日志文件 upload.log

  • 出现异常时:

    • 自动截图页面 upload_fail_screenshot.png

    • 保存 HTML 源码 upload_fail_page.html

    • 也有 task_start_screenshot.pngtask_start_page.html 供分析用


✅ 三、技术栈总结

技术 用途
Playwright 浏览器自动化
Redis 任务队列
schedule 定时刷新页面
logging 日志记录
JSON 任务结构
Pathlib / time 文件管理与时间调度

✅ 四、适用场景

这个脚本特别适合用于:

  • 批量发布视频到微信视频号

  • 构建无人值守的视频内容发布系统

  • 与其它系统(比如视频生成、剪辑、AI语音)集成做全流程自动化


直接上代码,上传任务从redis获取。

任务生成

import redis
import time
import json
from datetime import datetime ,timedelta
# 初始化 Redis 客户端(默认本地)
r = redis.Redis(host='192.168.250.249', port=6379, db=5, decode_responses=True)

def push_upload_task(video_path, description, title, upload_time):
    task = {
        "video": video_path,
        "desc": description,
        "title": title
    }
    score = int(upload_time.timestamp())
    r.zadd("upload_tasks", {json.dumps(task, ensure_ascii=False): score})

upload_time = datetime.now() + timedelta(minutes=1)  # 10分钟后上传
push_upload_task("output\\2025-04-25\\20250425-8.mp4","今天是2025年04月25日,星期五,农历乙巳年三月二十八,早安。失败不是终点,而是梦想路上温柔的转折。每一次跌倒都是大地在教 你如何更稳地站立,每一道伤痕都在雕刻更坚韧的自己。愿你在风雨中依然相信,所有失去的都会以另一种方式归来。加油","早安是什么意思和含义",upload_time)
from playwright.sync_api import sync_playwright
import time
import schedule
i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三块钱0794

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值