中文← Back to city views

Guide to city views

Choose a country and city, then select a map marker or camera in the list. You can search by name, filter feed types, locate cameras on the map, retry playback and copy a link to the current camera.

Browse public cameras from connected sources worldwide, filtered by country, city or area. Options come from the source data and are no longer limited to 18 destinations. “City” may refer to a state, province, administrative area or source grouping, rather than an exact city boundary. No results does not mean there are no cameras there. The list loads 60 cameras at a time; map clusters include all matching cameras. Zoom into a cluster to explore.

“Snapshots” are images updated periodically by a source. “Live video” is a video stream provided by a source. A feed loading successfully does not mean it has no delay. Some operators allow viewing only on their own websites; some cities have no connected cameras yet.

Network diagnostics

Open network tools to check your public IP and approximate location, DNS resolvers, WebRTC address exposure, download, upload, HTTP latency and jitter. Run tests individually or in sequence, and stop at any time. Test again after changing a VPN; WebRTC comparisons always obtain a fresh HTTP baseline.

The DNS check requests ten unique subdomains from your browser. The authoritative DNS service at bash.ws reports the resolvers it observes. Source failures, browser blocking or missing observations produce an inconclusive result. Resolver country or count alone does not establish whether a leak exists.

The speed test measures a short application-layer path from your browser to Cloudflare, rather than a loopback request to a local server. Measurements include HTTP overhead. Ten idle probes estimate median latency, jitter between consecutive valid samples and HTTP failure rate. Load latency appears only when sufficient samples are available during transfers. No TURN server is configured, so UDP packet loss is not measured.

API reference

GET /api/cctv returns the global public catalogue by default. Optional parameters are country (e.g. GB), city (e.g. london) and q (search names, places or sources). Countries use country codes. The countries field contains the dynamic region list; catalogTotal is the global count before filtering. Legacy links such as city=bangkok retain an area about 40 km around their original centre for compatibility. This radius does not restrict global browsing. timestamp is the catalogue query time; partial indicates that some sources are still loading.

Playback endpoints: /api/cctv/resolve, /api/cctv/proxy, /api/cctv/stream-status. The map proxy is /api/proxy-tiles.

This version has no AI, flight, maritime, weather, market or network-scanning endpoints.

Network endpoints: POST /api/network/geo accepts a public IP in JSON; POST /api/network/dns creates a short-lived DNS session; GET /api/network/dns?token=... queries observations. Public exit and speed checks run directly from the browser to the test provider, rather than measuring the server’s connection.

Open-source credits

Camera adapters and some playback helpers are based on OSIRIS / simplifaisoul under the MIT licence. Map credits remain in the bottom-right corner. Each camera identifies its source.