Skip to content

About

Marker-first video review → Premiere XML timeline. Mark frames, comment, review playlists, answer agent question-lists. ~3 MB, macOS & Windows.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Repository files navigation

Mark Player 0.26.2 beta, by VETKA lab

Mark Player icon

Marker-first video review: open a file, mark the moments, land them in Premiere — frame-accurately.

⬇ Download for macOS (Apple Silicon) · Intel Mac · Windows

mark_player_promo_16x9_v4_25fps.mp4

Versioning

MAJOR.MINOR.PATCH — the second number is the major line, the third is the minor step. A major release moves the hundredths (0.26 → 0.27); every shipped change moves the thousandths (0.26.1, 0.26.2, …). Two different builds must never carry the same stamp: package.json, tauri.conf.json (version + window title), Cargo.toml and the README download links move together, and appVersion.test.ts keeps them in sync.

Screenshots

Marking in action: flags on the timeline, comment window, playlist Flags on the timeline, comment window, playlist — marking in action.

File → Export menu File → Export: SRT subtitles, JSON sidecar, single-video XML, playlist XML.

Imported playlist timeline in Premiere Pro The payoff: playlist XML opens in Premiere as a ready timeline — clips, cuts and colored markers on the exact frames. File → Import the .xml; DaVinci takes the timeline the same way, markers arrive via Markers (EDL).

Why: twenty years in three megabytes

Mark Player logo study with Marilyn Monroe

Before I became an editor, I worked in a bookstore, in the art albums section. That's where I fell in love with one album: Bert Stern's last shoot of Marilyn Monroe.

The approved frames went to Vogue. But I couldn't let go of the ones she struck out herself — some with lipstick, some as if with a nail.

And here I am, a film editor with twenty years behind me — and all those years, the same pain: "fix it right there, at the second minute, where she's smiling." No timecode. I waited for YouTube, with its billions, to make a comment pinned to the timeline. Then I realized: programmers just don't know our pain.

I'm not a programmer. But I knew: SRT subtitles already carry a timecode. And from a timecode you can build XML for any editing suite. It seems simple — yet somehow nobody had done it. Until now.

Mark Player is twenty years in three megabytes.

Marilyn marked the frames she didn't like. Now any producer marks right in the player — what they love and what they don't. Press M, type a couple of words, and the comment marker lands in Premiere on the exact frame where it was placed. No back-and-forth. No lost timecodes.

Русская версия — ниже.

До того как стать режиссёром монтажа, я работал в книжном магазине, в отделе альбомов по искусству. Там я влюбился в один альбом: Берт Штерн, последняя съёмка Мэрилин Монро.

В Vogue ушли одобренные кадры. А меня не отпускали те, что она перечеркнула сама: одни помадой, другие будто гвоздём.

И вот я — режиссёр монтажа уже с двадцатилетним стажем, и все эти годы одна и та же боль: «поправь вот там, на второй минуте, где она улыбается». Без таймкода. Я ждал, что YouTube с его миллиардами сделает комментарий, привязанный ко времени. Потом понял: программисты просто не знают нашей боли.

Я не программист. Но я знал: в субтитрах SRT уже есть таймкод. А из таймкода можно сделать XML для любой монтажки. Кажется, это просто, но почему-то никто этого еще не сделал, до этого момента.

Mark Player — это двадцать лет в трёх мегабайтах.

Мэрилин метила кадры, которые ей не нравились. Теперь любой продюсер отмечает прямо в плеере и то, что нравится, и то, что нет. Нажал M, написал пару слов, и маркер с комментарием встанет в Premiere ровно на тот кадр, где его поставили. Без переписки. Без потерянных таймкодов.

Illustration above: a Mark Player logo study with Marilyn Monroe — a tribute to this story, not the brand. The app icon stays the plain cross.

Download

Grab the latest beta from Releases:

  • macOS Apple Silicon — Mark.Player_0.26.2_aarch64.dmg
  • macOS Intel — Mark.Player_0.26.2_x64.dmg
  • Windows 10/11 — Mark.Player_0.26.2_x64-setup.exe (installer) or Mark.Player_0.26.2_x64_en-US.msi

Installation (macOS)

Download the .dmg, drag Mark Player to Applications, then open it.

Mark Player is not notarized by Apple yet, so the first launch is blocked with "Apple could not verify Mark Player is free of malware". Unblock it once:

  1. Double-click the app — macOS shows the dialog, press Done.
  2. Open System Settings → Privacy & Security, scroll to Security — there is an Open Anyway button for Mark Player.
  3. Click Open Anyway and confirm. It asks only once.

Or do it in Terminal:

xattr -cr "/Applications/Mark Player.app"

Downloaded 0.24.1 or older and macOS says "…is damaged"? Those builds shipped without a bundle signature (fixed in 0.25.3). Download the new version, or repair the installed one:

codesign --force --deep --sign - "/Applications/Mark Player.app" && xattr -cr "/Applications/Mark Player.app"

Many open-source video tools ship without notarization the same way (IINA, mpv).

Installation (Windows)

Run the setup.exe from Releases. The build is unsigned, so SmartScreen warns on first launch: More info → Run anyway. It asks only once.

Updates

Help → Check for Updates checks from inside the app, downloads and restarts — no need to revisit GitHub. On launch the app also checks quietly and tells you only if an update is waiting.

Bonus of in-app updates: a build downloaded by the app itself never gets the macOS quarantine flag, so there is no Open Anyway dance after updating — only the very first install from .dmg needs it.

Run from source

npm ci
npm run dev        # http://127.0.0.1:1424
npm test           # vitest
npm run tauri:dev  # native shell (needs main player closed: single pilot socket)
npm run tauri:build

Native bundles land in src-tauri/target/release/bundle/{dmg/*.dmg,nsis/*.exe,msi/*.msi}.

What it does

  • Markers: ★ Favorite (F), ✗ Negative (N), [ / ] In / Out (I / O), · Comment (M, opens comment window). Flags on the timeline, drag to move, double-click a flag to delete.
  • Scale (bottom): ruler + flags + in/out, click seeks, playhead follows.
  • Marker pill (top): ★ ✗ [ ] 💬 — creation buttons over the picture.
  • Volume: ↑ / ↓ (5% steps), OSD percent top-right, M is Comment — mute lives in the Audio menu.
  • Shuttle: J back / K stop / L forward (JJ/LL = ×2), ← / → one frame (probe → rVFC estimate → 25 fps fallback), Shift + ← / → proportional step (1% of video length, 0.5–5 s), ⌘ + ← / → jump to prev / next marker, Home / End jumps.
  • Export: File → Export or ⌘S (SRT), JSON sidecar, XMEML timeline XML for one video or the whole playlist (Premiere / DaVinci-ready sequence). Review Notes (.txt) for humans — and Visual Review Notes: a frame from every marker (JPEG ≤ 960px) packed as self-contained .html + .txt + folder. Markers for DaVinci Resolve travel as EDL (Timelines → Import → Timeline Markers from EDL) — XMEML markers are Premiere-only. Every export answers: Saved: <file> / No markers to export. / Export failed: <reason>. Markers store locally (vetka_player_lab_markers_v1); files leave only via save dialog.
  • Gate: only honest failures open a refusal — heavy containers (mkv/avi/…) get an EN Pro-engine offer toast, current video keeps playing. The Open dialog lists native formats only, by design.
  • Playlist review: panel ⌘L — files back-to-back with auto-advance, New button for the next pick; the whole playlist exports as one package (XML + SRT + JSON + Review Notes + frames). File → Open Playlist also eats Beta bundles (camera_calibration.json, scene_proposals.json) — anything else gets an honest Cannot open toast.
  • Agent question-playlists: an agent hands one JSON of question-brackets (vetka.cut.question_playlist/1); import writes them as native markers right away, no buttons to press. Answers come back as replies in the Comments window (see player_playground/docs/AGENT_DATA_MANIFEST.md).
  • Comments & Markers windows: every marker with its author (M opens with the comments-only filter); In–Out Play scissors with no watched-gate; selection sum [timecode] under the playhead.

Shortcuts

Keys Action
Space Play / pause
J / K / L Shuttle back / stop / forward (double-tap = ×2)
← / → ±1 frame; Shift = proportional step (1% length, 0.5–5 s)
⌘← / ⌘→ Jump to prev / next marker
↑ / ↓ Volume ±5%
I / O Mark in / out
F / N Favorite / negative marker
M Comment marker + comment window
⌘Z / ⇧⌘Z Undo / redo marker change
Edit → Clear Clear comments / favorites / negatives / in-out / all (confirm + undo)
Q Preview quality cycle
Home / End Go to start / end
Esc Exit fullscreen
⌘O / ⌘S / ⇧⌘O Open file / export SRT / import SRT
⌘L Playlist
⌘F / ⌘I Fullscreen / media info

Modules (SPORA)

The player is a spore: markers, export and playlist ship inside; agent chat, scanner, THALAMUS board and CUT NLE attach later as modules.

Agent chat is a separate module (not bundled): when it ships, it arrives as a one-button upgrade, same as the future CUT Player (FFprobe/FFmpeg build with render-by-markers).

License

MIT — see LICENSE.

About

Marker-first video review → Premiere XML timeline. Mark frames, comment, review playlists, answer agent question-lists. ~3 MB, macOS & Windows.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages