obswebsocket+douyinAPI+python,教你如何三步搭建自己的AI美女直播间,24小时的永动机

2023-12-20 16:38:36

一:什么是AI直播美女直播间

就是在直播的时候通过弹幕进行选择不同的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

文章来源:https://blog.csdn.net/j18423532754/article/details/135108783
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。