video

Video Review Notes

Review exact moments or ranges in local video, add frame annotations, track status, and export standalone HTML, Markdown, CSV, or JSON.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

Video Review Notes lets you review a local video while attaching comments to an exact playback position or a start/end range. Feedback can be categorized as Fix, Question, Check, Good, or Note and tracked as Open or Resolved. A captured review frame can also be annotated with rectangles, arrows, or freehand drawing in six colors so the visual target is clear.

Point reviews appear as timeline pins and range reviews as bars, and selecting a card or marker seeks back to the review start. Review data autosaves in IndexedDB without storing the source video itself. Results can be exported locally as standalone review HTML, Markdown, UTF-8 BOM CSV, review JSON, or clipboard text. The source video is not uploaded to an application server.

Good for

  • Leave correction requests or questions at exact timecodes in a video
  • Attach feedback to a start/end range when a note applies across several seconds
  • Mark an object or area directly on the review frame with shapes or freehand drawing
  • Filter a large review list by feedback type and Open / Resolved state
  • Review source video locally without uploading it to a cloud review service
  • Hand off review results as standalone HTML, Markdown, or CSV without bundling the source video

What it can do

Key capabilities available in this tool.

How to use

  1. Open the tool and choose one local video or drag and drop it into the app.
  2. Play the video, pause where you want feedback, and choose This moment or Range for the review position.
  3. For a range review, set Start here, move forward in the video, then set End here.
  4. Choose Fix, Question, Check, Good, or Note and enter the required comment.
  5. Optionally annotate the captured frame with a rectangle, arrow, or freehand drawing and choose a color, then add the review.
  6. Use review cards and timeline pins/bars to seek back to feedback, then filter, edit, resolve/reopen, or delete items as needed.
  7. Work autosaves locally. Save a review JSON file when you need a portable backup.
  8. When finished, export standalone HTML, Markdown, CSV, or JSON, or copy the review list as text.

Supported

  • Input: one local video. Primary verification targets are MP4 with browser-supported codecs such as H.264/AAC and WebM; MOV and other containers work only when their codecs are supported by the browser.
  • Review position: This moment stores one time, while Range stores start and end times. Range reviews use the start frame as the thumbnail.
  • Review management: Fix / Question / Check / Good / Note, Open / Resolved status, type/status filters, and timeline pins/bars.
  • Frame annotations: rectangle, arrow, or freehand in green, red, yellow, blue, white, or black. Annotation geometry is stored as normalized vector coordinates.
  • Persistence: reviews, resized thumbnails, annotations, filters, and playback settings autosave in IndexedDB. Source-video bytes are not stored, so the source file must be selected again to resume.
  • Output: standalone review HTML, Markdown, UTF-8 BOM CSV, schemaVersion 1 review JSON, and clipboard text. The source video is intentionally omitted from standalone HTML.
  • Runtime networking: no third-party runtime library, CDN, analytics, telemetry, external API, or remote font; CSP uses connect-src 'none' and selected video is not uploaded to an app server.

Limitations and notes

  • Playback depends on the codecs inside the file and browser/OS support, not only the filename extension. Unsupported video is not automatically transcoded with FFmpeg/WASM.
  • Review timing follows browser media playback and seeking; this is not a frame-accurate video editing or conform tool.
  • Standalone Review HTML intentionally omits the source video. Keep or share the source separately when reviewers need to compare notes against playback.
  • Autosave does not store the source video. Re-select it to resume; if filename, size, or modification time differs, the app asks before attaching saved reviews.
  • Projects with very many review thumbnails can be affected by IndexedDB storage limits.
  • Large or high-resolution videos are not duplicated wholesale into JavaScript memory, but playback still depends on browser/device decoding capability and memory limits.
  • Cloud collaboration, accounts, live chat, URL sharing, video editing, and external NLE integration are outside the v1.0.0 scope.

Frequently asked questions

Are the video or review notes sent to a server?

No. The hosted version downloads the app HTML initially, but the selected video is handled as a local File / Blob URL and review editing, frame capture, autosave, and export run in the browser. The CSP uses connect-src 'none'.

Can I attach feedback to a time range?

Yes. Choose Range and set start and end times. The review appears as a bar on the timeline and uses the start frame as its thumbnail.

Can I resume an unfinished review later?

Yes. Reviews, resized thumbnails, annotations, and related state autosave in IndexedDB. The source video itself is not stored, so re-select it when resuming.

Can someone view the review without the Video Review Notes app?

Yes. Export standalone review HTML to view review times/ranges, comments, thumbnails, annotations, and filters without the app. The source video is not included.

Can I review MOV or other video formats?

It depends on whether the browser and OS can decode the codecs inside the file. The app does not transcode unsupported codecs with FFmpeg. MP4 with common browser-supported codecs and WebM are the primary verification targets.

Offline version and source code

Save the standalone HTML to play local video, add point/range reviews and frame annotations, autosave in IndexedDB, and export standalone HTML / Markdown / CSV / JSON without runtime external connections. The source video stays a local File / Blob URL and is not uploaded by the app.

View source on GitHub