Media Transcript

approved

by 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.

602 downloadsUpdated 21d agoMIT

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 / .vtt next 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.
  • Auto-scroll keeps the playing line centered — not stuck at the bottom edge. Scrolling by hand pauses it for a few seconds so you can read ahead; click a line to resume immediately.
  • Adjustable transcript text sizeA− / A+ in the transcript toolbar, or the slider in settings (10–32 px, remembered).
  • Search the transcript — type in the search box to highlight every match; n/m counter with / (or Enter / Shift+Enter) to step through them, Esc to clear. Searching jumps forward from the line currently playing, and works for CJK text. The Search transcript command focuses the box, so you can bind a hotkey to it.
  • Listen to a video without the picture — the 🎧 Audio only button swaps the video for a slim audio bar and a full-width transcript, keeping playback position and speed; 🎬 Video brings the picture back. Remembered across files and sessions.
  • 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

  1. Install the BRAT plugin.
  2. Command palette → BRAT: Add a beta plugin for testing.
  3. Enter semsevens/obsidian-media-transcript.
  4. 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.mp4lecture.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.
  • Video pane width — how much width the player takes in video mode (dragging the divider updates it too).
  • Transcript font size — text size in px; the toolbar's A− / A+ change the same value.
  • Auto-scroll transcript — keep the playing line centered while playing (on by default).
  • Play videos as audio only — same as the toolbar's 🎧 button, as a default for new views.

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.