# 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 - 弹幕影视播放器
DanmuTV Logo

🎬 支持弹幕的桌面影视播放器

基于 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