Jing77 downloadsVideo notes with timestamp, subtitle import, support mobile device
Smart Media Notes is an Obsidian plugin for serious video and audio note-taking.
It turns Obsidian into a media study workspace where you can:
timestamp-urltimestamp blocks while you studyThis project builds on ObsidianTimestampNotes by @juliang22, then expands it into a full media-notes workflow for language learning, research, lectures, interviews, podcasts, and long-form video study.
This beta focuses on one big goal:
make video note-taking feel native inside Obsidian, including on mobile
The newest workflow highlights:
.m3u8 / HLS playbackyt-dlp direct URL resolution for supported sitesThat last point is especially important.
For some sites, especially YouTube and other page-based video sources, Smart Media Notes can use yt-dlp on desktop to resolve a direct playable stream URL, save that mapping into your vault, and let mobile Obsidian reuse it later.
That means your workflow can become:
Use a timestamp-url block:
```timestamp-url
Amy-Mashed potato and rice noodles | https://www.youtube.com/watch?v=example
```
This creates a reopenable media button in reading mode and gives Smart Media Notes a source to associate with timestamps and subtitles.
While the media is open, run:
Insert timestamp based on videos current play time
This inserts:
```timestamp
00:42
```
You can also add a subhead:
```timestamp
#Key idea
00:42
```
Run:
Import subtitle file for current media
Then you can:
Open:
Open media library sidebar
The library keeps your saved media entries, timestamps, subtitles, RSS subscriptions, vault media folders, and desktop media folders together in one place.
.m3u8 when the stream allows browser/WebView playbackyt-dlptimestamp and timestamp-url code blocksmanifest.json, main.js, and styles.css from the latest release..obsidian/plugins/smart-media-notes
Smart Media Notes in Settings -> Community plugins.git clone https://github.com/NchuYJ/obsidian-smart-media-notes.git
cd obsidian-smart-media-notes
npm install
npm run build
Then copy:
main.jsmanifest.jsonstyles.cssinto:
{your-vault}/.obsidian/plugins/smart-media-notes/
yt-dlp is optional, but it unlocks one of the most useful beta workflows.
For supported HTTP video page links, Smart Media Notes can ask yt-dlp to resolve a direct playable URL and save it into the vault.
This helps when:
yt-dlp on your desktop system.Use yt-dlp direct URL mapyt-dlp executable pathResolve direct URL with yt-dlpYou can also refresh direct URLs from the Smart Media Library.
Resolved direct URLs are saved into:
Subtitles/smart-media-notes-direct-url-map.json
This file lives in your vault, so if your vault syncs across devices, the resolved mapping can sync too.
yt-dlp can resolve into a browser-playable streamIf direct playback fails, you can switch a saved item back to Original mode in the Smart Media Library.
This beta puts much more emphasis on mobile than older versions.
With a synced direct URL map, supported links can open in Obsidian's own player on mobile instead of always jumping to another app.
When the player squeezes the note area, Smart Media Notes can replace that narrow note pane with a timestamp rail so you can:
It makes mobile note review feel closer to desktop:
Imported subtitle files are stored in your vault subtitle folder, Subtitles by default.
Smart Media Notes also writes a sync index:
Subtitles/smart-media-notes-subtitles.json
That lets other devices reconnect media links to subtitle files even when plugin data.json is not synced.
Useful maintenance commands:
Reconcile synced subtitle indexReconcile saved media collectionUse them after deleting or renaming:
yt-dlp.srt and .vttThe library can manage:
You can record audio directly into your vault and insert an inline player:
```voice-bar
Attachments/voice-notes/voice-note-123456.webm
```
Dictation mode is useful for language learning:
Main commands include:
Open media player (copy url or path and use hotkey)Insert timestamp based on videos current play timeConvert selected time text to timestamp blockOpen media library sidebarImport subtitle file for current mediaInsert current subtitle with timestampResolve direct URL with yt-dlpReconcile saved media collectionReconcile synced subtitle indexToggle mobile timestamp railToggle mobile timestamp rail edit modeToggle dictation modeReveal dictation answer (compare with selected text)Start voice recordingStop voice recording and save noteImportant settings:
Use yt-dlp direct URL mapyt-dlp executable pathSubtitle storage folderSubtitle overlaySubtitle browserSubtitle overlay font sizeMobile timestamp railMobile timestamp note previewTimestamp display formatAuto insert library noteInclude subtitle with timestampTimestamp + subtitle templateVideo formatsAudio formatsMedia foldersSmart Media Notes is especially good for:
For a guided walkthrough, see TUTORIAL.md.
npm install
npm run dev
npm run build
Project structure:
src/
main.ts
settings.ts
utils.ts
media/
bilibiliResolver.ts
view/
VideoContainer.tsx
VideoView.tsx
Derived from ObsidianTimestampNotes by juliang22.
MIT