Edmonton Daily Brief · Sources

Sources

<a href="/sources.html">Sources</a>

EDB · Sections
  1. Front page
  2. Weather & Alerts
  3. City Hall
  4. Public Safety
  5. Development & Business
  6. Courts & Legal
  7. Sports
  8. Schools & Campus
  9. Community & Events
  10. Tech & Research
  11. The Province
  12. What’s On — every listing, weeks ahead
  13. Buses — the live tracker
  14. Search the paper

Council on the Web — live HLS/stream resolver (GetCameraStream)

Read
yes, on the basis of a decision the paper's publisher recorded in writing
What the paper uses
its headline and a link
How it is read
open-data API
Its own page
Council on the Web — live HLS/stream resolver (GetCameraStream)
Terms
its terms, read 2026-10-11: “You will only use the website for personal, educational or non-commercial purposes.”
Robots
robots.txt allows our reader (checked 2026-10-12)
Permission
not yet asked
Credit
City of Edmonton
Decided by
the paper's publisher, 2026-10-12 (docs/DECISIONS.md #41 ('link, never rebroadcast', accepted 2026-10-12; first ruled 2026-08-26))
Notes

Programmatic detection of which chamber is currently streaming — lets a brief say 'Council is sitting right now' and deep-link the live feed.

RECORDED 2026-10-12 (DECISIONS #41): the owner's decision, 'link, never rebroadcast'. functions/live.js council() asks the four chambers whether one is live and the front page links the City's player; no stream, image or text is taken. robots.txt answers 404 (read 2026-10-12), which disallows nothing. WIRING RECKONING 2026-08-26: WIRED — edge consumer functions/live.js council() polls all four chambers (cc/rv/cb/ot) as a BOOLEAN under the owner's ruling ('Yes, same principle' — link, never rebroadcast): live only on the positive validated signal (response JSON whose d contains an https .m3u8 — the player page's OWN discriminator), and the front page then prints one line deep-linking the City's own player at councilontheweb.edmonton.ca. Idle, drifted and broken all collapse to field-absent and the surface vanishes — a false 'council is sitting' is an invented fact, and the sabotage suite holds the idle shape (an isilive /play/ page URL) as a non-signal. Every response shape stays untrusted; if the endpoint churns, the line disappears rather than lies. | WIRING TRIAGE 2026-08-23 — DEAD OR STALE: archive, static, years behind, or carries no dates; nothing to poll. Kept as the record of what was checked. Returns a player page (text/html), not an .m3u8, while idle. Page JS branches on whether the string contains '.m3u8' (hls.js) vs iframe, so a true manifest may appear only mid-meeting. Undocumented endpoint. For reliable automation prefer the YouTube feeds. Catalogued but NOT WIRED as of 2026-08-21. Its mode has no generic collector and no code refers to this endpoint, so nothing fetched it and no health record ever existed. Disabled so the registry stops counting it as coverage; the entry is kept because the endpoint was verified and this is a wiring backlog, not a dead source. See ops/wiring.py.

If this is yours and you want it left out, write to hello@edmontondailybrief.ca. We stop reading it and withdraw everything that cited it, past editions included. Every source · How this paper is made