Maintained by dashell. Source · Issues · Latest release 1.9.5.
An Obsidian audio and video player for language study. Browse subtitles, practice dictation, record pronunciation, manage vocabulary, and send word lookups to Dashell Reader.
Dashell Reader handles text reading, dictionary lookup, and vocabulary capture. Dashell Player handles local and remote audio/video, subtitles, and listening practice. Dashell RSS helps discover, preview, and save learning materials. The plugins can be installed separately; Player delegates word lookup to Reader.
Previously named LangPlayer. The plugin now uses ID dashell-player; on first
launch it copies settings from the old langplayer data file and keeps that
source file for rollback. Existing langplayer note links, view types, and
hotkeys remain compatible. Word lookup is provided by Dashell Reader
(plugin ID dashell-reader, with support for the previous Reader ID).
- Use one responsive study workspace with listening, dictation, recording, and a collapsible transcript.
- Open local media files from your vault.
- Play remote
http/httpsmedia links. - Automatically load a same-name subtitle beside local media, or keep a manual subtitle association.
- Browse subtitles and jump between sentences while playback stays synchronized.
- Choose fixed or floating playback controls and place them at the top or bottom.
- Select a subtitle word to open its dictionary lookup in Dashell Reader.
- Run sentence dictation with retry and hint flow.
- Save sentence notes and import full subtitle blocks into notes.
- Maintain vocabulary entries and spaced-repetition databases.
- Record pronunciation clips into the vault.
Install Dashell Player from its latest GitHub release, either with BRAT or by copying the release assets into your vault.
- Install and enable BRAT from Obsidian Community Plugins.
- In BRAT, choose Add beta plugin and enter
dashell7/dashell-player. - Install and enable Dashell Player in Community plugins.
- Download
manifest.json,main.js, andstyles.cssfrom the latest release. - Copy them to
.obsidian/plugins/dashell-player/. - Disable the old
langplayerplugin and keep its folder in place for settings migration. - Reload Obsidian and enable Dashell Player in Community plugins.
- Desktop and mobile (
isDesktopOnly: false). Before a public community-store release, run the real-device mobile QA checklist inRELEASE_CHECKLIST.md. - Minimum Obsidian version:
1.11.4. - Subtitle auto-loading reads UTF-8 and UTF-16 (LE/BE) files on both desktop and mobile; element fullscreen may be unavailable on some mobile platforms.
Run npm install once, then npm run dev. The watcher rebuilds TypeScript,
React components, imported CSS, styles-base.css, and manifest.json changes.
After each successful build it generates styles.css and copies only
main.js, styles.css, and manifest.json into the test vault's
.obsidian/plugins/dashell-player/ directory. Existing data.json settings
are preserved. Failed builds are not copied.
By default, the test vault is ../Obsidian-dashell-player-Dev relative to the
project root. To use another vault:
OBSIDIAN_VAULT="/absolute/path/to/test-vault" npm run devIf the default vault is absent, dev builds stay local. An explicitly specified
vault must already contain a .obsidian directory.
Install and enable Hot Reload in the test
vault, and enable Dashell Player. The dev script creates the .hotreload
marker automatically. Saving code then reloads the plugin in Obsidian; this is
a full plugin restart, so playback and other temporary UI state can reset.
If Hot Reload was just installed, reload Obsidian once and enable it in
Community plugins. Stop the watcher with Ctrl+C.
npm run build and npm run package produce release assets locally and never
sync them to a vault.
For development or packaging from source, npm run package builds production assets and recreates release/<version>/
with the three individual files required for an Obsidian GitHub release:
manifest.json, main.js, and styles.css. It also creates a convenience
zip containing the same three files. versions.json stays in the repository
root for Obsidian's version compatibility mapping.
Most UI CSS ships as static styles.css; Dashell Player injects only a small set of
CSS variables for user-configurable subtitle/player styling.
See PRIVACY.md for the full disclosure. In short:
- Dashell Player requests remote media you open. Word pronunciation uses the Web Speech API; see PRIVACY.md.
- No telemetry / analytics. No auto-update. No access to files outside the vault on its own.
Dashell Player is a fork of LangFlow. The locally supplied upstream
project includes an MIT license, whose copyright notice is preserved in this
repository's LICENSE. Components, control-bar interaction, and the
subtitle/dictation flows derive from that project.
MIT — see LICENSE.