{"id":50757915,"url":"https://github.com/dev-sunghwan/onvif_explorer","last_synced_at":"2026-06-11T07:01:41.081Z","repository":{"id":339683339,"uuid":"1162979077","full_name":"dev-sunghwan/onvif_explorer","owner":"dev-sunghwan","description":"A web application for testing ONVIF SOAP commands via a browser GUI.","archived":false,"fork":false,"pushed_at":"2026-05-16T22:49:25.000Z","size":202,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T00:45:23.761Z","etag":null,"topics":["camera","flask","ip-camera","onvif","onvif-client","python","soap","testing-tool","wsdl"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dev-sunghwan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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-02-20T23:30:00.000Z","updated_at":"2026-05-16T22:49:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dev-sunghwan/onvif_explorer","commit_stats":null,"previous_names":["dev-sunghwan/onvif_test_tool","dev-sunghwan/onvif_explorer"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dev-sunghwan/onvif_explorer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-sunghwan%2Fonvif_explorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-sunghwan%2Fonvif_explorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-sunghwan%2Fonvif_explorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-sunghwan%2Fonvif_explorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dev-sunghwan","download_url":"https://codeload.github.com/dev-sunghwan/onvif_explorer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dev-sunghwan%2Fonvif_explorer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34186385,"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-11T02:00:06.485Z","response_time":57,"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":["camera","flask","ip-camera","onvif","onvif-client","python","soap","testing-tool","wsdl"],"created_at":"2026-06-11T07:01:39.967Z","updated_at":"2026-06-11T07:01:41.072Z","avatar_url":"https://github.com/dev-sunghwan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ONVIF Explorer\n\nONVIF Explorer is a Flask-based web application for testing ONVIF SOAP commands through a browser GUI.\n\nEnter camera connection details, load a WSDL URL, choose an operation, fill in the dynamically generated parameter form, and inspect both the parsed JSON result and the raw SOAP XML exchange. I built it as a practical developer and QA tool for quickly checking ONVIF behavior without needing a full certification workflow.\n\n![ONVIF Explorer screenshot](docs/screenshot.png)\n\n\u003e [Korean documentation (README_ko.md)](README_ko.md)\n\n## Why this tool?\n\nExisting ONVIF tools solve adjacent problems, but they are not ideal for quick interactive command testing:\n\n- **ODM (ONVIF Device Manager)** is useful for browsing devices and streams, but not for invoking arbitrary operations and inspecting raw responses.\n- **ODTT (ONVIF Device Test Tool)** is aimed at conformance testing rather than day-to-day debugging.\n\nONVIF Explorer fills that gap by making arbitrary ONVIF operations directly testable from a lightweight browser interface.\n\n| | ODM | ODTT | ONVIF Explorer |\n|---|---|---|---|\n| Interactive SOAP command test | no | no | yes |\n| Raw SOAP XML visible | no | no | yes |\n| Any ONVIF operation on demand | no | no | yes |\n| ONVIF profile detection | no | yes | yes |\n| Complexity | low | high | low |\n| Target user | general users | certification engineers | developers / QA engineers |\n\n## Quick start\n\n### Option 1: `run.bat` on Windows\n\n```text\nDouble-click run.bat\n```\n\n### Option 2: Manual setup\n\n```bash\ngit clone https://github.com/dev-sunghwan/onvif_explorer.git\ncd onvif_explorer\npython -m venv .venv\n.venv\\Scripts\\activate\npip install -r requirements.txt\npython app.py\n```\n\nOpen `http://127.0.0.1:5000` in your browser.\n\n## Core features\n\n- connection test through `GetDeviceInformation`\n- ONVIF profile detection through `GetServices`\n- preset support for common ONVIF services plus custom WSDL URLs\n- dynamic operation forms generated from XSD metadata\n- raw request and response XML inspection\n- command history and last-response-value reuse for faster follow-up operations\n\n## Supported service areas\n\n- device management\n- media and media2\n- PTZ\n- imaging\n- events and analytics\n- device I/O\n- recording, search, and replay\n- provisioning and thermal services\n- access control, door control, and credential services\n\n## Project structure\n\n```text\nonvif_explorer/\n├── app.py\n├── config.py\n├── onvif_client/\n│   ├── wsdl_loader.py\n│   ├── type_introspector.py\n│   ├── command_executor.py\n│   ├── serializer.py\n│   └── profile_checker.py\n├── templates/\n└── static/\n```\n\n## Tech stack\n\n- Python 3\n- Flask\n- zeep\n- lxml\n- Bootstrap 5\n- Vanilla JavaScript\n\n## Roadmap\n\n- command execution history with save and replay\n- raw SOAP XML direct-send mode\n- richer auto-fill flows for `Set*` operations from previous responses\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdev-sunghwan%2Fonvif_explorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdev-sunghwan%2Fonvif_explorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdev-sunghwan%2Fonvif_explorer/lists"}