视频矩阵内容分发系统的脚本代码,基于python3,旨在借助playwright实现自动化发布视频到各个社交媒体平台 | python作品分享 -大发黄金版app下载
自己开发的一个基于playwright的模拟登陆脚本,希望和大家一起交流。
matrix是视频矩阵内容分发系统的脚本代码,基于python3,旨在借助playwright实现自动化发布视频到各个社交媒体平台
💡feature
目前支持的中国主流社交媒体平台:
- 抖音
- 视频号
- 小红书
- 快手(todo)
登录(脚本)
自动上传(脚本)
cookie 管理(file)
国外平台proxy 设置(todo)
多线程上传(todo)
slack 推送(todo)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
playwright install chromium
一、修改conf.py配置文件
base_path = 根目录绝对路径(用于文件路径处理)
redis_conf : redis配置(用于记录登录二维码,登录状态等)
mysql_conf : mysql配置(用于登录或发送视频数据库队列)
二、导入数据库
主要用于登录和发送数据库队列。
将database目录中的matrix.sql导入数据库,修改数据其中mx_video表中就是要上传的视频数据,可以修改为本地的文件
至于表中的account_id,请结合自己创建的用户表处理。
mx_video:视频数据表
create table `mx_video` (
`id` bigint(20) unsigned not null auto_increment,
`flag` tinyint(3) unsigned not null default 0 comment '标识:1:大于100m;0:其他',
`title` varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci not null default '' comment '视频标题',
`description` varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci not null default '' comment '视频描述',
`tag` varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci not null default '' comment '视频标签',
`img` varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci not null default '' comment '视频预览图',
`video_path` varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci not null default '' comment '视频地址本地完整路径',
`created_at` int(10) unsigned not null comment '创建时间',
`updated_at` int(10) unsigned not null comment '更新时间',
`deleted_at` int(10) unsigned null default null comment '删除时间',
primary key (`id`) using btree
) engine = innodb auto_increment = 2 character set = utf8mb4 collate = utf8mb4_unicode_ci row_format = dynamic;
mx_user_login_queue:模拟视频创作平台登录队列表
create table `mx_user_login_queue` (
`id` bigint(20) unsigned not null auto_increment,
`account_id` bigint(20) unsigned not null default 0 comment '用户id',
`type` tinyint(3) unsigned not null default 0 comment '登录类型:1:抖音;2:视频号',
`status` int(10) unsigned not null default 0 comment '队列状态:0:未执行;1:执行中;2:执行成功;3:执行失败',
`created_at` int(10) unsigned not null comment '创建时间',
`updated_at` int(10) unsigned not null comment '更新时间',
`deleted_at` int(10) unsigned null default null comment '删除时间',
primary key (`id`) using btree
) engine = innodb auto_increment = 2 character set = utf8mb4 collate = utf8mb4_unicode_ci row_format = dynamic;
mx_publish_video_queue:视频发布队列表(注意要发布视频要先登录)
create table `mx_publish_video_queue` (
`id` bigint(20) unsigned not null auto_increment,
`account_id` bigint(20) unsigned not null default 0 comment '用户id',
`type` tinyint(3) unsigned not null default 0 comment '上传类型:1:抖音;2:视频号',
`video_id` bigint(20) unsigned not null default 0 comment '视频id',
`publish_date` varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci not null default '' comment '发布时间',
`location` varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci not null default '' comment '定位城市',
`status` tinyint(3) unsigned not null default 0 comment '状态:0:未开始;1:发布中;2:发布成功;3:发布失败;4:未登录发布失败',
`created_at` int(10) unsigned not null comment '创建时间',
`updated_at` int(10) unsigned not null comment '更新时间',
`deleted_at` int(10) unsigned null default null comment '删除时间',
primary key (`id`) using btree
) engine = innodb auto_increment = 4 character set = utf8mb4 collate = utf8mb4_unicode_ci row_format = dynamic;
三、需使用supervisor守护进程完成脚本的管理
1、登陆脚本
python3 user_queue_login.py 1 //此字段是登陆类型:1:抖音;2:视频号;3:小红书
注:小红书登录需要开启flask的请求服务,用来获取小红书的x-s和x-t
需要将xhs-api目录下的app2024.py服务先启动。
2、视频上传脚本
python3 publish_video_queue.py 无需参数,不区分平台,按用户发布顺序逐一发布视频
四、如何获取数据
1、登录二维码可以从redis中直接取值(base64的数据),具体获取数据方式请查阅代码
2、有时候抖音登录会出现需要发送短信的情况,也已经处理,可以从缓存获取标识来处理
3、登陆的cookie都存在各个平台代码(如抖音:douyin_uploader)目录的account目录(如果没有请先创建)中,请注意需要有目录权限
五、有任何问题请在issue中留言。
六、参考项目:
仓库地址: