Media Transcript
approvedby semsevens
Play video/audio with synchronized, clickable transcripts. Click any line to seek; playing line auto-highlights. - This plugin has not been manually reviewed by Obsidian staff.
Media Transcript
Play video/audio inside Obsidian with a synchronized, clickable transcript read from a same-named subtitle file next to the media. Click any line to seek; the playing line auto-highlights and scrolls into view.
This is a transcript player, not a transcriber — it does not do speech-to-text. Transcripts are produced by external tools; drop a
.json/.srt/.vttnext to your media and it just works.
Features
- Opens
.mp4 / .m4a / .mp3 / …and automatically loads a same-named subtitle in the same folder (.json/.srt/.vtt). If none exists, it shows a hint and does nothing else. - Video: side-by-side layout — a large player on the left, transcript on the right, with a draggable divider (the ratio is remembered).
- Audio: a slim top control bar (title + player + speed) with a full-width transcript.
- Playback speed
0.75×–2×(video and audio). - Click to seek, auto-highlight: click a line to seek and play; the current line highlights.
- Right-click menu: play from here / copy timestamp / copy text; click a timestamp to copy it.
- Per-speaker labels (colored
S0/S1…) when a JSON transcript has 2+ speakers. - Export the current transcript to a Markdown note.
Installation
Via BRAT
- Install the BRAT plugin.
- Command palette →
BRAT: Add a beta plugin for testing. - Enter
semsevens/obsidian-media-transcript. - Enable Media Transcript in Community plugins.
Manual
Download main.js, manifest.json, and styles.css from the
latest release into
<vault>/.obsidian/plugins/media-transcript/, then enable the plugin.
From source
npm install
npm run build
cp main.js manifest.json styles.css <vault>/.obsidian/plugins/media-transcript/
Subtitle format
Place <media-name>.<marker>.{json,srt,vtt} next to the media, e.g. lecture.mp4 →
lecture.whisper.json. JSON follows the Whisper verbose_json shape:
{ "segments": [ { "start": 0.0, "end": 4.2, "text": "…", "speaker": 0 } ] }
Settings
- Subtitle folder — leave empty to use each media file's own folder.
- Subtitle priority — order of filename
[marker]tags when several subtitles exist.
If a media extension is already handled by Obsidian core or another plugin, use the Open in Media Transcript file-menu item or the Open current media file in transcript view command to open it in this view.
License
MIT
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.