DjMirror Pulse 1.0.743 User Guide

Record The Screen & Capture Snapshots

User Guide

Use DjMirror Pulse's recording API or MCP tools to save the main application window as an MP4 video or a PNG snapshot. This guide covers a short, safe recording workflow, where files are saved, and what to check if a recording has no audio or does not start.

DjMirror Pulse User Manual Series
Source: docs_user_manuals\RECORDING_AND_SNAPSHOTS_GUIDE.md
Revision 2026.10 • Release 1.0.743

Table of Contents

Recording is controlled through the local HTTP API or a compatible MCP client. There is no record button in the desktop interface. For API startup and authentication, see HTTP & WebSocket API. For AI-client setup, see MCP Server for Users.

Chapter 1: Before You Record

  1. Start DjMirror Pulse and prepare the visual output you intend to capture.
  2. Close settings and control panels that should not appear in the video. The recorder captures the main application window, including any control or settings overlay that is open.
  3. If the video should contain music, configure the audio input first and play a short test. Recording uses the selected audio-analysis input, or the system default input if no selected input is available.
  4. Check that the destination drive has enough free space. Video file size depends on resolution, frame rate, content and recording duration; the app does not provide a storage estimate here.

The recorder supports one active recording at a time. Its default maximum duration is 30 minutes; the recorder stops automatically when that limit is reached.

Chapter 2: Record A Short Test With The HTTP API

The desktop HTTP server is enabled by default and normally listens on port 8080. First confirm that the local server responds:

curl.exe http://127.0.0.1:8080/api/v1/health

If the server is disabled, enable it in the app configuration or start DjMirror Pulse with --server. If you configured an API key, add -H "X-API-Key: YOUR_KEY" to each request below. Do not put a real key in a shared script, screenshot or support message.

Without an API key, the local API is open by default. Do not expose it to untrusted devices or networks; see the Mobile Remote guide for API key settings.

Start with a short recording. The defaults are 20 frames per second and a 30-minute maximum; this example limits the test to 60 seconds:

curl.exe -X POST "http://127.0.0.1:8080/api/v1/recording/start" `
  -H "Content-Type: application/json" `
  -d '{"maxDurationSec":60,"fileName":"soundcheck.mp4"}'

The start request answers with the settings in use:

{ "data": { "fileName": "soundcheck.mp4", "fps": 20, "hasAudio": true, "maxDurationSec": 60, "recording": true }, "ok": true }

Check the current state:

curl.exe "http://127.0.0.1:8080/api/v1/recording/status"
{ "data": { "elapsedSec": 1.08, "fileName": "soundcheck.mp4", "fps": 20, "hasAudio": true, "recording": true }, "ok": true }

The response includes the file name and hasAudio. This flag reports whether an audio input device was attached; it does not confirm that useful audio was captured. Stop the recording to finalize the MP4:

curl.exe -X POST "http://127.0.0.1:8080/api/v1/recording/stop"

The stop request waits briefly for the file to finish writing and then reports the result:

{ "data": { "durationSec": 3.18, "fileName": "soundcheck.mp4", "hasAudio": false, "recording": false, "sizeBytes": 1404043 }, "ok": true }

Note

hasAudio in the stop answer can differ from the value reported while recording (in a short test it changed from true to false). Treat the flag as a hint only: open the MP4 in a media player and check both picture and sound before relying on it for an event.

Record a fixed length with one script

This PowerShell example records 60 seconds, stops, and copies the file to your desktop. Adjust the file name and add -H "X-API-Key: YOUR_KEY" to each call if you set an API key.

$api = "http://127.0.0.1:8080/api/v1/recording"
curl.exe -s -X POST "$api/start" -H "Content-Type: application/json" -d '{"maxDurationSec":120,"fileName":"set.mp4"}'
Start-Sleep -Seconds 60
curl.exe -s -X POST "$api/stop"
curl.exe -s -o "$env:USERPROFILE\Desktop\set.mp4" "$api/download/set.mp4"

The recorder also stops by itself when maxDurationSec is reached, so a forgotten recording cannot run forever.

Chapter 3: Capture A Png Snapshot

A snapshot can be captured independently of video recording. The main window must be visible.

curl.exe -X POST "http://127.0.0.1:8080/api/v1/recording/snapshot"

The response includes the PNG file name, its size in bytes and its dimensions:

{ "data": { "fileName": "snapshot_20261013_075259_999.png", "height": 1080, "sizeBytes": 148116, "width": 1920 }, "ok": true }

To list saved snapshots (each entry has the file name, modified time and size):

curl.exe "http://127.0.0.1:8080/api/v1/recording/snapshots"

To record at a different frame rate, add fps to the start request (for example {"fps":30,"maxDurationSec":60}); a lower value reduces CPU and disk use on weaker machines.

Chapter 4: Find And Manage Saved Files

By default, files are saved here:

File type Default folder
MP4 recordings Documents/Visuals/Recordings/
PNG snapshots Documents/Visuals/Snapshots/

If documentsPath was changed in the effective config.json, use that location's Visuals/Recordings/ and Visuals/Snapshots/ folders instead. See Config & CLI for the configuration path.

The API can list MP4 files with GET /api/v1/recording/list and download an MP4 using GET /api/v1/recording/download/<fileName>. Snapshots can be listed with GET /api/v1/recording/snapshots and downloaded with GET /api/v1/recording/snapshot/download/<fileName>. For example, to copy a finished recording to another folder through the API:

curl.exe -o soundcheck.mp4 "http://127.0.0.1:8080/api/v1/recording/download/soundcheck.mp4"

Keep the original files in the folders if you want them available to the app; move or delete them using the operating system's file manager when the app is not recording.

The app has a maximum recording duration, but no automatic storage quota is documented. Check free disk space regularly and keep a separate backup of recordings you need to retain.

Chapter 5: Use The MCP Tools

If MCP is configured and available for your license, a compatible assistant can use these recording tools:

Ask for a short test first, then verify the returned file and audio yourself. Remote recording can be started without a prominent on-screen indicator, so do not leave the MCP/API accessible to untrusted users.

Chapter 6: What Each Call Returns

Call Returns
POST /recording/start fileName, fps, hasAudio, maxDurationSec, recording: true
GET /recording/status recording, elapsedSec, fileName, fps, hasAudio
POST /recording/stop fileName, durationSec, sizeBytes, hasAudio, recording: false
GET /recording/list recordings: a list of fileName, modified, sizeBytes
POST /recording/snapshot fileName, width, height, sizeBytes
GET /recording/snapshots snapshots: a list of fileName, modified, sizeBytes

All answers use the standard envelope (ok, data, error, meta) described in the HTTP & WebSocket API guide.

Chapter 7: Troubleshooting

Symptom Check
Request cannot connect Confirm DjMirror Pulse is running, the HTTP server is enabled, and the port is correct.
401 or 403 response Add the configured X-API-Key header; confirm the active license allows the requested feature.
Recording already active Check GET /api/v1/recording/status, then stop the active recording before starting another.
Snapshot fails Make sure the main window is visible and the destination drive is writable.
MP4 has no sound Check hasAudio, select a working audio input in Settings → AUDIO Device, and test its meters.
Recording stutters or misses frames Try a shorter test, lower output resolution or frame rate, and close other GPU-intensive applications.
File is missing or incomplete Stop the recording through the API, wait for completion, then check the configured Visuals/Recordings/ path.

For more endpoint details and error responses, consult the recording section in docs_http_ws/README_HTTP_API_REFERENCE.

Chapter 8: Quick Checklist