Video playback speed (remembered between plays)
Every video in Omniscio plays in the one video player, and its speed control sits in the control bar along the bottom of the video. Inside the app the speed you pick is remembered for the next video and after a restart — and that includes a share you open in the app's share viewer. A shared link opened in a browser has the same control but starts at normal speed.
What it is
Every video in Omniscio plays in the same player, and that player has a speed control in the control bar along the bottom. Inside the app, the speed you pick is remembered — the next video starts at that speed, and so does the first video after you restart the app.
It covers every place a video plays: your daily drip feed, a chat or gallery lightbox, a screen recording you are reviewing, a Telegram video message, the preview on an inbox card, a shared link, and the page other websites embed. The player itself is described in The video player.
Where to find it
The speed button sits in the control bar along the bottom of the video, next to full screen, and shows the current speed (for example 1×). It is in the same spot on every video, in the app and on a shared link.
How it behaves
What you see
- Click the speed button to open the menu: 0.5× · 0.75× · 1× · 1.25× · 1.5× · 1.75× · 2× · 2.5× · 3×.
- Pick one and the video plays at that speed straight away.
- On the keyboard, Shift + > speeds up one step and Shift + < slows down one step.
- Going full screen keeps the button — the whole player goes full screen, not just the picture.
- The menu opens upward out of the bar, so it never spills past the bottom of the video; on a very short player the list scrolls.
- Like the rest of the controls, the button goes with the bar while the video plays untouched, and comes back the moment you move the mouse or tap.
Notes and remaining gaps
- There is no separate on/off switch — pick 1× for normal speed.
- In the app's share viewer — and in an inbox card that shows a share page — a shared video uses your remembered speed, and a speed you pick there is remembered too — the same single speed as every other video in the app. This works for shares published before this change as well.
- A shared link opened in a browser starts at 1× every time. There it is a public web page with no access to your Omniscio settings, so it cannot know the speed you picked in the app. Its menu offers the same speeds.
- Remaining gap: an iPhone has no full screen for a whole player, so full screen there hands the video to Safari's own full-screen player and our speed button is out of view until you leave full screen. An iPad keeps the whole player, button included.
For agents
How it works (under the hood)
- The chosen speed is saved as one global setting,
videoPlaybackRate(range 0.5×–3×, default 1×). It's an ordinary Omniscio setting, so it persists to disk and syncs like the rest. - The menu is part of the one video player (
speed-menu.ts); the app mounts it through<VideoPlayer>. - A small hook,
useVideoPlaybackRate, applies the saved speed to each video when it loads — browsers reset a video's speed to normal on every new source, so re-applying on load is what makes the choice survive from one play to the next — and saves any change, whichever way it was made. - The share viewer shows a share's public page in an embedded web view (and an inbox card frames a share's page in the main window), and that page's video runs sandboxed with no storage of its own. So the main process does it from outside, on every web view and on the main window itself (
share-video-speed.ts): for each frame on a share host under/s/— matched by the frame's URL, because a sandboxed frame's origin is"null"— it injects a small script that appliesvideoPlaybackRateon load and again when playback starts, and reports a speed the user picks (a real click or key press) back as one console line, which main saves to the same setting (coalesced to one write per burst). A deliberately hostile share could forge that line; the most it can do is change the saved speed within 0.5×–3×. - Speed options + bounds live in one shared source (video-speed.ts), so the menu and the saved-value range can never drift apart.
CLI access
There is no dedicated control-server route — the speed is an ordinary setting, so an agent reads or sets it through the standard settings surface (the videoPlaybackRate field). There is nothing else to trigger; it is a per-player control.
Related
The video player covers the whole player — controls, keyboard shortcuts, full screen and where it runs. Opening a media link covers what happens when an agent's message links to a video file rather than playing it inside the app. Shared recording rich previews covers the rich preview and embeddable player a shared recording gets when it is opened or pasted elsewhere.
Last verified 2026-10-05