Recording Transcript Player

by Evgeniy Branitsky
5
4
3
2
1
Score: 35/100
New Plugin

Description

This plugin has not been manually reviewed by Obsidian staff. Play recordings with synchronized sibling SRT, VTT and DOTe transcripts.

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

Release

Recording Transcript Player

Recording Transcript Player is an Obsidian plugin for opening audio files with a synchronized sibling SRT transcript.

Usage

Place an .srt, .vtt, or DOTe .json file beside an audio file with the exact same basename:

Recordings/2026.05.09.m4a
Recordings/2026.05.09.srt

Open the audio file in Obsidian. The plugin shows the native audio player above the transcript, highlights the active subtitle during playback, and lets you click timestamps to seek.

Supported subtitle formats:

  • SRT blocks with optional Speaker: text
  • WebVTT cues with optional <v Speaker> voice spans
  • DOTe JSON exports with a lines array containing startTime, endTime, speakerDesignation, and text

Supported audio extensions by default:

m4a, mp3, wav, aac, flac, ogg, opus

Matching Rules

The plugin only checks sibling subtitle files with the same basename as the audio file. By default, it checks .srt, .vtt, then .json; the extension priority can be changed in settings.

If no matching subtitle file is found, the audio player still opens, and the transcript area shows as audio-only.

While the plugin view is focused, press Cmd+F (Ctrl+F on Windows/Linux) to open the in-transcript search bar. The query is matched as a case-insensitive substring against both speaker labels and cue text. All matches are highlighted inline, and a counter (current/total) is shown.

  • Enter jumps to the next match, Shift+Enter jumps to the previous one
  • The current match is highlighted in the accent colour and auto-scrolled into view
  • Esc (or the close button) clears the query and hides the bar

Search does not seek audio. Clicking a cue's timestamp still seeks playback as before.

Settings

  • Subtitle extension priority
  • Supported audio extensions
  • Auto-scroll transcript
  • Resume playback
  • Open matched recordings in the plugin view
  • Fall back to the default media view when no subtitle (sub-option)
  • Save position interval

Playback progress is saved per vault-relative audio path. Saved positions in the final 10 seconds of a recording are not restored.

The automatic plugin-view option is disabled by default. When enabled, opening a supported audio file normally in Obsidian will switch that active tab to the transcript player only if a matching sibling subtitle file exists.

The sub-option "Fall back to default media view when no subtitle" (also disabled by default, and only effective when the parent option is enabled) controls what happens when a supported audio file is loaded into the plugin view but has no matching subtitle. When enabled, the file is moved to Obsidian's default media view instead.

Privacy

This plugin does not make network requests, send telemetry, or use Node/Electron-only runtime APIs. Audio and subtitle files are read through Obsidian vault APIs.

Mobile Support

The plugin is intended to work on Obsidian desktop and mobile. It uses browser audio APIs and Obsidian-safe vault APIs only.

Dependency Policy

Runtime dependencies are intentionally zero. Development dependencies are limited to TypeScript, esbuild, Obsidian types, and test/build tooling.

Development

npm install
npm test
npm run build

The build emits main.js at the repository root. Obsidian loads main.js, manifest.json, and styles.css.

Release

Tagged releases should attach:

  • main.js
  • manifest.json
  • styles.css

Before submitting to the Obsidian community plugin registry, test the release assets in a clean vault and confirm the version tag matches manifest.json.