【开源】多平台自媒体发布工具MediaPublishPlatform:一键发布到小红书、抖音、Tiktok等9大平台

【开源】多平台自媒体发布工具MediaPublishPlatform:一键发布到小红书、抖音、Tiktok等9大平台

🚀 解放双手!开源多平台自媒体发布工具MediaPublishPlatform:一键发布到小红书、抖音、Tiktok等9大平台

告别重复劳动,让内容发布自动化!基于Python+Playwright+Vue3的跨平台解决方案

✨ 前言

作为内容创作者或自媒体运营者,你是否经常遇到这样的烦恼?

  • 📱 同一个视频需要手动发布到小红书、抖音、B站、视频号、Tiktok… 重复操作N遍
  • ⏰ 想要在最佳时间发布,但总不能半夜爬起来操作
  • 🔐 多个平台账号管理混乱,Cookie过期了都不知道
  • 📊 发布记录分散,数据统计困难

如果你也有这些痛点,那么今天介绍的这个开源项目**MediaPublishPlatform(MPP)** 将是你的救星!

🔥 项目简介

MediaPublishPlatform(MPP) 是一个功能强大的自媒体发布平台,支持9大主流平台的图文和视频内容的批量上传定时发布,帮助内容创作者实现多平台自动化运营。

🎯 核心功能亮点

1. 📱 九大平台全覆盖

  • 国内平台:小红书、抖音、快手、B站、百家号、腾讯视频号
  • 海外平台:TikTok、Instagram、Facebook
  • 新版统一支持:所有平台都基于新版架构,体验一致

2. ⚡ 一键批量发布

  • 选择多个视频/图片文件
  • 勾选多个目标平台
  • 点击一键发布,系统自动完成所有操作
  • 支持多账号轮换,避免单个账号发布频率过高

3. ⏰ 智能定时发布

  • 自定义发布时间,精确到分钟
  • 批量设置发布计划
  • 自动计算最佳发布时间间隔
  • 无人值守,自动执行

4. 🔐 统一账号管理

  • 集中管理所有平台账号
  • 自动Cookie管理,过期自动提醒
  • 可视化登录流程
  • 账号状态实时监控

5. 📊 发布记录追踪

  • 完整的发布历史记录
  • 成功/失败状态清晰标记
  • 详细的错误信息反馈
  • 平台发布统计数据

🎨 功能演示

管理界面

  • 发布中心

账号管理界面

请添加图片描述
请添加图片描述

发布记录

请添加图片描述

平台发布效果展示

演示文件有点大,博客里面装不下。
有兴趣可以进https://github.com/funfan0517/MediaPublishPlatform 中观看。

在这里插入图片描述

🛠️ 技术栈解析

后端技术

  • Python 3.10+:主力开发语言
  • Flask 2.0+:轻量级Web框架
  • Playwright 1.30+:新一代浏览器自动化工具(比Selenium更快更稳定)
  • SQLite 3:轻量级数据库
  • asyncio:异步任务处理

前端技术

  • Vue 3:现代化前端框架
  • Element Plus:优雅的UI组件库
  • Vite 6.4+:极速构建工具
  • Pinia:状态管理

为什么选择Playwright?

  • 🔧 更好的跨浏览器支持:Chromium、Firefox、WebKit
  • 执行速度更快:相比Selenium有明显优势
  • 🎯 更稳定的选择器:内置等待机制,减少元素定位失败
  • 📦 自动下载驱动:无需手动管理浏览器驱动

🚀 快速开始

环境要求

  • Python 3.10+
  • Node.js 18+
  • Chrome浏览器

5分钟快速部署

# 1. 克隆项目git clone https://github.com/funfan0517/MediaPublishPlatform.git cd MediaPublishPlatform # 2. 安装Python依赖 python -m venv venv # Windows venv\Scripts\activate # Linux/Macsource venv/bin/activate pip install -r requirements.txt # 3. 安装Playwright浏览器 playwright install chromium # 4. 初始化数据库 python db/createTable.py # 5. 启动后端cd sau_backend python sau_backend.py # 后端服务运行在 http://localhost:5409# 6. 启动前端(新终端)cd../sau_frontend npminstallnpm run dev # 前端运行在 http://localhost:5173

Windows用户更简单:直接运行项目根目录的 start-win.bat 一键启动!

💡 技术实现亮点

1. 统一登录与验证系统

# 统一登录逻辑 - 自动处理Cookie保存和验证classUnifiedLoginSystem:deflogin(self, platform_type, username):# 1. 根据平台类型获取配置# 2. 启动Playwright浏览器# 3. 导航到登录页面# 4. 实时返回登录状态(二维码/登录链接)# 5. 登录成功后自动保存Cookie# 6. 账号信息入库,标记为有效状态

2. 多平台统一上传架构

# 基类定义统一的发布接口classBaseFileUploader:asyncdefupload(self, file_path, title, content, tags=None):# 统一的发布流程# 1. 启动浏览器,加载Cookie# 2. 导航到发布页面# 3. 填充标题、正文、标签# 4. 上传媒体文件# 5. 设置封面(如支持)# 6. 执行发布操作# 7. 验证发布结果

3. 灵活的配置系统

新增平台支持只需修改一个配置文件:

# sau_backend/newFileUpload/platform_configs.py"new_platform":{"type":10,"platform_name":"new_platform","login_url":"https://new.com/login","creator_video_url":"https://new.com/upload","selectors":{"upload_button":['button:has-text("上传")'],"publish_button":['button:has-text("发布")'],},"features":{"image_publish":True,"title":True,"schedule":True}}

📈 项目优势对比

特性MPP其他类似工具
平台数量✅ 9大平台❌ 通常2-3个
一键多平台✅ 支持❌ 很少支持
定时发布✅ 精确到分钟⚠️ 部分支持
统一账号管理✅ 可视化界面❌ 手动管理
开源免费✅ MIT协议⚠️ 部分收费
扩展性✅ 配置化扩展❌ 需要改代码

🎯 适用场景

1. 个人自媒体创作者

  • 减少重复发布工作,节省时间
  • 合理安排发布时间,提高曝光
  • 多平台数据统一管理

2. 短视频团队

  • 批量处理素材发布
  • 多账号轮换发布
  • 发布计划协同管理

3. 跨境电商运营

  • TikTok+Instagram+Facebook跨平台发布
  • 多语言内容统一管理
  • 时区智能定时发布

4. 开发者学习

  • 学习Playwright自动化技术
  • 了解多平台API集成
  • 参考Flask+Vue3全栈项目架构

🔧 API接口丰富

项目提供了完整的RESTful API,方便二次开发:

# 一键发布多个视频到多个平台 POST /postVideosToMultiplePlatforms {"files":["video1.mp4","video2.mp4"],"platforms":["douyin","xiaohongshu","bilibili"],"title":"视频标题","content":"视频描述","schedule_time":"2024-01-20 18:00:00"}# 获取发布记录 GET /getPublishTaskRecords?page=1&page_size=20# 平台统计数据 GET /getPlatformStats 

🚢 部署方案

方案一:本地开发(推荐初学者)

按照上面的快速开始步骤即可

方案二:Docker部署(适合生产)

# 构建镜像docker build -t mpp .# 运行容器docker run -d -p 5409:5409 -p 5173:5173 --name mpp mpp 

方案三:云服务器部署

# Nginx配置示例 server { listen 80; server_name your-domain.com; location / { root /path/to/dist; index index.html; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:5409; } } 

❓ 常见问题

Q:Cookie过期了怎么办?
A:系统会自动检测,在账号管理页面点击「重新登录」即可更新。

Q:发布失败如何排查?
A:查看发布记录的详细错误信息,通常是网络问题或平台限制。

Q:如何添加新平台?
A:只需修改 platform_configs.py 配置文件,无需改动核心代码。

Q:支持多用户吗?
A:当前版本为单用户,多用户功能在规划中。

🤝 欢迎贡献

这是一个活跃的开源项目,欢迎各种形式的贡献:

  • 🐛 报告Bug:提交Issue
  • 💡 新功能建议:讨论区交流
  • 🔧 代码贡献:提交Pull Request
  • 📚 文档改进:完善使用文档
  • 🌍 平台扩展:添加更多平台支持

贡献流程

  1. Fork 仓库
  2. 创建功能分支
  3. 提交代码
  4. 发起Pull Request

📄 开源协议

本项目基于 MIT 协议 开源,可以自由使用、修改和分发。

💝 支持项目

这个项目是我利用业余时间开发和维护的,旨在帮助更多开发者解决多平台发布难题。如果项目对你有帮助:

  1. 给个Star⭐:这是对我最大的鼓励!
  2. 分享给朋友:让更多人受益
  3. 反馈和建议:帮助项目变得更好
  4. 赞助支持:支持服务器费用和持续开发(项目主页有赞助方式)

🎉 结语(附GitHub地址和源码)

MPP自媒体发布平台真正实现了一次创作,多平台分发的自动化流程。无论你是个人创作者还是团队运营,这个工具都能显著提升你的工作效率。

GitHub地址:👉 https://github.com/funfan0517/MediaPublishPlatform 👈

如果项目对你有帮助,请务必:

  1. Star收藏项目
  2. 🔄 分享给需要的朋友
  3. 🐛 提交Issue反馈问题
  4. 💬 讨论区交流使用经验

有任何问题或建议,欢迎在GitHub Issues中讨论!让我们一起打造更好用的自媒体工具! 🚀


相关标签#Python#Playwright#自媒体工具#自动化#开源项目#Vue3#Flask#内容发布#多平台管理

Read more

【Java-数据结构】Java 链表面试题上 “最后一公里”:解决复杂链表问题的致胜法宝

【Java-数据结构】Java 链表面试题上 “最后一公里”:解决复杂链表问题的致胜法宝

我的个人主页 我的专栏:Java-数据结构,希望能帮助到大家!!!点赞❤ 收藏❤ 引言: Java链表,看似简单的链式结构,却蕴含着诸多有趣的特性与奥秘,等待我们去挖掘。它就像一个神秘的宝藏迷宫,每一个特性都是隐藏在迷宫深处的珍贵宝藏。链表的环,如同迷宫中的循环通道,一旦进入,便可能陷入无尽的循环;链表节点的唯一性与重复性,仿佛迷宫中的岔路,有的道路独一无二,有的却似曾相识;而链表的长度变化,又如同迷宫的动态扩展与收缩。在接下来的题目中,你将化身为勇敢的探险家,深入链表特性的迷宫,运用你的编程智慧,解开一个个谜题。通过检测链表的环、分析节点的重复性以及精准计算链表长度,你将逐渐揭开链表神秘的面纱,领略数据结构背后的奇妙逻辑。 1. 删除链表中等于给定值 val 的所有节点。移除链表元素 题目视图: 相关代码: packageDemo1_22;/** * Created with IntelliJ IDEA. * Description: * User:Lenovo * Date:2025-01-22

By Ne0inhk
C语言指针与数组的深度应用与内存解析

C语言指针与数组的深度应用与内存解析

C语言指针与数组的深度应用与内存解析 💡 学习目标:掌握指针与数组的等价性原理,熟练运用指针操作数组元素,理解二者在内存中的存储本质,解决实际开发中数组遍历、数据拷贝的高效实现问题。 💡 学习重点:指针与数组名的区别、指针算术运算操作数组、二维数组的指针访问方式、内存视角下的数组与指针关系。 48.1 指针与数组的核心关联:本质与等价性 在C语言中,指针和数组的关系密不可分。很多初学者会混淆数组名和指针的概念,实际上二者既有联系又有本质区别。 48.1.1 数组名的“隐式转换”特性 当数组名出现在表达式中时,它会隐式转换为指向数组首元素的指针。我们可以通过一个简单的例子来验证这个特性: #include<stdio.h>intmain(){int arr[5]={10,20,30,40,50};// 输出数组首元素地址printf("数组名arr的地址:%p\n", arr)

By Ne0inhk
【STL库】哈希表的原理 | 哈希表模拟实现

【STL库】哈希表的原理 | 哈希表模拟实现

🫧 励志不掉头发的内向程序员:个人主页  ✨️ 个人专栏: 《C++语言》《Linux学习》 🌅偶尔悲伤,偶尔被幸福所完善 👓️博主简介: 文章目录 * 前言 * 一、哈希概念 * 二、直接定址法 * 三、哈希冲突 * 四、负载因子 * 五、将关键词转为整数 * 六、哈希函数 * 6.1、除法散列法/除留余数法 * 6.2、乘法散列法 * 6.3、全域散列法 * 七、处理哈希冲突 * 7.1、开放定址法 * (1)线性探测 * (2)二次探测 * (3)双重散列(了解即可) * 7.2、开放定址法代码实现 * (1)开放定址法的哈希表结构

By Ne0inhk
Bellman - Ford 算法与 SPFA 算法求解最短路径问题 ——从零开始的图论讲解(4)

Bellman - Ford 算法与 SPFA 算法求解最短路径问题 ——从零开始的图论讲解(4)

目录 前言 为什么Dijkstra算法面对负权值图会有误差??? 举例说明 什么是Bellman -Ford算法? BF算法的核心思想  什么是松弛  为什么最多松弛N-1次? 代码实现 举例  初始状态(dist[] 数组)  第 1 轮松弛(遍历所有边) 第 2 轮松弛 第 3 轮松弛 第 4 轮松弛(最后一次) 第 5 轮检测是否还能松弛(负环判断) 完整代码  BF算法的缺陷 SPFA算法 SPFA算法改进的地方 SPFA算法的原理 完整代码 结尾 前言 这是笔者图论系列的第四篇博客了,非常感谢大家的支持,因为本系列的数据很好看,笔者有了更多动力去更新 . 前三篇URL如下: 1. 图的概念,图的存储,图的遍历与图的拓扑排序——从零开始的图论讲解(

By Ne0inhk