Code Monkey home page Code Monkey logo

solidspoon / dashplayer Goto Github PK

View Code? Open in Web Editor NEW
2.0K 14.0 101.0 9.44 MB

为英语学习者量身打造的视频播放器,助你通过观看视频、沉浸真实语境,轻松提升英语水平。#美剧 #播放器 #听力

Home Page: https://dash-player.solidspoon.xyz

License: GNU Affero General Public License v3.0

TypeScript 97.44% JavaScript 1.23% CSS 0.70% SCSS 0.41% HTML 0.02% Batchfile 0.09% Shell 0.12%
english learning player app bo-fang-qi mei-ju ting-li gpt openai

dashplayer's Introduction

AGPL-3.0 license React Electron TypeScript macOS Windows

安装与使用指南详见 Wiki官网

DashPlayer

一款专为英语学习打造的视频播放器

image

为什么需要 DashPlayer ?

简而言之,我想用英文来学习感兴趣的知识。

在课堂里我一直是面向考试学习英语,不断记忆那些永远也记不住的单词,阅读那些即使翻译成中文也很枯燥的文章。

后来我完成了学校的所有英文课程以后,就开始寻找一些可以让英语学习和娱乐、技能学习相结合的方法。比如阅读感兴趣的英文书籍就是个很好的方法。

但后来通过 TinyfoolSteve Kaufmann 等博主的启发,我意识到观看大量母语人士录制的视频可能是更好的英语学习方式。因此我开发了这个英语视频播放器,到现在我已经通过它观看了几千个小时的视频。在它的帮助下,我的英语水平已经能够自如地通过英语学习各种知识了。为了让更多像我一样想提高英语水平的朋友也能受益,我决定把这个播放器开源出来。

希望这个播放器也能帮助到你!

主要特性

DashPlayer 的目标就是方便你观看英文视频。无论你是想泛听,还是想一句句精听,亦或是想要查询生词,DashPlayer 精心打磨的手感让您始终心情愉悦。

  • 双语字幕:支持机器翻译字幕。只展示中文/英文,或者全部隐藏都可以。
  • 按字幕跳转: 重复当前句,或者跳到上一句,怎么跳都可以。
  • 查词查询:鼠标悬停生词可快速查询,不打断学习进程。
  • 可调整界面尺寸: 界面尺寸可调,适应不同屏幕和学习场景。
  • 记录播放位置: 自动记录上次播放位置,方便下次接着学习。
  • 蓝牙遥控操作: 支持蓝牙遥控,让你随时调整音量、跳转视频,学习更轻松!
  • 夜间模式:内置暗色/亮色主题,适配您的学习环境。
  • AI 字幕:可以使用 AI 为视频生成字幕。
  • 长视频切分:看一段删一段,没有压力。
  • 视频下载:粘贴视频链接,下载视频。

屏幕截图

主页展示播放历史:

image

按字幕跳转,重复当前句,还可以倍速播放

default.mp4

极速查词,点击还能发音

default.mp4

内置下载视频,切割视频,生成字幕等诸多功能:

image

AI 整句学习功能:

image

整句学习功能演示

default.mp4

右键可使用常用功能

default.mp4

安装指南

DashPlayer 目前并没有进行应用签名,因此在安装过程中可能会遭到操作系统的警告,当您遇到安装问题时请阅读下面的指南

Windows

  1. Latest Release 页面下载以 .exe 结尾的安装包
  2. 下载完成后双击安装包进行安装
  3. 如果提示不安全,可以点击 更多信息 -> 仍要运行 进行安装
  4. 开始使用吧!

MacOS

手动安装

  1. Latest Release 页面下载对应芯片以 .dmg 的安装包
  2. 下载完成后双击安装包进行安装,然后将 DashPlayer 拖动到 Applications 文件夹。
  3. 开始使用吧!

故障排除

"DashPlayer" can’t be opened because the developer cannot be verified.

image

点击 Cancel 按钮,然后去 设置 -> 隐私与安全性 页面,点击 仍要打开 按钮,然后在弹出窗口里点击 打开 按钮即可,以后打开 DashPlayer 就再也不会有任何弹窗告警了 🎉

image image

XYZ is damaged and can’t be opened. You should move it to the Trash

XYZ已损坏,无法打开。您应该将其移动到垃圾桶中。

在控制台中输入以下命令:

xattr -c <path/to/application.app>

示例:

xattr -c /Applications/DashPlayer.app

使用指南

目前初次使用需要您配置几个接口,分别为:有道(查单词),腾讯(字幕翻译),OpenAI(为没字幕的视频生成字幕,整句学习功能),具体方法及详细指南请看Wiki

如何播放视频

DashPlayer 支持常见的视频格式、音频格式以及 srt 字幕格式。

  • 使用 Open File 可选择视频和字幕文件
  • 使用 Open Folder 可选择视频所在文件夹

想播放在线视频?

DashPlayer 只支持本地视频文件,您可以用内置的视频下载功能将视频下载到本地。

视频下载目前处于 Beta 版本,如果效果不理想您可以使用视频下载工具:

没有字幕文件怎么办?

可以使用 AI 生成字幕,OpenAI 家的 Whisper 模型生成字幕的效果很好。

按照文档配置好 OpenAI API 后,您可以使用 DashPlayer 内置的生成字幕功能。

下面推荐几个生成字幕的软件,您也可以使用。

如何控制播放

通过鼠标/键盘快捷键控制播放

DashPlayer 默认快捷键如下

  • 上一句:“←” 或 “a”
  • 下一句:“→” 或 “d”
  • 重复当前句:“↓” 或 “s”
  • 暂停/播放:“上” 或 “w” 或 “space”
  • 单句重复:“r”(repeat)
  • 展示/隐藏英文字幕:“e”(english)
  • 展示/隐藏中文字幕:“c”(chinese)
  • 展示/隐藏中英文字幕:“b”(both)
  • 切换主题:“t”(theme)
  • 调整当前句开始时间,提前 0.2 秒:“z”
  • 调整当前句开始时间,延后 0.2 秒:“x”
  • 打开整句学习面板:“?”

具体快捷键可在设置界面查看

image

使用蓝牙手柄控制播放

蓝牙手柄控制的原理

八位堂家的 MicroZero2 蓝牙手柄可当做蓝牙键盘使用。它们非常小巧, 单手握持很舒服, 所以可以用它来操控 DashPlayer。

  • 将手柄通过键盘模式链接到电脑
  • 打开 DashPlayer 设置界面,进入快捷键设置,设置手柄对应按键为快捷键
产品名称 图片
Micro 蓝牙手柄
Zero2 蓝牙手柄

机器翻译

DashPlayer 目前支持使用:

  • 腾讯云翻译字幕
  • 有道云翻译单词(鼠标放置在视频下方字幕行的单词上)
  • OpenAI 字幕识别,整句学习。

实际使用下来价格都比较便宜,具体配置详见文档。

dashplayer's People

Contributors

hxlcw avatar ovo-tim avatar solidspoon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dashplayer's Issues

希望能支持ass字幕

大部分字幕站上提供的双语字幕都是ass格式的,所以要是dashplayer能自动去除ass的样式信息,就能把ass文件当srt文件处理啦!

一种本地查词的思路

云端查词毕竟还是按量付费,量大顶不住,而且内容也没那么灵活

建议使用GoldenDict来作为本地查词,跨平台,Win,Mac,Linux都支持,并且可以通过本地词典文件,自己搭配词典组合,见下:
我搭配出了最好用的词典组合
例如:牛津,朗文等,比有道内容是要丰富不少的

当把一个单词作为参数传递给GoldenDict的时候,GoldenDict会打开对应单词的查询浮窗
image

基于以上原理,通过GoldenDict来实现本地查词可以尝试以下三种方式:
第一种:用户填写GoldenDict的软件路径,dashplayer去调用
第二种:用户自行将GoldenDict添加至环境变量,dashplayer只负责后台发送 GoldenDict 单词命令
第三种:自定义查询接口,dashplay只负责将单词发送到对应的接口,用户自行处理(这个方法其实很怪,是我以前使用一个叫lwt的软件时,调用GoldenDict的方法↓↓↓

939d513065ba6ba8e40688b1ba1d5ab5

这个软件支持自定义查词网址,点击单词,会把单词替换带###占位符访问对应的网址。我就把它指向自己搭建的本地服务器,拿到单词后再调用GoldenDict查词

20d7d1ba54a36f07057e44d7587e008d_720

能否增加一个选词组的功能

功能推荐1:增加一个选词组
咱们的软件用起来很舒服,不过美中不足的是无法选多个单词,当美剧中说了一句话,大部分单词都认识,但是这些单词组成一句话就不太懂了,是否可以考虑增加一个这样的功能。类似下面的功能,这个是之前学习英语一个网站不错的功能。
Screenshot 2024-04-04 at 18 36 39

功能推荐2:是否可通过这个选词组功能,推荐词组相关的美剧视频片段

了解到这个网站有英语片段,https://www.getyarn.io/ ,不知道是否可以用一下,里面可以通过搜索找到非常多的英语美剧片段,来加深我们的理解

切换下一句导致几率性卡死

Prerequisites

mac 平台安装最新版 dashplayer,播放包含 rst 文件的本地英文视频

  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

切换下一句不会导致视频卡死

Current Behavior

视频卡死

Steps to Reproduce

1.点击有方向键或者 d 键切换下一句时,会偶发视频卡死的现象。切换其他视频后,可正常播放。

Possible Solution (Not obligatory)

Context

Your Environment

  • Node version :
  • electron-react-boilerplate version or branch :
  • Operating System and version :
  • Link to your project :

Convert 功能无效,仅生成一个 0KB 的 .mp4 文件

点击Convert后会生成一个 0KB 的 .mp4 文件,长时间等待无数据写入,观察到dash-player.exe CPU和内存占用无波动。再次点击Concert,转换进度条直接100%。继续点击Convert,进度条仍会直接100%。示例如下图:

Convert_Bug

DashPlayer软件版本:4.2.0

系统版本:Windows11 24H2 26120.670

示例视频:TheFallGuy.mkv The.Fall.Guy.2024.2160p.ITunes.WEB-DL.H265.HDR.DDP5.1.Atmos-MOMOWEB[1LOU.ME].torrent

补充说明:路径和文件名无中文或特殊字符。有测试其他mkv电影,同样无法转换。

希望能增加快捷键视频变速功能

除了用于看英语视频,还拿来看其他带字幕的长学习视频。

这个播放器带字幕列表,可以很好地查看、预览当前时间点往后的字幕内容,因此也很适合观看学习长视频。

如果是长视频的话,倍速基本是必须的功能,希望能增加使用快捷键变速视频的功能,谢谢。

升级到最新版本后,从PLAY选项里面打开文件目录,里面的文件看不到了?(实际目录里面是有文件的)是什么原因?

Prerequisites

  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

Current Behavior

Steps to Reproduce

Possible Solution (Not obligatory)

Context

Your Environment

  • Node version :
  • electron-react-boilerplate version or branch :
  • Operating System and version :
  • Link to your project :

自动暂停与全屏

  1. 能不能实现在一句字幕的结尾自动暂停,Language Reactor是有这个功能的,觉得比较好,能不能保持统一
  2. 全屏不够彻底,可以参考Language Reactor一样能关闭右侧字幕列表吗?以及字幕能否在视频画面上,而不是单独的控件与视频分离开来

windows11下没有声音

Summary

windows11下,音量合成器中没有该应用,所以没有声音,换了别的版本也没用

`Ctrl` `-` `=` 组合键缩放界面的相关bug

Bug:

  1. 长按Ctrl键 界面在播放和设置来回切换闪烁,按一下-=就不继续闪了。
  2. 使用Ctrl -可以缩小界面,但是Ctrl =却不能放大界面,需使用Ctrl Shift =放大界面。

期望:

  1. 仅短按Ctrl键切换播放和设置,长按Ctrl键不进行切换。
  2. 可以使用Ctrl -可以缩小界面,Ctrl =放大界面。

点击生成字幕后,点击取消没用,转录计时一直在自增

mac电脑
1.配置了openai代理站的key和地址
2.选择一个视频,点击开始
3.显示正在转录,计时自增ing
4.点击取消,显示toast:发送了取消的请求

尝试1:杀掉app重启,点击取消依然不起作用倒计时依然从上次的计时继续自增
尝试2:删除openaikey和地址,点击取消依然不起作用,倒计时依然从上次的计时继续自增
尝试3:断网,点击取消依然不起作用,倒计时依然从上次的计时继续自增
尝试4:删除文件夹内转录文件,重启app,点击取消依然不起作用,倒计时依然从上次的计时继续自增

双语字幕识别

image
类似这种双语字幕就不能很好地识别了
只能显示中文,不能显示英文字母

求增加在线播放功能

大佬你好,请问有增加在线播放功能的计划吗。

比如支持SMB、WebDAV、jellyfin、Emby等协议就更棒了。

大屏幕扩展屏播放卡顿

软件很棒!作者辛苦了!我这里记录和反馈一个小问题。
window11 64位 专业版
DashPlayer 4.2.3

笔记本连接了一个27寸扩展屏,在扩展屏上使用dashplayer时出现视频卡现象,而如果只是在笔记本的主屏幕上使用,则很流畅。
不清楚什么原因。

加入测试模式

本来想隐藏字幕练练听力,但右边还保留字幕目录就挺尴尬的,虽然可以全屏隐藏,但偶尔又想依赖目录快速跳转,建议测试模式下只保留时间进度信息,不显示字幕
image

字幕调整功能n,m调整句子结尾无效,只有z,x快捷键调整句子开头有效

作者您好!!软件非常好用,感谢您无偿的分享!!!

但有一个小小的bug~~bug如标题,我测试了不同设备,在调整字幕时间戳的功能中,发现只有调整句子开头开始时间有效(快捷键z,x),调整句子结尾时间的操作无效(快捷键n,m)。然后字幕开头的移动遇到边界条件也会出一些问题。我录制了一个视频,希望作者能够看到!链接我放在

【超级会员V5】通过百度网盘分享的文件:2024-07-....mov
链接:https://pan.baidu.com/s/1-GRosRY25XXsBQQZctW4wA?pwd=F11m
提取码:F11m
复制这段内容打开「百度网盘APP 即可获取」

我们非英语母语的人,需要克服的一个难关就是母语者快速的连读,这些连读很难听懂,需要大量练习,所以需要配合dashplay反复精听,但openai生成的字幕总是不那么准,句子没有被准确的分割,需要手动调整。所以希望作者能够关注到这个问题,看看是我的操作不当还是程序需要改善~~~谢谢!!!

实现本地字幕保存

能否使用离线的whisper模型等(类似于github上video_srt这种程序),把字幕转录、翻译全都一次性保存在和视频相同的文件夹中。
或者能不能实现自动识别双语字幕?

字幕翻译只能几十秒。

Prerequisites

  • Using npm
  • Using an up-to-date main branch
  • Using latest version of devtools. Check the docs for how to update
  • Tried solutions mentioned in #400
  • For issue in production release, add devtools output of DEBUG_PROD=true npm run build && npm start

Expected Behavior

Current Behavior

Steps to Reproduce

Possible Solution (Not obligatory)

Context

Your Environment

  • Node version :
  • electron-react-boilerplate version or branch :
  • Operating System and version :
  • Link to your project :

我配置了 open AI的这种key,但是在转入的时候每次只能几十秒就提示错误,这个要怎么解决

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.