Video Learning Notes
approvedby zhangchi lu
Open timestamp-linked local videos in a focused pop-out player. - This plugin has not been manually reviewed by Obsidian staff.
Video Learning Notes
Video Learning Notes connects timestamped Obsidian learning notes to local video files. Open the associated video in a focused pop-out player, jump from a note timestamp to the source moment, and locate the nearest evidence line from the player.
[!IMPORTANT] This is a Windows desktop plugin. It plays videos that already exist on your computer. It does not transcribe videos or generate learning notes by itself.
Features
- Open the video associated with the active note from the ribbon, note header, or command palette.
- Reuse one draggable Obsidian pop-out player instead of opening duplicate tabs.
- Seek to absolute millisecond timestamps with configurable pre-roll.
- Verify the local file against the SHA-256 identity recorded in the note.
- Locate the closest timestamped evidence line from the player.
- Copy the current playback time as an Obsidian timestamp link.
- Fall back to a token-protected loopback Range server when Electron rejects direct
file://playback.
Requirements
- Windows 10 or Windows 11.
- Obsidian Desktop 1.11.7 or later.
- A local video note containing the Video Learning Notes frontmatter contract.
- A browser-playable local video format. H.264 video with AAC audio is recommended.
Example metadata:
---
video_note_schema: "1.0"
video_asset_id: "sha256:<64-lowercase-hex-characters>"
video_source_path: "D:\\Videos\\lesson.mp4"
video_source_uri: "file:///D:/Videos/lesson.mp4"
video_sha256: "<64-lowercase-hex-characters>"
video_size_bytes: 123456789
video_mtime_ms: 1767225600000
video_duration_ms: 60000
video_title: "Lesson"
---
If the same video file is moved or restored elsewhere, update
video_source_path and video_source_uri so both point to the new absolute
Windows location. The file must still match the identity recorded by the note.
A different, edited, or re-encoded video requires a newly generated note
contract so that timestamps cannot silently point to unrelated content.
Example timestamp:
[00:15](obsidian://video-learning-notes?video=sha256%3A<hash>&start_ms=15000&end_ms=20000&ref=item%3Aexample)
Companion Skill and complete workflow
The optional
create-video-learning-notes Skill
provides the other half of the workflow: it analyzes a local video, extracts
timestamped evidence, organizes a total-part learning note, links verified
knowledge cards, and publishes the compatible Markdown into an Obsidian Vault.
The full loop is:
Local video -> companion Skill and CLI -> timestamped Obsidian note
-> this plugin -> replay, locate, edit, and review
The plugin remains standalone. You may write the note manually or generate it with another tool as long as it follows the metadata and timestamp contract above. See the companion repository's English workflow or 中文完整工作流.
Installation
Obsidian Community Plugins
- Open Settings → Community plugins in Obsidian.
- Select Browse and search for Video Learning Notes.
- Select Install, then Enable.
Official listing: https://community.obsidian.md/plugins/video-learning-notes
BRAT beta
- Install BRAT from Obsidian's Community plugins browser.
- In BRAT, select Add beta plugin.
- Enter
https://github.com/luzcmax/video-learning-notes-plugin. - Enable Video Learning Notes in Obsidian.
Manual installation
Download main.js, manifest.json, and styles.css from the matching GitHub release. Copy them to:
<your-vault>/.obsidian/plugins/video-learning-notes/
Reload Obsidian, then enable the plugin under Settings → Community plugins.
Usage
- Open a compatible video note.
- Select the video icon in the left ribbon or note header, or run 打开当前笔记的关联视频 from the command palette.
- Drag the pop-out player next to the main Obsidian window.
- Select any timestamp link to seek to its source moment.
- Select Locate note in the player to return to the nearest evidence line.
The player intentionally uses manual Locate note navigation. The former continuous follow-note control was removed because it added visual movement without improving the core study workflow.
The plugin UI currently follows the language used by the generated note workflow and is primarily Chinese. English localization is planned.
Privacy and security disclosure
- The plugin accesses only the external local video path explicitly recorded in an opened note.
- The plugin does not upload videos, audio, note content, file paths, or usage data.
- The plugin contains no telemetry, analytics, advertisements, accounts, or paid services.
- If direct local-file playback is rejected, the plugin starts an HTTP Range server bound only to
127.0.0.1on a random port. - The loopback server serves only the verified current video and requires a random per-session token.
- The loopback server stops when the player closes or the plugin unloads.
Obsidian community plugins inherit Obsidian's desktop file permissions. Review the source before installing if your vault contains sensitive information.
Development
npm ci
npm test
npm run typecheck
npm run build
The production build writes main.js. Generated bundles are attached to GitHub releases and are not committed to the source branch.
Support and security reports
Use GitHub Issues for reproducible bugs and feature requests. For a suspected vulnerability, use the repository's private security advisory feature and avoid posting sensitive paths or note contents publicly.
License
MIT © 2026 luzcmax
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.