Async video

Async video is a screen or webcam recorder built into Ithura. Record a short clip from any wiki page, task description, or task comment, and it drops in as an inline HTML5 video that anyone with access can play back. No Loom subscription, no external service, no link sent to a third party. Every byte stays in your workspace's own object store.

Why it's here

A 90-second video is worth ten messages of back-and-forth in a comment thread. The catch has always been the tool: install Loom, remember to sign in, share a link that lives on someone else's server, hope the video doesn't outlive your subscription. Async video removes that friction entirely. It's the same button you already use for images.

When to use it

  • A 90-second bug walkthrough that saves ten messages in a comment.
  • An onboarding wiki page with a 3-minute product tour.
  • A retro doc with the presenter's take under each theme.
  • A design review that leaves the reasoning attached to the mock.
  • Anything you'd normally reach for Loom for.

How to record

Three ways to start a recording:

  1. From the editor. Open any wiki page, task description, or comment editor and click the Video button on the toolbar.
  2. From anywhere. Press Cmd+Shift+R (macOS) or Ctrl+Shift+R (Windows / Linux) from any page. The mode picker opens as a modal over whatever you were doing.
  3. Once you're recording, Cmd+Shift+S (or Ctrl+Shift+S) stops it. Both shortcuts also appear in the keyboard-shortcuts help panel under a new "Recording" section.

Then:

  1. Pick Camera + mic or Screen + mic. First time only, the browser prompts for permission.
  2. Click Start. The mode-picker modal closes. A red floating recorder pill appears at the bottom-right of the app with the elapsed timer and a Stop button.
  3. The pill follows you around. Navigate to another task to check a repro, open a different project, go read a wiki page. The recording keeps going. The pill stays visible so you can stop from anywhere.
  4. Click Stop on the pill (or press Cmd+Shift+S). The video uploads with a progress bar in the pill, then inserts as an inline <video> element in the editor where you started.
  5. If you navigated away from the source editor before stopping, the upload still completes and a toast gives you a Copy URL affordance so you can paste the embed anywhere.
  6. Save the page or post the comment. Anyone with access plays the embedded video natively.

Videos cap at 10 minutes per recording.

What lives where

  • Storage. Recordings land in your workspace's own RustFS bucket under an entity type of VIDEO_RECORDING. Self-hosted Ithura keeps everything on your hardware; Ithura Cloud keeps it in the EU.
  • Persistence. The <video> tag is embedded in the wiki page or comment as HTML, so no downstream renderer needs a plugin. The wiki reader mode plays it natively.
  • Playback. A plain HTML5 <video controls> element. Any browser that speaks WebM (all modern browsers) or MP4 handles it.

Formats

The browser's MediaRecorder picks the best of:

  • video/webm;codecs=vp9,opus
  • video/webm;codecs=vp8,opus
  • video/webm

Uploads accept both WebM and MP4. Server-side transcoding to an adaptive HLS variant is a v2 item; for now the original file streams directly.

Quotas

Videos count against the workspace's storage quota just like any other uploaded asset. See Plans and limits for the per-tier ceilings. Per-plan minutes and dedicated recording-quota rows are a v2 item.

Sharing outside Ithura

Recordings are served from the same asset endpoint as workspace images: /assets/v2/static/{assetID}/. The URL is derived from the asset UUID, so anyone with the link can view the recording (matching the sharing model of board images and wiki page attachments). If you need per-viewer authentication, keep the video inside a private wiki page and rely on the page's own access model.

What's not in v1

  • Chapters on the timeline.
  • Transcript search. Self-hostable Whisper is on the roadmap; the API will accept an already-transcribed VTT sidecar in the meantime.
  • Comments pinned to timecodes.
  • Share links with per-viewer expiry and view-count analytics.
  • Client-side re-encoding to MP4 for compatibility with legacy players. Every modern browser handles WebM.
  • Huddles: live video calls attached to any surface. Async video is Huddles' offline sibling, using the same object store and the same underlying <video> playback path.
  • Sovereign: the recorder runs entirely in the browser, uploads to your storage, and streams from your API. Zero external service in the loop.