Printago API

Camera Streaming

This guide covers pulling a printer's camera feed when your client is on the same local network as the Fuse host. Fuse embeds a go2rtc video server that exposes each printer's camera over HTTP, RTSP, and WebRTC. The stream is served directly by Fuse and stays entirely on your LAN — it never traverses the Printago cloud.

These endpoints are served by Fuse and are only reachable from devices on the same local network as the machine running Fuse. They are not exposed over the internet or through api.printago.io. For remote viewing, use the camera tile in the Printago web app.

How It Works

Fuse runs an embedded go2rtc server that publishes every connected printer's camera. You address a stream by its stream ID (the src) from any device on the same network. The stream ID is a local identifier that Fuse assigns on the Fuse host — it is not the printer's cloud ID from GET /v1/printers. List the available stream IDs with GET /api/streams or the built-in stream browser (see below).

Host
The LAN IP address of the computer running Fuse, e.g. 192.168.1.50. Shown in Fuse under Settings, or find it in your router's device list.
HTTP API / UI port
1984 — snapshots, MJPEG, MP4, HLS, WebRTC, and a built-in stream browser.
RTSP port
8554 — for VLC, ffmpeg, or an NVR.
WebRTC media port
8555 (UDP/TCP) — used by the WebRTC transport for the actual video.
Stream ID (src)
The camera's local Fuse stream ID, e.g. a1b2c3d4e5f6a7b8 or printer_1720000000000_ab12cd3. This is a Fuse-local identifier, not the cloud API ID. List the exact IDs with GET /api/streams or the stream browser.

Endpoints

Replace <fuse-ip> with the Fuse machine's LAN IP and <streamId> with the camera's local Fuse stream ID (see Finding a Stream ID below).

Snapshot (JPEG)
http://<fuse-ip>:1984/api/frame.jpeg?src=<streamId>
MJPEG stream
http://<fuse-ip>:1984/api/stream.mjpeg?src=<streamId>
MP4 stream
http://<fuse-ip>:1984/api/stream.mp4?src=<streamId>
HLS playlist
http://<fuse-ip>:1984/api/stream.m3u8?src=<streamId>
WebRTC (browser)
http://<fuse-ip>:1984/api/webrtc?src=<streamId>
RTSP
rtsp://<fuse-ip>:8554/<streamId>
List all streams
http://<fuse-ip>:1984/api/streams
Stream browser (UI)
http://<fuse-ip>:1984/ — lists every stream with one-click players.

Finding a Stream ID

Open the stream browser at http://<fuse-ip>:1984/ or call GET /api/streams to list every stream Fuse is publishing, each under its exact ID. These IDs are assigned locally by Fuse and do not match the cloud printer IDs returned by GET /v1/printers. A printer's primary camera uses the printer's bare local Fuse ID; printers with more than one camera expose the additional cameras as <streamId>_<cameraRef>.

Example: Embed a Live Tile in a Web Page

The MJPEG endpoint drops straight into an <img> tag — no player library required.

HTML
<img
  src="http://192.168.1.50:1984/api/stream.mjpeg?src=a1b2c3d4e5f6a7b8"
  alt="Printer camera"
  width="640"
/>

Example: View in VLC

RTSP
vlc rtsp://192.168.1.50:8554/a1b2c3d4e5f6a7b8

Example: Grab a Snapshot with curl

Shell
# Save the latest still frame
curl "http://192.168.1.50:1984/api/frame.jpeg?src=a1b2c3d4e5f6a7b8" -o snapshot.jpg

# List every stream Fuse is publishing
curl "http://192.168.1.50:1984/api/streams"
Keep it on a trusted network. The Fuse video server has no authentication — anyone who can reach the Fuse machine on your network can view every camera and enumerate the stream list. Do not port-forward ports 1984, 8554, or 8555 to the internet. For access outside your LAN, use the Printago web app.