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

这是一个基于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设计

最低0.47元/天 解锁文章
655

被折叠的 条评论
为什么被折叠?



