Does Imou support video playback? Yes. Imou Open Platform exposes playback through applicable APIs and SDKs (including in-player playback in ImouPlayer when you use getKitToken) when the device and subscribed services allow it. Design incident review around your tenant ACL plus cloud playback—not around a made-up retention SLA or “every camera keeps 90 days.” Live streaming answers “what is happening now”; playback answers “what happened then.” They are different product jobs.
Ops story: the clip that never existed
A retail ops lead opened a ticket: “Show me yesterday 18:42 at Door 3.” The SaaS Live tab was excellent. The camera was online. The integrator had never wired playback, never checked whether cloud recording was subscribed, and had copy that said “full history.” There was nothing to seek.
The postmortem was not “Imou has no playback.” It was incident review was never designed as a path: no capability check, no package check, no BFF route that mints a play credential for history, no UI that distinguishes no recording from no permission.
If you sell security or facilities workflows, playback is the feature operators actually use after an exception. Live is how they confirm the camera is up.
Why it matters
Incident review is a workflow, not a player widget:
Who may see Door 3 for that tenant/site?
Is there recorded video for that window?
Which client should seek—ImouPlayer, OpenSDK, or a URL-based path your docs support?
How do you avoid dumping accessToken into the browser while someone scrubs a timeline?
Imou Open Platform is the cloud video and AIoT layer. Your SaaS still owns ACL, case IDs, and how long you retain your notes. Cloud recording duration and availability depend on device and subscribed services. Do not invent retention days, “guaranteed 30-day NVR,” or SKU-specific cloud hours in marketing.
Live, playback, PTZ, and two-way talk all depend on device capabilities + SDK/API. Playback additionally depends on whether recording exists for that channel and time.
Live vs playback (product roles)
Job
Typical path
Operator expectation
Confirm camera health / watch now
Live: getKitToken + ImouPlayer, or bindDeviceLive HLS, or RTMP via createDeviceRtmpLive
Low friction, on-demand, SD on walls
Reconstruct an event
Playback via player/SDK/API when recording is available
Seek, clip export in your product if you build it, audit who watched
Evidence package
Your case system + authorized playback session
Not a public HLS bookmark from a live share URL
Do not reuse a live HLS URL as “history.” Live objects and playback sessions are different contracts. Mixing them produces 404s, wrong timestamps, and support noise.
What Open Platform enables (honest scope)
Enables:
Playback in the same interactive web surface many teams already use for live: ImouPlayer after server-side getKitToken. See JS SDK.
Native/app playback via OpenSDK where that is your client.
OpenAPI-backed flows using accessToken on a BFF so the browser never holds admin credentials.
A capability- and service-gated story: if the camera or package does not support cloud playback, say so in the UI.
Does not enable (unless you build it):
A guaranteed retention number. We will not invent one.
Automatic legal-hold across tenants. That is your compliance design.
Playback of cameras that were never bound to the Open Platform app.
Treating consumer-app history as proof the device is in your OpenAPI asset pool.
Integration steps for an incident-review lane
Create the app and bind devices on open.imoulife.com. Confirm listDeviceDetailsByPage (or equivalent current list/detail APIs) returns the camera the ops lead named—not a serial from a different tenant.
Cache accessToken on the BFF only. Playback and live both start here. Never ship appSecret to the SPA.
Authorize the reviewer against your ACL (tenant, site, role, maybe case assignment). Cloud APIs do not replace that check.
Confirm recording entitlement and capability for that device/channel. If cloud storage / playback is not subscribed or the device cannot play back, return a product error: “No recording for this camera” vs “You are not allowed.”
Mint a short-lived play credential for the session. For web, that is typically kitToken for ImouPlayer—not accessToken. kitToken ≠ accessToken. Cache kitToken on the BFF on the order of ~1 hour; token TTL is on the order of ~2 hours per JS docs—re-mint rather than stuffing OpenAPI tokens into the player.
Open playback on demand for the requested time window. Do not prefetch history for every camera on the wall at login.
Tear down when the reviewer leaves the case. Destroy the player; do not leave a seekable session in a background tab as a standing credential.
Optional: if your product exports MP4s, do that after ACL and only for windows the user may see. Export is your feature; do not imply a platform SLA for clip size or transcode time.
Architecture (incident review)
Case / alarm in SaaS
│
▼
ACL: may user review this site + camera + time?
│
▼
BFF: accessToken → capability/package check → getKitToken (or SDK session)
│
▼
ImouPlayer / OpenSDK playback UI
│
▼
Cloud recording (if present) — not a fake N-day guarantee
Limits and pitfalls
No fake retention SLAs. If a customer asks “how many days,” point them at the subscribed cloud package and console resources—not a blog number.
kitToken ≠ accessToken. Black screens during “history” are often the same token mix-up as live.
Quota. Playback and live can consume platform resources. Watch My Resources as usage grows. Do not invent Mbps SLAs.
Time zones. Store incident timestamps in UTC in your system; render locally. Mismatched TZ looks like “missing video.”
Multi-camera walls. Default live tiles to SD (streamId = 1). Open playback in a focus pane, not sixteen HD timelines.
No GB28181-centric design for international Open Platform SaaS. Stay on documented OpenAPI/SDK paths.
PTZ/talk during review. Those are separate capabilities. A playback-capable camera may still be a fixed lens with no talk.
Practitioner checklist
Copy says “playback when recording is available,” not “unlimited history”
Distinct errors: no permission / no device / no recording
BFF mints kitToken; player never sees accessToken
Reviewer session is on-demand and torn down
Retention claims match subscribed services only
Register at open.imoulife.com to build on Imou Open Platform: cloud video and AIoT, with APIs, SDKs, and low-code components so vendors and developers can ship live and incident-review playback faster—always gated by real device capabilities and subscribed services.
Related: Video Monitoring · JS SDK
Top comments (0)