AI+Playwright的社交媒体自动化发布系统,支持自动化将钉钉文档发布到多个社交媒体平台

AI+Playwright的社交媒体自动化发布系统,支持自动化将钉钉文档发布到多个社交媒体平台

doubao_generated_image_4_20250922_155211.png

这是一个基于AI+Playwright的社交媒体自动化发布系统,支持自动化将钉钉文档发布到多个社交媒体平台。也可以手动指定本地的markdown文件进行发布。

代码已经开源。

建议直接查看github上的README文件,本文档展现的就是README文件的内容,可能已经过时。

github网址

iamtornado/playwright-automation

🎯 项目背景

作为一名技术内容创作者,我深深体会到多平台内容分发的痛点,我经常发布文章,之前的做法是先在钉钉知识库中写原始文档,然后下载为markdown文件,将markdown文件发给AI,然后AI生成封面图、话题标签、摘要和短标题,然后将封面图插入钉钉文档的首行,再次下载钉钉文档,然后发布到各个平台,对于微信公众号,还得先通过mdnice转换格式,然后复制到微信公众号编辑器中,其它平台,基本都支持直接导入markdown文件,对于抖音快手小红书等平台,还需要通过图文形式发布,整个过程枯燥无味还容易出错。

📊 现实挑战:

  • 每次发布一篇文章,需要手动复制到8-10个平台(微信公众号、知乎、优快云、51CTO、博客园、抖音、快手、小红书、哔哩哔哩等)

  • 各平台格式要求有差异:微信公众号限制120字摘要,正文不能超过5万字,知乎支持长文,抖音快手小红书等平台不支持超过1千字的长文,需要通过图文形式发布

  • 重复性工作消耗大量时间:每次发布需要1-2小时,效率低

💡 解决方案: 基于这些痛点,我决定开发一个智能化的内容分发系统。通过Playwright浏览器自动化技术,模拟人工操作,结合豆包AI和Gemini的强大的大模型能力,实现了:

  • 一键发布:从钉钉文档到多平台的完全自动化流程,只需指定钉钉知识库中文档的标题和要发布平台,即可自动完成发布。也可以手动指定本地的markdown文件进行发布。

  • 智能适配:AI自动生成符合各平台要求的摘要、话题标签、短标题和封面图,并自动将生成的封面图插入到钉钉文档的首行,然后自动下载更新后的钉钉文档为markdown文件,最后发布到指定平台。

  • 格式优化:自动处理字数限制、图片压缩、内容清理(我发现51CTO对于推广审核非常严格,需要对内容进行清理以便通过审核)等技术细节

  • 错误处理:完善的异常处理和重试机制,确保发布成功率

  • 支持trace功能:支持trace功能,可以查看浏览器操作过程,方便调试复盘

🚀 价值体现: 原本需要1-2小时的手动发布工作,现在只需几分钟即可完成,效率提升90%以上,让创作者能够专注于内容创作本身,而不是重复的发布操作。

✨ 主要功能

  • 🚀 多平台自动发布:支持微信公众号、知乎、优快云、51CTO、博客园、抖音、快手、小红书、哔哩哔哩等平台

  • 🤖 AI内容生成:集成豆包AI和Gemini(二者选一),支持文章总结、话题标签生成、短标题生成、文章封面图生成

  • 📄 智能内容处理:自动从钉钉文档获取内容(下载为本地markdown文件),智能清理和格式化,并自动将生成的封面图插入到钉钉文档的首行,然后自动下载更新后的钉钉文档为markdown文件,最后发布到指定平台。

  • 🎯 字数统计优化:自动优化文本长度,符合各平台要求(主要是微信公众号的120字摘要限制和抖音小红书等平台标题限制20字以内)

  • 🔧 模块化设计:独立的SDK和工具模块,易于维护和扩展

特别说明

  • 当前,利用我开发的脚本将文章发布到微信公众号时,不会直接发布,而是保存为草稿,然后你需要手工发布,这是为了确保内容符合要求,而且我暂时还没有解决自动扫码的问题。另外,对于合集,代码中已经固定了合集名称为AI,这个以后我会持续优化

  • 由于微信公众号cookie有效期只有几天,所以有时需要手动扫码登录,未来计划支持自动将微信公众号登录页面的二维码发送到指定邮箱,然后手动扫码登录

  • 对于知乎,话题标签是固定的,为"LLM", “AI”, “大模型”

  • 对于csdn、51CTO、博客园、bilibili,文章的分类是固定的,未来我计划利用AI自动判断文章应该选择哪一个或哪些分类

📁 项目结构

playwright-automation/
├── 📁 dingtalk_sdk/                    # 钉钉API SDK模块
│   ├── dingtalk_sdk.py                # 主要SDK代码
│   ├── example_usage.py               # 使用示例
│   ├── requirements.txt               # 依赖包列表
│   └── README.md                      # SDK详细文档
├── 📁 wechat_mp_sdk/                  # 微信公众号SDK模块
│   ├── wechat_mp_sdk.py               # 主要SDK代码
│   ├── example_usage.py               # 使用示例
│   └── README.md                      # SDK详细文档
├── 📁 markdown_cleaner_sdk/               # Markdown清理工具
│   ├── markdown_cleaner.py            # 主要清理代码
│   ├── example.py                     # 使用示例
│   └── README.md                      # 工具文档
├── 📁 word_counter_sdk/               # 字数统计SDK模块
│   ├── simple_word_counter.py         # 主要统计代码
│   ├── example_usage.py               # 使用示例
│   └── README.md                      # SDK详细文档
├── 📄 test_social_media_automatic_publish.py  # 🎯 主要发布脚本
├── 📄 doubao_ai_image_generator.py     # 豆包AI图片生成模块
├── 📄 conftest.py                      # pytest配置文件
├── 📄 pyproject.toml                   # 项目配置文件
└── 📄 README.md                        # 项目说明(本文件)

🔧 核心模块

1. 社交媒体自动发布系统 (test_social_media_automatic_publish.py)

主要功能:

  • 🌐 多平台支持:微信公众号、知乎、优快云、51CTO、博客园、抖音、快手、小红书、哔哩哔哩等

  • 📝 智能内容处理:自动从钉钉文档获取内容并格式化,并自动将生成的封面图插入到钉钉文档的首行,然后自动下载更新后的钉钉文档为markdown文件,最后发布到指定平台。

  • 🤖 AI集成:支持豆包AI生成文章总结和封面图片,并自动将生成的封面图插入到钉钉文档的首行

  • 🎯 标签管理:根据平台特性自动调整话题标签数量

  • 📊 字数优化:自动检查和优化文本长度

支持的平台:

  • 微信公众号(图文消息)

  • 知乎(文章发布)

  • 优快云(博客发布)

  • 51CTO(技术博客)

  • 博客园(技术文章)

  • 抖音(图文消息)

  • 快手(图文消息)

  • 小红书(图文消息)

  • 哔哩哔哩(专栏)

2. 钉钉API SDK (dingtalk_sdk/)

专门用于封装钉钉开放平台服务端API的Python SDK。

主要功能:

  • 🔐 自动获取和刷新access_token

  • 👤 查询用户信息(根据userid获取unionid)

  • 🔍 搜索钉钉知识库文档

  • 📄 获取文档详细信息(包括URL)

3. AI功能模块

豆包AI图片生成 (doubao_ai_image_generator.py)
  • 🎨 从Markdown文件生成文生图提示词

  • 🖼️ 自动生成文章封面图片

  • 📐 支持多种图片比例(16:9、1:1、4:3等)

  • 🎯 支持思考模式、极速模式等AI模式选择

AI文章总结功能
  • 📝 使用豆包AI生成120字以内的文章总结

  • 🔍 自动从剪贴板读取内容

  • ✅ 智能长度验证和优化

  • 🔗 集成在主发布脚本中

Gemini图片生成功能(可选,默认使用豆包AI)

注意:Gemini图片生成功能目前无法使用,我发现直接丢一个markdown文件给gemini,让其根据内容生成合适的封面图是行不通的,gemini会提示无法生成图片,除非主动提供文生图提示词。我在刚开发这个项目的时候,Gemini图片生成功能是可以使用的,而且生成的封面图我是很满意的。但是最近突然不行了,我也不知道为什么。

  • 🌟 使用Google Gemini生成高质量图片

  • 📁 自动下载到指定目录

  • 🎯 可作为封面图片自动生成选项

4. 微信公众号SDK (wechat_mp_sdk/)

主要功能:

  • 🔑 自动获取和管理access_token

  • 📤 上传永久素材(图片、语音、视频等)

  • 🛡️ 完整的错误处理机制

  • 💡 简单易用的API设计

5. 辅助工具模块

字数统计SDK (word_counter_sdk/<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值