{"id":51223651,"url":"https://github.com/ch-bas/cctv-camera-database","last_synced_at":"2026-06-28T09:03:30.025Z","repository":{"id":362969861,"uuid":"1261441430","full_name":"ch-bas/cctv-camera-database","owner":"ch-bas","description":"Open database of 1,300+ CCTV camera specs across 65 brands — searchable, filterable, CC0","archived":false,"fork":false,"pushed_at":"2026-06-17T13:16:54.000Z","size":3365,"stargazers_count":57,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-17T16:18:58.021Z","etag":null,"topics":["blue-iris","cctv","cctv-cameras","dahua","data-seed","frigate","frigate-nvr","frontfamily","hikvision","homeassistant","ip-camera","open-data","reolink","security-camera","surveillance"],"latest_commit_sha":null,"homepage":"https://ch-bas.github.io/cctv-camera-database/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ch-bas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-06T17:31:00.000Z","updated_at":"2026-06-17T13:18:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ch-bas/cctv-camera-database","commit_stats":null,"previous_names":["ch-bas/cctv-camera-databse"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/ch-bas/cctv-camera-database","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch-bas%2Fcctv-camera-database","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch-bas%2Fcctv-camera-database/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch-bas%2Fcctv-camera-database/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch-bas%2Fcctv-camera-database/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ch-bas","download_url":"https://codeload.github.com/ch-bas/cctv-camera-database/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ch-bas%2Fcctv-camera-database/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34882752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blue-iris","cctv","cctv-cameras","dahua","data-seed","frigate","frigate-nvr","frontfamily","hikvision","homeassistant","ip-camera","open-data","reolink","security-camera","surveillance"],"created_at":"2026-06-28T09:03:29.010Z","updated_at":"2026-06-28T09:03:30.019Z","avatar_url":"https://github.com/ch-bas.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CCTV Camera Database\n\nAn open, structured database of 1,577 CCTV / IP camera models and their technical specifications, covering 68 brands across every market segment — from budget consumer WiFi cameras to enterprise PTZ domes and thermal imaging systems. Each camera is a validated JSON file, aggregated into a single queryable dataset (JSON + CSV).\n\n[![cameras](https://img.shields.io/badge/cameras-1%2C577-blue)](data/cameras.json)\n[![brands](https://img.shields.io/badge/brands-68-green)](cameras/)\n[![license](https://img.shields.io/badge/license-CC0-lightgrey)](LICENSE)\n\n---\n\n## Why this exists\n\nCamera spec sheets are scattered across vendor PDFs, retailer pages, and paywalled databases (IPVM, etc.) in inconsistent formats. This repo normalises them into one machine-readable structure so they can be compared, filtered, and reused.\n\n**The dataset is CC0 and always will be** — free to use, copy, and redistribute with no restrictions. The website is just a convenient viewer; the data here is the source of truth.\n\n---\n\n## Browse online\n\n**[Browse the database → cctv-database.com](https://cctv-database.com)**  \n\nPrefer to self-host or browse offline? A [standalone demo](docs/demo.html) (just `demo.html` + `cameras.json`, no build step) is included — serve the `docs/` folder locally with any static server, e.g. `python3 -m http.server` inside `docs/`, then open it.  \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/demo.gif\" alt=\"CCTV Camera Database — browse, search, filter, and inspect 1,296 cameras across 64 brands\" width=\"800\" /\u003e\n\u003c/p\u003e\n\n**What you see above:**\n- **Search** — instant full-text search across brand, model, and features\n- **Filter** — narrow by brand, camera type, night vision, resolution, or market\n- **Sort** — click any column header to sort ascending/descending\n- **Detail drawer** — click a row to slide open the full spec sheet (resolution, connectivity, protocols, storage, audio, pricing, source links)\n- **Pagination** — page through all 1,577 cameras, 25 per page\n- **Stats bar** — live counts for total cameras, brands, 4K+, WiFi, and no-subscription models\n\n---\n\n## How this was built\n\nThe database was assembled with the help of [Claude Code](https://claude.ai/code).\n\nSpecs are sourced from manufacturer datasheets and reputable retailer listings —\neach entry includes a `sources` array with URLs. As with any compiled dataset,\nerrors are possible; always verify against the official datasheet before purchasing\nor deploying.\n\nThe demo video was produced with [hve-spielberg](https://github.com/nebrass/hve-spielberg),\na Claude Code skill for AI-powered video production built on [Remotion](https://remotion.dev).\n\n---\n\n## Repository layout\n\n```\ncctv-camera-database/\n├── cameras/              # source of truth — one JSON file per camera, grouped by brand\n│   ├── hikvision/        # 150 cameras\n│   ├── reolink/          # 122 cameras\n│   ├── dahua/            # 155 cameras\n│   ├── hanwha/           #  71 cameras\n│   ├── axis/             #  66 cameras\n│   ├── tapo/             #  62 cameras\n│   └── …60 more brands\n├── data/                 # GENERATED — do not edit by hand\n│   ├── cameras.json      # all 1,577 cameras as one array\n│   └── cameras.csv       # flattened, spreadsheet-friendly\n├── schema/\n│   └── camera.schema.json\n├── scripts/\n│   └── build.js          # aggregates + validates cameras/ → data/\n├── docs/\n│   └── glossary.md\n├── CONTRIBUTING.md\n└── LICENSE\n```\n\n---\n\n## Quick start\n\n```bash\nnpm install   # installs Ajv for schema validation (no runtime deps)\nnpm run build # validates all JSON, writes data/cameras.json + data/cameras.csv\n```\n\n### Querying the data\n\n```js\nconst cameras = require('./data/cameras.json');\n\n// All 4K PoE outdoor cameras\nconst poe4k = cameras.filter(c =\u003e\n  c.connectivity?.includes('poe') \u0026\u0026\n  c.resolution.megapixels \u003e= 8\n);\n\n// All cameras with color night vision\nconst colorNight = cameras.filter(c =\u003e\n  c.night_vision?.type === 'color'\n);\n\n// All cameras for the UK market\nconst uk = cameras.filter(c =\u003e\n  c.markets?.includes('UK')\n);\n\n// All cameras with no subscription fee\nconst noSub = cameras.filter(c =\u003e\n  c.features?.some(f =\u003e f.toLowerCase().includes('no subscription'))\n);\n```\n\nOr open `data/cameras.csv` in any spreadsheet for a quick browse.\n\n---\n\n## Coverage\n\n### By the numbers\n\n| Metric | Count |\n|--------|-------|\n| Total cameras | **1,577** |\n| Brands | **68** |\n| Form factors | 10 (bullet, dome, turret, PTZ, dual-lens, panoramic, covert, box, fisheye, doorbell) |\n| PoE wired | 1,088 |\n| WiFi | 438 |\n| Battery / wire-free | 152 |\n| 4K / 8MP+ | 464 |\n| 4–5MP | 688 |\n| 1080p–2MP | 397 |\n\n### All 68 brands\n\n| Brand | Cameras | Segment |\n|-------|---------|---------|\n| Hikvision | 150 | Enterprise + consumer, global |\n| Reolink | 122 | Prosumer, no-subscription, global |\n| Dahua | 155 | Enterprise + consumer, global |\n| Hanwha | 71 | Enterprise AI, Korea/global |\n| Axis | 66 | Enterprise premium, global |\n| Tapo (TP-Link) | 62 | Consumer budget, global |\n| Eufy (Anker) | 36 | Consumer no-subscription, global |\n| Arlo | 29 | Consumer premium wire-free, global |\n| Ring (Amazon) | 25 | Consumer ecosystem, US/EU/AU |\n| Avigilon | 24 | Enterprise NDAA, US/CA |\n| Amcrest | 24 | Prosumer, US |\n| VIGI (TP-Link) | 24 | Business/SMB PoE, global |\n| Ubiquiti UniFi | 26 | Prosumer/SMB, US/global |\n| Annke | 23 | Prosumer, global |\n| Google Nest | 19 | Consumer smart home, global |\n| Bosch | 160 | Enterprise + thermal, EU/global |\n| EZVIZ (Hikvision) | 21 | Consumer, global |\n| Lorex | 21 | Consumer NVR systems, CA/US |\n| HiLook (Hikvision) | 20 | Budget installer, EU/UK/AU |\n| Lupus Electronics | 20 | Privacy-first, DE/AT/CH |\n| Tiandy | 20 | Enterprise + prosumer, CN/ME/Africa |\n| Uniview | 15 | Enterprise NDAA, global |\n| Blink (Amazon) | 16 | Budget battery, US/UK/EU |\n| Swann | 16 | Consumer, AU/US/UK |\n| ABUS | 76 | Consumer + professional, GDPR-first, DE/AT/CH |\n| CP Plus | 14 | India #2 brand, IN |\n| GeoVision | 15 | Enterprise, TW/Asia/global |\n| IMOU (Dahua) | 15 | Consumer, global |\n| Milesight | 15 | Prosumer/Enterprise IoT, global |\n| Pelco | 15 | Enterprise legacy, NA/global |\n| Vivotek | 15 | Enterprise AI, global |\n| Wyze | 15 | Budget consumer, US |\n| ACTi | 14 | Enterprise IP + analog, NDAA, TW/global |\n| FLIR (Teledyne) | 12 | Thermal imaging, NA/EU |\n| Kedacom | 12 | Enterprise, CN/global |\n| Sunell | 12 | Prosumer/Enterprise, CN/global |\n| SV3C | 13 | Budget consumer, CN/US |\n| Synology | 12 | NAS-native cameras, global |\n| TVT Digital | 12 | Prosumer budget, CN/IN/SE Asia |\n| Hi-Focus | 10 | Made-in-India, BIS certified, IN |\n| Mobotix | 9 | Enterprise GDPR-first, EU |\n| Costar | 8 | Enterprise (Arecont successor), US |\n| Intelbras | 8 | #1 Latin America, BR/AR/LATAM |\n| Luma (Snap One) | 8 | Custom integrator, NA |\n| Yale | 8 | Consumer smart home, UK/EU |\n| Camius | 6 | Consumer direct, US |\n| Cathexis | 6 | Enterprise VMS, ZA/ME |\n| LaView | 6 | Consumer WiFi/solar/4G, US |\n| March Networks | 6 | Enterprise retail/banking, NA |\n| Netatmo | 6 | Privacy-first no-subscription, EU |\n| Secureye | 6 | Budget consumer, IN |\n| ADT | 4 | Monitored security, US |\n| Hive (British Gas) | 5 | Consumer smart home, UK |\n| KBvision | 5 | Budget installer, VN |\n| Somfy | 3 | Smart home, FR/EU |\n| Godrej | 4 | Consumer, IN |\n| Honeywell | 4 | Enterprise, US/IN |\n| Qubo (Hero) | 4 | Consumer IoT, IN |\n| SimpliSafe | 4 | DIY monitored security, US |\n| Zebronics | 4 | Budget consumer, IN |\n| Aqara | 3 | Smart home HomeKit, EU/global |\n| i-PRO (Panasonic) | 3 | Enterprise #1 Japan, JP/global |\n| IDIS | 3 | Enterprise DirectIP, KR/global |\n| Steinel | 3 | Outdoor smart light/cam, DE/AT/CH |\n| Verkada | 3 | Cloud-managed enterprise, US/CA |\n| Ajax | 2 | Professional alarm, EU/UK |\n| Bosch Smart Home | 2 | Consumer smart home, DE/AT/CH |\n| Canon | 2 | Enterprise optical, JP/global |\n\n### Market coverage\n\nCameras are tagged with `markets[]` where relevant:\n\n| Market | Tagged cameras | Key brands |\n|--------|---------------|-----------|\n| EU | 88 | ABUS, Netatmo, Aqara, Somfy, Axis |\n| DE | 58 | ABUS, Lupus, Steinel, Bosch Smart Home |\n| AT / CH | 40 each | ABUS, Lupus, Aqara, Netatmo |\n| UK | 39 | Yale, Hive, Ajax, Ring, HiLook |\n| global | 37 | Hikvision, Axis, Hanwha, i-PRO |\n| IN | 32 | CP Plus, Qubo, Godrej, Zebronics |\n| US | 28 | Wyze, Blink, Verkada, SimpliSafe, ADT |\n| FR | 25 | Somfy, Netatmo, EZVIZ |\n| AE / SA / MENA | 22 each | Hikvision, Dahua, Tapo, EZVIZ |\n| VN | 9 | KBvision, Hikvision, Dahua, EZVIZ |\n| JP | 6 | i-PRO, Canon, Tapo |\n| KR | 5 | Hanwha, IDIS |\n| AU | 13 | Swann, Reolink, Ring, Arlo, Eufy |\n| CA | 13 | Lorex, Avigilon, Ring, Reolink |\n| AR / BR / CL / LATAM | 10 each | Intelbras, Hikvision, Dahua, EZVIZ |\n\n---\n\n## Schema\n\nEach camera JSON follows `schema/camera.schema.json`. Required fields:\n\n```json\n{\n  \"id\": \"reolink-rlc-823a\",\n  \"brand\": \"Reolink\",\n  \"model\": \"RLC-823A\",\n  \"type\": \"bullet\",\n  \"resolution\": { \"megapixels\": 8, \"label\": \"4K UHD\" }\n}\n```\n\nCommon optional fields:\n\n| Field | Type | Example |\n|-------|------|---------|\n| `connectivity` | `string[]` | `[\"poe\", \"wifi\", \"ethernet\"]` |\n| `night_vision.type` | `string` | `\"color\"` / `\"ir\"` / `\"none\"` |\n| `night_vision.range_m` | `number` | `30` |\n| `power.method` | `string` | `\"PoE (802.3af) / DC 12V\"` |\n| `ip_rating` | `string` | `\"IP67\"` |\n| `audio.two_way` | `boolean` | `true` |\n| `protocols` | `string[]` | `[\"onvif\", \"rtsp\"]` |\n| `markets` | `string[]` | `[\"UK\", \"EU\", \"DE\"]` |\n| `features` | `string[]` | `[\"no subscription\", \"IP67\"]` |\n| `sources` | `string[]` | datasheet / retailer URLs |\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the full field reference and naming conventions.\n\n---\n\n## Contributing\n\n**Three paths — pick the one that fits you:**\n\n| | Path | Best for |\n|-|------|---------|\n| 🌐 | [Open a GitHub issue](../../issues/new?template=add-camera.yml) | Anyone — fill a web form, no cloning needed |\n| 🧙 | `npm run add` — interactive CLI wizard | Regular contributors — guided questions, writes JSON for you |\n| 🛠 | Edit JSON directly | Developers — see [CONTRIBUTING.md](CONTRIBUTING.md) |\n\nThe wizard flow:\n```bash\ngit clone https://github.com/YOUR_USERNAME/cctv-camera-database.git\ncd cctv-camera-database \u0026\u0026 npm install\nnpm run add      # asks questions, writes the JSON file\nnpm run build    # validates everything\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the full field reference, naming conventions, and what makes a good entry.\n\n---\n\n## Roadmap\n\n- [x] JSON Schema validation in CI (GitHub Actions)\n- [ ] Static web frontend — search, filter, compare\n- [ ] Side-by-side comparison view (2–4 cameras)\n- [ ] Frigate-compatible config export\n- [ ] Home Assistant integration template\n- [ ] API endpoint (read-only, hosted)\n\n---\n\n## Community\n\n| | |\n|-|--|\n| 🐛 Report a data error | [Open a correction issue](../../issues/new?template=correction.yml) |\n| ➕ Add a missing camera | [Open a camera submission](../../issues/new?template=add-camera.yml) |\n| 🔒 Report a security issue | [GitHub Security Advisories](../../security/advisories/new) |\n| 💬 Code of conduct | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) |\n| 📋 Changelog | [CHANGELOG.md](CHANGELOG.md) |\n\n## Disclaimer\n\nSpecifications are compiled from manufacturer datasheets and reputable retailers and may contain errors or become outdated. Always confirm against the official datasheet (linked in each entry's `sources` array) before purchasing. Not affiliated with any manufacturer.\n\n## License\n\nData is released under [CC0 1.0](LICENSE) (public domain). Trademarks and model names belong to their respective owners.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fch-bas%2Fcctv-camera-database","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fch-bas%2Fcctv-camera-database","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fch-bas%2Fcctv-camera-database/lists"}