直播间自动发言机器人,抖音机器人评论脚本,直播间自动发言机器人

简介: 多线程架构实现弹幕监听和发送分离支持特殊用户识别和定制回复

下载地址:http://m.pan38.com/download.php?code=ENROLN 提取码:5589

代码功能说明:
多线程架构实现弹幕监听和发送分离
支持特殊用户识别和定制回复
包含关键词触发和随机回复机制
发送频率控制防止被封禁
完整的异常处理和日志记录
可扩展的配置系统支持自定义回复

import requests
import time
import random
import threading
from queue import Queue
from datetime import datetime

class LiveRoomBot:
def init(self, room_id):
self.room_id = room_id
self.session = requests.Session()
self.msg_queue = Queue()
self.is_running = False
self.last_sent_time = 0
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
'Referer': f'https://live.bilibili.com/{room_id}'
}
self.response_list = [
"666", "主播真厉害", "关注了",
"再来一个", "哈哈哈笑死", "前方高能预警"
]
self.special_users = {
"房管": ["欢迎房管大大!", "房管晚上好"],
"主播": ["主播辛苦了", "主播今天状态不错"]
}

def fetch_danmu(self):
    while self.is_running:
        try:
            url = f'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory'
            params = {'roomid': self.room_id, 'room_type': 0}
            resp = self.session.get(url, headers=self.headers, params=params, timeout=10)
            data = resp.json()
            if data['code'] == 0:
                for msg in data['data']['room']:
                    self.process_message(msg)
            time.sleep(3)
        except Exception as e:
            print(f"[ERROR] 获取弹幕失败: {e}")
            time.sleep(10)

def process_message(self, msg):
    nickname = msg['nickname']
    text = msg['text']
    uid = msg['uid']
    timestamp = msg['timeline']

    print(f"[{datetime.fromtimestamp(timestamp)}] {nickname}: {text}")

    # 特殊用户处理
    for role in self.special_users:
        if role in text or role == nickname:
            reply = random.choice(self.special_users[role])
            self.msg_queue.put((uid, reply))
            return

    # 关键词触发
    triggers = {
        "你好": ["你好呀", "欢迎来到直播间"],
        "几点": [f"现在是{datetime.now().strftime('%H:%M')}"],
        "天气": ["今天天气不错", "记得带伞哦"]
    }

    for keyword in triggers:
        if keyword in text:
            reply = random.choice(triggers[keyword])
            self.msg_queue.put((uid, reply))
            return

    # 随机互动
    if random.random() < 0.1:
        reply = random.choice(self.response_list)
        self.msg_queue.put((uid, reply))

def send_danmu(self):
    while self.is_running:
        if not self.msg_queue.empty() and time.time() - self.last_sent_time > 5:
            uid, text = self.msg_queue.get()
            try:
                url = 'https://api.live.bilibili.com/msg/send'
                data = {
                    'bubble': '0',
                    'msg': text,
                    'color': '16777215',
                    'mode': '1',
                    'fontsize': '25',
                    'rnd': int(time.time()),
                    'roomid': self.room_id,
                    'csrf': '',
                    'csrf_token': ''
                }
                resp = self.session.post(url, data=data, headers=self.headers)
                if resp.json()['code'] == 0:
                    print(f"[SENT] {text}")
                    self.last_sent_time = time.time()
                else:
                    print(f"[ERROR] 发送失败: {resp.text}")
            except Exception as e:
                print(f"[ERROR] 发送弹幕异常: {e}")
        time.sleep(1)

def start(self):
    self.is_running = True
    fetch_thread = threading.Thread(target=self.fetch_danmu, daemon=True)
    send_thread = threading.Thread(target=self.send_danmu, daemon=True)
    fetch_thread.start()
    send_thread.start()
    print(f"机器人已启动,监听房间: {self.room_id}")

def stop(self):
    self.is_running = False
    print("机器人已停止")

if name == 'main':
room_id = input("请输入直播间ID: ")
bot = LiveRoomBot(room_id)
bot.start()

try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    bot.stop()

[settings]
room_id = 123456
min_interval = 5
max_interval = 15
response_chance = 0.15

[responses]
default = 你好呀,欢迎来到直播间
default = 666
default = 主播加油
special = 房管: 欢迎房管大大!
special = 主播: 主播今天状态不错

[keywords]
天气 = 今天天气不错哦
时间 = 现在是%H:%M
价格 = 具体价格请查看商品详情

相关文章
|
3月前
|
监控 数据可视化 机器人
直播间自动发言机器人,直播场控机器人免费版,快手抖音小红书哔哩哔哩工具
核心控制器采用异步IO架构,支持同时处理弹幕监控、自动回复和数据统计 实现多平台适配层,通过配置驱动支持抖音/快手/小红书/哔哩哔哩的差异化处理
|
3月前
|
JSON 搜索推荐 机器人
直播间自动发言机器人,抖音快手小红书哔哩哔哩机器人, 自动评论app机器人打字弹幕脚本
多平台支持:整合抖音、哔哩哔哩等平台的自动化操作 智能评论生成:结合视频内容动态生成个性化评论
|
3月前
|
消息中间件 安全 Android开发
抖音私信脚本怎么制作,用autojs?
AutoJS通过Android无障碍服务模拟用户操作,其抖音私信脚本主要依赖三大技术模块: 控件定位层
|
3月前
|
缓存 Windows
错误代码0x8007000d处理方法?
错误代码0x8007000d通常与系统文件损坏、安装介质问题或更新文件缺失相关,以下是综合解决方案:
|
3月前
|
域名解析 缓存 网络协议
steam错误代码105?如何处理的
遇到Steam错误代码105(网络连接问题)时,可按以下步骤解决:
抖音快手直播间打字脚本,直播间发言循环弹幕插件,自动打广告发送文字信息源码
这是一款用于快手直播间的自动化营销工具源码,可实现直播间自动发送非重复随机广告信息、虚拟欢迎语、持续点赞等功能。
|
4月前
|
机器人 数据安全/隐私保护
直播间自动发言机器人插件,抖音快手小红书微博哔哩哔哩,刷屏打字脚本发消息
这些代码展示了直播间自动化发言的基本框架,但实际使用时需要注意:1) 各平台反爬机制不同
|
3月前
|
Android开发 Python
自动养手机权重脚本,抖音看广告刷金币脚本插件, 抖音自动养号脚本app
采用uiautomator2实现Android设备控制,比纯ADB命令更稳定 随机化操作参数包括:观看时长
|
3月前
|
搜索推荐 数据挖掘 API
微店商品详情API开发指南
本文介绍了如何通过微店的micro.item_get接口获取商品详情,涵盖商品信息、描述、图片及销量等数据,并提供Python调用示例,适用于电商开发、数据分析与个性化推荐场景。