就是在直播的时候通过弹幕进行选择不同的ai人物进行跳舞的直播间大致就是
可以看到左边是有提示,根据观众刷礼物的不同进行选择某一个AI人物进行展示,怎么通过技术手段实现呢
其实还是很简单的,基本就是python+obs直播软件进行实现,大致过程就是python连接抖音的直播间号进行爬虫技术爬到想要的内容,然后进行python控制obs进行不同的直播
python爬虫部分,这部分主要是文件有点多,不好全部展示出来,其实自己去网上搜是很大一堆的
大致的过程就是我们抖音网页版的直播间是有个地址的
比如:https://live.douyin.com/301836777852
有了这个地址,对于会爬虫的人来说就很简单了,爬礼物爬进场爬点赞都是很简单的
控制obs进行播放不同的场景,不多说,直接展示代码
import time
import re
from obswebsocket import obsws
import obswebsocket
class Liwu:
def __init__(self):
self.liwilist = []
self.last_played_gift=None
# 连接 OBS Studio
host = "127.0.0.1"
port = 4455
password = "NqjLB8LcXxMgPcPr"
self.ws = obsws(host, port, password)
self.ws.connect()
def addlist(self, liwuname):
self.liwilist.append(liwuname)
def addlist2(self, liwuname):
if self.liwilist.__len__()>2:
self.liwilist.insert(1,liwuname)
else:
self.liwilist.append(liwuname)
def bofanddd(self,current_liwu,ff,fff):
pattern = re.compile(r"\[礼物\] .+?: (.+?) \* \d+")
match = pattern.search(current_liwu)
user_name = match.group(0)
liwu=match.group(1)
print("")
if self.last_played_gift==liwu:
print("已经播放过啦")
return
self.last_played_gift=liwu
print("礼物来啦" + current_liwu)
# 更换文字
file_path = "D:\\ZKY\\work\\AI直播\\1.txt"
# 修改文件内容
content = "感谢" + user_name
# 保存修改后的内容到文件,使用 UTF-8 编码
with open(file_path, 'w', encoding='utf-8') as file:
file.write(content)
# 将场景设置为“场景2”
self.ws.call(obswebsocket.requests.SetCurrentProgramScene(sceneName=ff))
while True:
time.sleep(0.1)
status = self.ws.call(obswebsocket.requests.GetMediaInputStatus(inputName=fff)).datain
if status["mediaState"] == "OBS_MEDIA_STATE_ENDED":
print("播放完毕了")
self.ws.call(obswebsocket.requests.SetCurrentProgramScene(sceneName='a1'))
break
def bofan(self):
while True:
if not self.liwilist:
time.sleep(2)
print("礼物列表为空,无法播放场景")
else:
print("当前礼物列表有" + str(self.liwilist.__len__()))
current_liwu = self.liwilist.pop(0)
pattern = re.compile(r"\[礼物\] .+?: (.+?) \* \d+")
match = pattern.search(current_liwu)
liwu=match.group(1)
print("当前展示礼物"+current_liwu)
if liwu == "小心心":
self.bofanddd(current_liwu,"a2","video2")
elif liwu == "大啤酒":
self.bofanddd(current_liwu,"a3","video3")
elif liwu == "棒棒糖":
self.bofanddd(current_liwu,"a4","video4")
elif liwu == "加油鸭":
self.bofanddd(current_liwu,"a5","video5")
elif liwu == "鲜花":
self.bofanddd(current_liwu,"a6","video6")
elif liwu == "玫瑰":
self.bofanddd(current_liwu,"a7","video7")
elif liwu == "嘉年花":
self.bofanddd(current_liwu,"a8","video8")
else:
self.bofanddd(current_liwu,"a7","video7")
time.sleep(1)
这里是经过一些处理的,比如不让重复一直播放一个视频,需要进行重新排队,采用先进先出
搭建obs的直播间,采用不同的场景进行搭建,搭建完成后和python进行结合控制就ok了
哈哈哈,AI,AI,AI其实和AI并没什么关系
就是闲着无聊搞的
但是我看很多抖音上很多人在直播这种类型的,还很多人看,我心想多难我就开始自己弄
没想到,好处是美女可以自己定制
关注我的微信公众号:程序员PG