|
| 1 | +# Replacement Webcam Source Intake Recommendation |
| 2 | + |
| 3 | +**Date:** 2026-06-04 |
| 4 | +**Decision:** Proceed with Digitraffic (Fintraffic) road weather cameras as the next active webcam/media source for OS4CSAPI publisher work. |
| 5 | + |
| 6 | +## Why This Source |
| 7 | + |
| 8 | +Digitraffic is the strongest replacement based on both permission clarity and technical fit: |
| 9 | + |
| 10 | +- Explicit open-data license: Creative Commons BY 4.0. |
| 11 | +- Explicit attribution guidance provided by source owner. |
| 12 | +- Public road weather camera APIs and image endpoints are reachable without private credentials. |
| 13 | +- Camera metadata and image timing are available in structured APIs. |
| 14 | +- Image endpoint supports ETag, enabling efficient freshness polling and conditional requests. |
| 15 | +- Source provides clear request-behavior guidance (rate limits, headers, caching expectations). |
| 16 | + |
| 17 | +## Evidence Collected |
| 18 | + |
| 19 | +### Licensing and terms |
| 20 | + |
| 21 | +- Digitraffic terms page states open data is licensed under CC BY 4.0. |
| 22 | +- Attribution guidance includes preserving copyright notice, linking license, and noting modifications. |
| 23 | +- Suggested attribution example: "Source: Fintraffic / digitraffic.fi, license CC 4.0 BY". |
| 24 | + |
| 25 | +References: |
| 26 | +- https://www.digitraffic.fi/en/terms-of-service/ |
| 27 | +- https://www.digitraffic.fi/en/support/instructions/ |
| 28 | + |
| 29 | +### API and media readiness |
| 30 | + |
| 31 | +- Station metadata endpoint returned active camera stations: |
| 32 | + - https://tie.digitraffic.fi/api/weathercam/v1/stations |
| 33 | +- Detailed station data returned preset IDs with measuredTime values: |
| 34 | + - https://tie.digitraffic.fi/api/weathercam/v1/stations/C01503/data |
| 35 | +- Image endpoint returned HTTP 200 with JPEG content-type and ETag header: |
| 36 | + - https://weathercam.digitraffic.fi/C0150301.jpg |
| 37 | + |
| 38 | +### Operational guidance from source |
| 39 | + |
| 40 | +- Use Digitraffic-User header (non-PII app identifier). |
| 41 | +- Default request limits are documented; weather camera images are rate limited. |
| 42 | +- Conditional requests with If-None-Match and ETag are explicitly recommended. |
| 43 | + |
| 44 | +## Secondary Candidate |
| 45 | + |
| 46 | +TfL JamCams remains a viable fallback candidate: |
| 47 | + |
| 48 | +- TfL transport-data terms grant broad usage rights including commercial/non-commercial use, with attribution and branding constraints. |
| 49 | +- API responded successfully for JamCam place data in live checks. |
| 50 | +- There is an app key registration flow and license obligations that require additional implementation and compliance handling. |
| 51 | + |
| 52 | +References: |
| 53 | +- https://tfl.gov.uk/corporate/terms-and-conditions/transport-data-service |
| 54 | +- https://api-portal.tfl.gov.uk/ |
| 55 | +- https://api.tfl.gov.uk/Place/Type/JamCam |
| 56 | + |
| 57 | +## Recommendation |
| 58 | + |
| 59 | +Adopt Digitraffic as the next production candidate for publisher implementation. |
| 60 | + |
| 61 | +Use a minimal first scope that mirrors the proven Storebaelt pattern while improving source-governance discipline: |
| 62 | + |
| 63 | +1. Bootstrap |
| 64 | +- Create Digitraffic procedure, systems, deployments, and datastreams for a small camera subset (for example 2 to 5 presets). |
| 65 | + |
| 66 | +2. Publisher |
| 67 | +- Poll image endpoints with Digitraffic-User header. |
| 68 | +- Use HEAD or GET with If-None-Match for freshness-aware checks. |
| 69 | +- Publish poster/image-reference observations with freshness fields: |
| 70 | + - imageChanged |
| 71 | + - firstSeenTime |
| 72 | + - lastSeenTime |
| 73 | + - lastChangedTime |
| 74 | + - unchangedPollCount |
| 75 | + - stalenessStatus |
| 76 | + - sourceAgeSeconds |
| 77 | + |
| 78 | +3. Attribution and metadata |
| 79 | +- Include source attribution and CC BY 4.0 license links in procedure/system metadata. |
| 80 | +- Include modified-data notice where transformations occur. |
| 81 | + |
| 82 | +4. Rate and reliability controls |
| 83 | +- Respect published request restrictions. |
| 84 | +- Keep poll intervals conservative. |
| 85 | +- Add retry/backoff and explicit error telemetry. |
| 86 | + |
| 87 | +5. Explorer UX reuse |
| 88 | +- Reuse the existing camera card semantics: |
| 89 | + - poster status and freshness |
| 90 | + - clear distinction between still image and live/source context |
| 91 | + - source link actions |
| 92 | + |
| 93 | +## Go/No-Go Checklist Before Coding |
| 94 | + |
| 95 | +Go when all are true: |
| 96 | + |
| 97 | +- Attribution text format is finalized and documented for Explorer and publisher metadata. |
| 98 | +- Initial camera subset is selected and verified as in collection. |
| 99 | +- Poll cadence is set to remain comfortably under restrictions. |
| 100 | +- Disposition note for this source is created at project start, not after implementation. |
| 101 | + |
| 102 | +No-go if any are true: |
| 103 | + |
| 104 | +- License language changes away from CC BY 4.0 for applicable endpoints. |
| 105 | +- Source indicates prohibitions conflicting with intended CSAPI demonstration use. |
| 106 | +- APIs become unstable without viable fallback strategy. |
| 107 | + |
| 108 | +## Immediate Next Step |
| 109 | + |
| 110 | +Create a new publisher package using Digitraffic weather camera presets, starting with bootstrap plus a dry-run publisher for 2 to 5 cameras, then promote to active publishing after review. |
0 commit comments