抖音直播弹幕检测谷歌浏览器插件

功能简介

这是一个 Chrome 浏览器插件,用于检测和显示抖音直播间的弹幕消息。它会在页面上创建一个可拖动的半透明悬浮窗,实时显示直播间的弹幕内容。

主要特点

  • 实时监控: 每秒检测新的弹幕消息
  • 可拖动悬浮窗: 用户可以自由调整位置
  • 半透明界面: 不会完全遮挡直播画面
  • 防重复机制: 避免同一条弹幕重复显示
  • 简洁界面: 显示时间、用户名和弹幕内容

使用方法

  • 在抖音直播页面点击插件图标
  • 点击"开始监听"开始检测弹幕
  • 可以拖动窗口到合适位置
  • 点击"停止监听"停止检测

5. 点击"清空记录"清除历史记录

  • 点击右上角 × 关闭悬浮窗

技术实现

  • 使用 Chrome Extension API
  • 通过 DOM 操作获取弹幕内容
  • 使用 JavaScript 实现拖拽功能
  • 采用数组存储机制防止重复

这个插件提供了一个简单直观的方式来监控和查看直播弹幕,适合需要关注直播互动的用户使用。

1. 插件结构

douyin-danmu-detector/

├── manifest.json      // 插件配置文件

├── background.js      // 后台脚本

├── content.js         // 内容脚本

└── popup.js          // 弹出窗口脚本

2. 核心功能实现

2.1 manifest.json 配置

{
  "manifest_version": 3,
  "permissions": [
    "activeTab",      // 访问当前标签页
    "storage",        // 存储数据
    "tabs",          // 操作标签页
    "scripting"      // 注入脚本
  ],
  "host_permissions": [
    "*://*.douyin.com/*"  // 允许在抖音网站上运行
  ]
}

2.2 弹幕检测实现 (content.js)

1. 创建悬浮窗

function createFloatWindow() {
    // 创建一个可拖动的半透明悬浮窗
    // 包含:标题栏、控制按钮、弹幕显示区域
}

2.弹幕监听机制

function startDanmu() {
    // 每秒检查一次新弹幕
    setInterval(() => {
        // 查找弹幕元素
        const danmuItems = document.querySelectorAll('.webcast-chatroom___item');
        
        // 遍历处理每条弹幕
        danmuItems.forEach(item => {
            // 提取用户名和内容
            const spans = messageDiv.querySelectorAll(':scope > span');
            nickname = spans[1].textContent;  // 第二个span是用户名
            content = spans[2].textContent;   // 第三个span是内容
        });
    }, 1000);
}

3.防重复机制

// 使用数组存储已处理的弹幕ID
const processedDanmuArray = [];
const MAX_PROCESSED_DANMU = 50;  // 最多存储50条

// 添加新弹幕ID时
processedDanmuArray.unshift(danmuId);  // 添加到开头
if (processedDanmuArray.length > MAX_PROCESSED_DANMU) {
    processedDanmuArray.pop();  // 删除最旧的
}

2.3 界面交互

  • 拖动功能
    // 实现标题栏拖动
    titleBar.addEventListener('mousedown', dragStart);
    document.addEventListener('mousemove', drag);
    document.addEventListener('mouseup', dragEnd);

  • 弹幕显示

    function addDanmuToList(nickname, content) {
        // 创建弹幕显示元素
        div.innerHTML = `
            <span>${new Date().toLocaleTimeString()}</span>
            <span>${nickname}</span>
            <span>${content}</span>
        `;
        // 新消息添加到顶部
        danmuList.insertBefore(div, danmuList.firstChild);
    }

3. 特色功能

  • 半透明悬浮窗
    background: rgba(255, 255, 255, 0.8);  // 80%透明度

  • 消息类型区分
  • 普通消息:灰色
  • 礼物消息:红色
  • 进入消息:绿色
  • 关注消息:蓝色
  • 自动清理机制
  • 最多显示100条弹幕
  • 最多记录50个已处理ID

4. 使用方法

  • 安装插件后,点击插件图标
  • 在抖音直播页面会出现悬浮窗
  • 点击"开始监听"开始检测弹幕
  • 可以拖动标题栏移动位置
  • 点击"清空记录"清除历史记录
  • 点击"停止监听"停止检测
  • 点击右上角 × 关闭悬浮窗

5. 注意事项

1. 弹幕选择器依赖于抖音网页结构

  • 需要定期检查选择器是否需要更新
  • 内存管理:
  • 限制存储的历史弹幕数量
  • 定期清理过期数据
  • 性能优化:
  • 使用 requestAnimationFrame 代替 setInterval
  • 减少 DOM 操作频率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值