# DanmuTV
**Repository Path**: cyh92/DanmuTV
## Basic Information
- **Project Name**: DanmuTV
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-11-02
- **Last Updated**: 2026-10-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DanmuTV - 弹幕影视播放器
🎬 支持弹幕的桌面影视播放器
基于 MoonTV 二次开发,专注于弹幕体验的跨平台桌面应用
---
## 📝 项目说明
DanmuTV 是基于 [MoonTV](https://github.com/MoonTechLab/LunaTV) 进行二次开发的影视播放器。
**核心特点**:
- 💬 **完整的弹幕系统** - 支持 Bilibili 弹幕加载、本地弹幕批量导入、关键词屏蔽、密度控制、智能合并
- 📦 **弹幕批量加载** - 支持批量上传本地 XML 弹幕文件,智能识别集数,自动匹配
- 💾 **弹幕下载导出** - 批量下载B站/第三方平台弹幕,支持XML/SRT/ASS格式,方便备份和分享
- 🔀 **弹幕智能合并** - 自动合并重复弹幕,显示合并次数角标,根据次数智能增大字号
- ⚡ **性能优化** - 智能采样系统,自动处理超大弹幕量(10万+),确保流畅体验
- � **视频源优选** - 启动时自动测速排序,优先启用最快的 20 个视频源,24 小时缓存
- 🎥 **系统级全屏** - 真正的全屏体验,完全隐藏任务栏和菜单栏
- �🖥️ **桌面应用优化** - 专为 Electron 打包优化,本地数据存储
- 🎨 **精致 UI 设计** - 优化的弹幕控制面板和用户交互界面
- 🛡️ **智能去广告** - 自动跳过片头、片尾及片中广告
- 💾 **本地数据存储** - 使用 localStorage,完全离线可用,隐私安全
## 🎬 使用指南
### 1️⃣ 搜索与播放
- 在首页搜索框输入影视名称
- 点击搜索结果查看详情页
- 选择剧集或分辨率开始播放
- 支持多个视频源切换
### 2️⃣ 加载弹幕
- **方式一**: 粘贴视频链接(自动解析)
- **Bilibili**: 支持普通视频、番剧、电影链接
- **芒果TV**: 如 `https://www.mgtv.com/b/336727/8087768.html`
- **腾讯视频**: 如 `https://v.qq.com/x/cover/53q0eh78q97e4d1/x00174aq5no.html`
- **优酷**: 如 `https://v.youku.com/v_show/id_XNTE5NjUxNjUyOA==.html`
- **爱奇艺**: 如 `https://www.iqiyi.com/v_bb6gsxzz78.html`
- **巴哈姆特动画瘋**: 如 `https://ani.gamer.com.tw/animeVideo.php?sn=41645`
- 系统会自动识别平台并获取弹幕
- **方式二**: 输入 BV 号
- **方式三**: 输入 CID(B站视频ID)
- **方式四**: 上传本地 XML 弹幕文件
- **单文件模式**: 选择一个弹幕文件,加载到当前集
- **批量模式**: 选择多个弹幕文件,自动从第1集开始匹配
- 文件按名称排序后依次对应第1、2、3...集
- 切换集数时自动加载对应的弹幕文件
- 配置自动保存,刷新页面后仍然生效
- **方式五**: 使用弹幕下载功能批量获取
- 在用户菜单中选择"弹幕下载"
- 支持粘贴 B站/第三方平台(芒果TV、腾讯、优酷、爱奇艺、巴哈姆特)链接
- 自动解析所有集数,支持多选下载
- 可选择导出格式:XML、SRT(字幕)、ASS(字幕)
- 下载后的文件保存到本地指定目录
- 支持番剧 Season ID 和 Media ID
### 3️⃣ 弹幕设置
- **关键词屏蔽**: 过滤包含特定词汇的弹幕
- **密度限制**: 控制每秒显示的弹幕数量
- **最大数量限制**:
- 设置弹幕总数上限(默认2万条)
- 超过限制时自动智能采样,避免卡顿
- 建议范围:5000-50000条
- 遇到超大弹幕量(如10万+)时自动优化
- **时间对轴**: 调整弹幕与视频的时间差
- **弹幕合并**:
- 自动合并一段时间内完全相同的弹幕
- 合并后在弹幕右下角显示数量角标(如 ×₅)
- 根据合并数量自动增大字号(1-10次:1.2倍,11-50次:1.5倍,51+次:2.5倍)
- 可自定义合并时间窗口(默认5秒)
- 支持开启/关闭弹幕合并功能
- **片头片尾跳过**: 自动记忆并跳过固定片段
- 所有设置自动保存,下次观看自动应用
### 4️⃣ 其他功能
- **播放记录**: 自动记录观看进度,支持断点续播
- **收藏管理**: 收藏喜爱的影视作品,快速访问
- **豆瓣推荐**: 浏览豆瓣高分电影和电视剧
- **视频源管理**: 自定义添加、编辑、启用/禁用视频源
- **视频源优选**:
- 启动时自动对所有视频源进行速度测试
- 智能排序,优先启用响应最快的 20 个视频源
- 测速结果缓存 24 小时,避免重复测试
- 支持手动执行视频源测速
- **广告过滤**: 自动跳过片头、片尾广告和片中广告
- **全屏优化**: 真正的系统级全屏,隐藏任务栏和菜单栏
## ✨ 主要特性
### 🎯 核心功能
- **多源搜索** - 整合多个影视资源站点,一键搜索
- **优选视频源** - 启动时自动测速排序,默认启用最快的 20 个源
- **在线播放** - 无需下载,即点即播
- **弹幕支持** - 完整的弹幕加载、过滤、配置系统
- **播放记录** - 自动记录进度,断点续播
- **收藏管理** - 收藏喜爱的影视作品
- **豆瓣推荐** - 集成豆瓣电影推荐
- **智能去广告** - 自动跳过片头、片尾及片中广告
### 💬 弹幕系统
- **多种加载方式**
- Bilibili CID
- Bilibili BV 号(支持分 P)
- Season ID / Media ID(番剧/电影)
- 直接粘贴 B站链接自动解析
- **第三方平台链接**:
- 芒果TV (`mgtv.com`)
- 腾讯视频 (`v.qq.com`)
- 优酷 (`youku.com`)
- 爱奇艺 (`iqiyi.com`)
- 巴哈姆特动画瘋 (`ani.gamer.com.tw`)
- 本地 XML 弹幕文件(支持单文件和批量上传)
- 批量上传多个文件时,自动按集数匹配
- 文件按名称排序对应第1、2、3...集
- 智能识别文件名中的集数信息
- **弹幕下载功能**(支持批量下载和格式转换)
- 支持 B站链接/ID(BV/md/ss/ep/CID)
- **支持第三方平台链接**(芒果TV、腾讯视频、优酷、爱奇艺、巴哈姆特)
- 可批量解析番剧所有集数
- 支持多种格式导出(XML/SRT/ASS)
- 可自定义弹幕显示时长(SRT/ASS格式)
- 支持 Shift 键范围选择和鼠标拖动批量选择集数
- 自动保存到本地指定目录
- **智能过滤与优化**
- 关键词屏蔽(支持多个关键词)
- 密度限制(控制每秒弹幕数量)
- 时间对轴调整
- **弹幕合并**(重复弹幕智能合并)
- 自动合并一段时间内完全相同的弹幕
- 合并后在弹幕右下角显示数量角标(Unicode 下标格式)
- 根据合并数量智能增大字号:
- 1-10 次合并:1.2 倍字号
- 11-50 次合并:1.5 倍字号
- 51 次以上:2.5 倍字号
- 支持自定义合并时间窗口(默认 5 秒)
- 可随时开启/关闭弹幕合并功能
- **自动保存**
- 弹幕加载历史自动记录
- 下次打开自动加载上次弹幕
- 片头片尾跳过配置保存
- 弹幕合并设置保存
- **⚠️ 发送弹幕说明**
- 播放器支持在弹幕输入框发送弹幕
- **注意**: 发送的弹幕仅本地可见,不会同步到 Bilibili
- 发送的弹幕会在本次播放期间显示,刷新页面后消失
- 这是一个本地功能,用于测试和个人娱乐
### 🚀 视频源优选系统
- **自动测速** - 启动时自动对所有视频源进行速度测试
- **智能排序** - 根据响应速度自动排序,优先使用最快的源
- **默认启用** - 自动启用测速结果前 20 个最快的视频源
- **缓存机制** - 测速结果本地缓存 24 小时,避免重复测试
- **手动测速** - 支持在视频源管理页面手动执行测速
- **手动控制** - 支持手动启用所有可用视频源或重置为默认
- **实时反馈** - 测速完成后显示 Toast 通知
### 🛡️ 智能去广告
- **片头跳过** - 自动记忆并跳过固定时长的片头广告
- **片尾跳过** - 自动记忆并跳过固定时长的片尾广告
- **配置保存** - 跳过设置自动保存,下次观看自动应用
- **精准控制** - 支持精确到秒的广告时间设置
### 💾 本地存储
- 所有数据保存在本地(`%APPDATA%\DanmuTV`)
- 隐私安全,数据完全掌控
## 📦 安装使用
### Windows
1. 下载 `DanmuTV.exe`
2. 双击运行即可使用(便携版)
3. 或下载安装包 `DanmuTV-Setup.exe` 进行完整安装
### 构建说明
如需自行打包:
```bash
# 安装依赖
pnpm install
# 打包 Windows 版本
pnpm electron:build:win
# 打包文件位于 release 目录
```
## 🎯 技术栈
- **Electron** - 桌面应用框架
- **Next.js 14** - React SSR 框架
- **TypeScript** - 类型安全
- **Tailwind CSS** - UI 样式
- **ArtPlayer** - 视频播放器
- **artplayer-plugin-danmuku** - 弹幕插件
## 🔧 开发
```bash
# 安装依赖
pnpm install
# 开发模式
pnpm dev
# 打包应用
pnpm electron:build:win # Windows
pnpm electron:build:mac # macOS
pnpm electron:build:linux # Linux
```
## 📂 项目结构
```
DanmuTV/
├── electron/ # Electron 主进程
│ └── main.js # 窗口创建、服务器启动
├── src/
│ ├── app/ # Next.js 页面
│ │ ├── page.tsx # 首页
│ │ ├── search/ # 搜索页
│ │ ├── douban/ # 豆瓣推荐
│ │ └── play/ # 播放页(核心)
│ ├── components/ # React 组件
│ │ ├── UserMenu.tsx # 视频源管理
│ │ └── ...
│ └── lib/ # 工具库
│ ├── db.client.ts # 本地存储
│ ├── client-search.ts # 客户端搜索
│ └── default-video-sources.ts # 默认视频源
├── public/ # 静态资源
└── package.json
```
## ⚙️ 配置文件位置
- **Windows**: `C:\Users\<用户名>\AppData\Roaming\DanmuTV\`
- **macOS**: `~/Library/Application Support/DanmuTV/`
- **Linux**: `~/.config/DanmuTV/`
数据包括:
- `danmutv_play_records` - 播放记录
- `danmutv_favorites` - 收藏列表
- `danmutv_search_history` - 搜索历史
- `danmaku_keywords` - 关键词屏蔽
- `danmaku_limit_per_sec` - 密度限制
- `danmutv_video_sources` - 视频源配置
## 🐛 问题反馈
如遇到问题,请提供以下信息:
1. 操作系统版本
2. 软件版本号
3. 详细的错误描述或截图
4. 复现步骤
## ⚠️ 免责声明
- 本软件仅供学习交流使用
- 所有资源来自互联网公开聚合,不存储任何影视资源
- 请遵守当地法律法规,支持正版
- 如有侵权,请联系删除
## 📄 许可证
MIT License
## 🙏 致谢
- 感谢 [MoonTV](https://github.com/MoonTechLab/LunaTV) 提供优秀的基础框架
- 感谢 [ArtPlayer](https://artplayer.org/) 提供强大的播放器
- 感谢所有开源项目的贡献者
---
如果觉得这个项目对你有帮助,请给个 ⭐ Star 支持一下!
Made with ❤️ for Danmaku Lovers