opencctv.org

Calgary's traffic cameras road by road, and the view from McHugh Bluff

· all posts

At 19:20 on 2026-10-23 the McHugh Bluff camera had the whole downtown skyline lit and doubled in the Bow, with the Memorial Drive headlights running west under the bluff in one unbroken line. The clock burnt into the corner of the frame read 19:20:49 when I pulled it, so it was current to the second. That one is live video rather than a still, it is published on YouTube by DELTATECH Calgary, and it is nowhere on the City's camera list, which is where nearly everyone starts.

Start there anyway, because for roads the City's list is the real one. Calgary publishes 217 camera locations as open data, each row carrying a junction name, a quadrant, coordinates and a direct image URL, and on 2026-10-24 that file had 217 rows with 217 distinct image URLs in them. Our own Calgary page counted 422 live cameras in and around the city the same morning, the difference being that Alberta's provincial 511 network hangs its cameras on Stoney Trail and the highway approaches on top of the City's grid.

What is in a Calgary frame

Every City image is an 840x630 JPEG, and four things in it are worth knowing before you go looking.

One publish cycle, about every 62 seconds

I hashed three City images (loc5, loc35 and loc214) every twelve seconds from 01:18 to 01:26 UTC on 2026-10-24. Each changed eight times in that window, and all three changed together, inside two seconds of each other every time: 01:18:37 to 01:18:39, then 01:19:40 to 01:19:41, then 01:20:41 to 01:20:43, and so on to 01:25:45. Seven of the gaps were 61 to 63 seconds and one was 50, which averages out at 60.7.

That is one fleet-wide publish rather than a per-camera refresh, which is the thing worth knowing: reloading a Calgary camera faster than once a minute gets you the same bytes back. The short cycle is the interesting bit, and eight of them is not enough to say whether it is a regular skip or a one-off. The City's page describes the images as up-to-the-minute and leaves the number at that.

Downtown, the river and the hill

Memorial Drive and 10 Street NW is the one to have open at dusk. At 19:16 it had the last orange band of sunset sitting on the western horizon, the signals at 10 Street strung red and green down the middle of the shot, and the wet road throwing all of it back up. It looks east-ish along Memorial with the Bow out of frame to the right.

Riverfront Avenue and 1 Street SE points the other way, at the arches of the Reconciliation Bridge with the rail line and the river behind them. Worth a look in the hour after sunrise, when the arches light up and the eastbound queue has not built yet. Of the eleven City frames I looked at it was the only one whose caption did not agree with the others: 19:07, when everything else said 19:16.

Country Hills Boulevard and Shaganappi Trail NW sits high on the north ridge and looks back down over the whole northwest, so at 19:16 it had four lanes of headlights waiting at the signal in the foreground and the lights of the northwest suburbs running out to the horizon behind. Good one for watching a storm arrive off the prairie.

Crowchild, Glenmore, Macleod, Deerfoot

Crowchild Trail and Stoney Trail NW is the most honest picture of a Calgary rush hour on the list. At 19:16 the southbound side was a solid red line of brake lights back past the campground sign and the northbound side was running free, which is exactly the pattern you would expect at that hour on that interchange.

Glenmore Trail and Macleod Trail SE is the best of the junction cameras to look at rather than use. It is mounted high on the northwest corner looking north up Macleod, and the downtown towers sit small and lit on the horizon behind the retail strip, with a pair of tower cranes blinking red above them on 2026-10-23. Glenmore Trail and Blackfoot Trail SE covers the same road just over a kilometre east and is the one to check for the eastbound crawl, though its lens was soft when I looked.

Further south, Canyon Meadows Drive and Macleod Trail S gives you the full width of Macleod with the flyover crossing it, and it is quiet enough at 19:16 that you can read the lane arrows painted on the deck.

130 Avenue and Deerfoot Trail SE is the long one. It looks north up six lanes of Deerfoot from the 130 Avenue overpass, and on a clear evening the downtown cluster shows up small and sharp at the top left of the frame, fourteen kilometres away on the coordinates the two pages print. The province calls Deerfoot the busiest road in Alberta at more than 180,000 vehicles a day, so if you check one camera before driving in the southeast, check this one. The provincial half of that corridor, and the rest of Alberta's highway network, is in our route by route piece on the 511 cameras.

The one that looks at the sky

Calgary Springbank, at the aerodrome twenty-two kilometres west of downtown, is not a traffic camera and behaves nothing like one. It refreshes every ten minutes rather than every minute, it stamps its frames in UTC rather than local time, and it points south across the foothills at the sky instead of at a road. At 01:10 UTC it had the last of the light lying along the ridgeline with the apron lamps on below. Since Calgary weather arrives from that direction, it is the camera that tells you what the City's 217 are about to be photographing.

A gap worth knowing about: every one of the City's 217 is a still image, so there is no public live video of a Calgary street from the municipal fleet, and the only two continuous streams in the city both point at the skyline rather than at traffic, McHugh Bluff and the Central Memorial Park panorama.

What we are doing with this

We re-fetch every Calgary camera on the normal daily cycle, and the count on the hub page moves with it rather than being typed in once, which is why I stamped the 422 above with the day I read it. The next job on these is the caption bar: the City prints a capture time into every frame, and reading it would let us compare what the operator says the time is against when we actually got the bytes.

Which is where the Riverfront Avenue frame comes back in. Nine minutes behind its neighbours at the same instant is either a slow camera, a cached copy, or me catching it mid-cycle, and one sample cannot tell those apart. I would want a week of them at a fixed interval before saying anything at all, and that is the measurement I would like to have made before writing this.

Corrections to [email protected].