一、项目背景
偶然看到一篇公众号文章,通过代码方式自动生成微信聊天记录,然后自动合成视频,用这种流水线方式一天最多能产出上百条短视频,在DY和B站里有不少此类视频,流量还都不错。搜索过后发现还有不少此类成熟的产品在售卖,最低包月9.9元。
本着来都来了的心态,自己也想用文章提示的技术思路折腾的实现下,于是有了此次小项目。技术采用python现有成熟的库实现,由于本人还是个技术小白,所有代码看起来比较幼稚,望各位大佬谅解!废话不多说开干。
二、可行性分析
先分析下整个项目流程。
1、找到能添加微信聊天记录的页面(大佬可以自己搭一个页面)
2、利用selenium库自动化添加聊天记录
3、分步保存聊天记录页面
4、利用opencv库将页面合成视频
三、最小实现方案
先做个最简单两人纯文字的聊天流程
1、先逐个对话生成图片
2、将图片合并成短视频
最后实现的效果如下:
四、实现方式及难点解决
python 3.12
1、逐个对话生成图片代码
import base64
import time
from selenium import webdriver
import re
from selenium.webdriver.common.by import By
#读取需要显示的文本
txt_path=''#你收集的段子txt文件
touxiang1=''#用户1头像
touxiang2=''#用户2头像
jietu_path=''#截图保存位置
sucai1 = open(txt_path, 'rb')
sucai2 = sucai1.readlines()
duanzi = []
answ = []
for line in sucai2:
duanzi.append(str(line, 'utf-8'))
#去除换行回车符,将问题和回答切分成不同的字符
for i in range(len(duanzi)):
duanzi[i] = re.sub(r'[\n\r]', '', duanzi[i])
resp = re.split("?", duanzi[i]) #注意问号的中英文符号切换
for j in range(2):
answ.append(resp[j])
#1.创建Chrome或Firefox浏览器对象,这会在电脑上在打开一个浏览器窗口
browser = webdriver.Chrome()
#2.通过浏览器向服务器发送URL请求。如果能打开百度网站,说明安装成功。
browser.get("https://app.ippapp.com/screenchat/")
#微信聊天界面外观设置
def waiguan_set():
# 点击手机外观
input0 = browser.find_element(By.CSS_SELECTOR, '#tab-0')
input0.click()
# 选择浅色风格
input1 = browser.find_element(By.CSS_SELECTOR,
&