RustDesk Recordings Viewer
When the RustDesk client records sessions to disk on a managed machine, Athena can list those videos on the agent's detail page and let an operator play them back in the browser or download them — streamed over a short-lived, signed link so the recording never has to be copied off the machine by hand.
This viewer is the read-back companion to RustDesk client-side auto-recording. When a machine is configured to record incoming or outgoing RustDesk sessions, the RustDesk client writes each session to a video file in a folder on that machine. The RustDesk section of the agent details page reads that folder live and presents the files so you can review a past support session without opening a new remote connection.
These are the RustDesk client's own on-machine recordings. They are separate from Athena's built-in WebRTC session recordings, which are captured and stored centrally on the server. RustDesk recordings live on the managed machine and are streamed to you on demand; they are not copied into the central recording library.
Where recordings come from#
Recordings appear here only when the RustDesk client on the machine is set to record. You enable that in the fleet-wide General client profile under Settings → Agent → Remotes (see Client-side recording):
- Auto-Record Incoming Sessions — record sessions where this machine is being controlled.
- Auto-Record Outgoing Sessions — record sessions initiated from this machine.
-
Video Save Directory — the local folder the client writes videos to. If left
empty, the client's default location is used; on Windows the viewer looks in
C:\ProgramData\RustDesk\recordingby default.
Both auto-record options are off by default, so this list is empty until you turn recording on and at least one session has been captured on the machine.
Viewing & downloading#
Open an agent from the fleet and go to its RustDesk section. The Recordings panel lists the video files found in the machine's recording folder, with each file's name and size. For every recording you get two actions:
- View — opens an in-browser video player (with fullscreen) that streams the recording from the machine.
- Download — saves the recording file to your workstation.
The player supports HTTP range requests, so you can scrub and seek within a recording without waiting for the whole file to transfer.
The machine must be online to browse or play its recordings — the files are read from the agent in real time. If the agent is offline the panel says so and no files are listed; it reloads automatically when the agent reconnects.
How playback is secured#
A browser <video> element cannot attach your normal login credentials to the
requests it makes for video data, so Athena secures playback with a signed streaming
link instead. When you press View or Download, the
console mints a one-off link that carries a signed access token, and the player streams from:
GET api/agents/{agentId}/files/stream?path={videoPath}&token={signedToken}
The token, and the endpoint that honors it, enforce several safeguards:
- Time-limited — each link is valid for a short window (about 30 minutes) and is refused once it expires; reopening the recording issues a fresh link.
- Bound to one file — the token is tied to the specific machine and the exact file path it was issued for. A token cannot be reused to fetch a different recording or a different machine's files, and it is rejected if it has been tampered with.
-
Video files only — the endpoint streams only known video types
(
.webm,.mp4,.avi,.mkv,.mov,.wmv,.flv,.m4v); any other path is rejected. Path-traversal attempts are blocked. - Size ceiling — a single streamed video is capped at 64 MB. Larger recordings return an error rather than streaming, so very long sessions may need to be retrieved another way.
Who can view recordings#
The Recordings panel lives on the agent details page, so any operator who can open a machine's RustDesk section can list, play, and download its recordings. Because signed links carry their own access token, keep those URLs private — anyone holding a still-valid link can fetch that one recording until the link expires. See Roles & Permissions for how access to agent screens is controlled.
Auditing#
Access to RustDesk recordings is written to the audit log, so you have a record of who reviewed which session and when:
| Event | When it is written |
|---|---|
RustDeskRecordingViewed | An operator opens a recording in the in-browser player |
RustDeskRecordingDownloaded | An operator downloads a recording file |
VideoStreamRequested | The streaming endpoint serves a video for a valid signed link |
VideoStreamDenied | A stream request is refused (for example, a non-video path) |
See the Audit Event Types Reference for the full catalogue.
Reverse-proxy note#
If you front Athena with a reverse proxy or load balancer, make sure the streaming path works end to end:
-
Allow the streaming route
/api/agents/{agentId}/files/streamthrough the proxy. It carries its access token as a query-string parameter (because the video element can't send auth headers), so don't strip the query string. -
Pass through HTTP Range requests and
206 Partial Contentresponses so seeking works; buffering the whole response can break scrubbing on large videos. - Ensure the proxy's own body/response size limits allow files up to the 64 MB stream ceiling.
RustDesk recordings are stored by the third-party RustDesk client on the managed machine, not by Athena. Their retention, cleanup, and disk usage are governed by that machine and the client's save directory — Athena reads them on demand but does not purge them. If you need centrally stored, server-managed recordings with a retention policy, use the built-in WebRTC session recordings instead.