Skip to content
Thursday, 7 May 2026 — Jakarta Issue №127


Field Guide

How to find a camera near you.

In brief: Streetside Jakarta pulls a list of public DKI Jakarta CCTV streams from the Molecool aggregator API, refreshes the catalogue every sixty seconds at the edge, and serves each camera as an HLS video element rendered in the browser. Cached preview thumbnails update on the same cadence. The site adds search, distance-from-you sorting, neighbourhood grouping, and a single-page Jakarta basemap on top of that feed.


There are about 1,280 public street cameras pointed at Jakarta, and most of the time they are pointed at no-one. This page is the shortest path between you and one of them. Whether you want to check the Sudirman traffic before leaving the office, watch the Ciliwung swell during a storm, or simply look at a quiet kampung intersection at three in the morning, the moves are the same. Open a list. Pick a camera. Watch. There are three ways into the catalogue — by search, by geolocation, by map — and they all converge on the same player. The five steps below cover every one of them, with the small caveats that come from working with a live public feed.


  1. Step 1

    Open the Index

    Go to streetside.mugnimaestra.dev. The homepage is the index — every active camera, paginated and searchable. Type a street name, a landmark, or a kelurahan into the search box and the list filters as you type. Underneath sit five city chips: Jakarta Pusat, Selatan, Barat, Timur, Utara. Tap one to scope the index to a single administrative district. The cards show a still thumbnail, the camera name, and the district. Click any card to open its detail page.

  2. Step 2

    Or use Nearby

    If you are physically in Jakarta, Nearby is faster than searching. Tap it and the browser asks for permission to share your location — grant it once. The page sorts every camera by haversine distance from your current point and lists the closest twenty or so, with the distance in metres or kilometres against each one. The permission is stored by your browser, not by us; revoke it any time from your address bar. No location data ever leaves the device.

  3. Step 3

    Or open the Atlas

    For a spatial view, open the Atlas. The whole city loads as a MapLibre canvas with one pin per active camera. Pan and zoom with mouse, trackpad, or two fingers. Pins cluster at low zoom and separate as you move closer. Click a pin and a small popover shows the camera name and a thumbnail; the same click opens the detail page. The Atlas is the right tool when you are looking for a camera by geography rather than by name.

  4. Step 4

    Pick a camera

    Whichever route you took, you land on the same detail page. An HLS player sits at the top, autoplaying the live stream, muted by default, with a still poster while the first segment buffers. Beneath it: the camera name, the district, the precise coordinates, a small inset map, and a link to copy a permalink. The player works in every modern browser — Safari uses native HLS, everyone else uses hls.js, transparently. No plugin, no app, no account.

  5. Step 5

    Watch and reload

    Live is not instant. Expect a one- to three-second lag from real time — that is HLS doing its job, segmenting the stream so it survives weak connections. Streaming tokens on the upstream feed expire every few minutes; if your video freezes, reload the page and a fresh token arrives. Some cameras go dark for hours or days at a time when the city is doing maintenance. If a particular camera will not load, try a neighbour on the Atlas. There is almost always one nearby.


A note on what you are watching

These are public cameras, owned and operated by the DKI Jakarta provincial government, and already published on the city's own dashboard. Streetside is a re-skin — a slower, quieter, more readable frontend on top of the same feeds. We do not record. We do not store frames. We do not run computer vision over what comes back. Each player session is a transient pipe between you and the upstream, proxied through this site so that your browser never speaks directly to the source.

Coverage is not uniform. Central business districts and the toll plazas are dense; some outlying kelurahan have a single camera or none. The map will tell you the truth — empty patches are empty because the city has not put a camera there, not because we are hiding anything. Latency varies with the quality of the upstream feed; on a busy night the Sudirman cameras can drift to four or five seconds behind. That is the cost of running over the public internet, and the price of not needing an account to watch.

If a camera you remember is missing, or one is pointed somewhere it should not be, write to hello@streetside.mugnimaestra.dev. The full provenance chain lives on the Data sources page.