f80f7ab314
This commit adds the complete Strix IP camera stream discovery system: - Go-based API server with SSE support for real-time updates - 3,600+ camera brand database with stream URL patterns - Intelligent fuzzy search across camera models - ONVIF discovery and stream validation - RESTful API with health check, camera search, and stream discovery - Makefile for building and deployment - Comprehensive README documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
424 lines
8.1 KiB
JSON
424 lines
8.1 KiB
JSON
{
|
|
"brand": "Hootoo",
|
|
"brand_id": "hootoo",
|
|
"last_updated": "2025-10-17",
|
|
"source": "ispyconnect.com",
|
|
"entries": [
|
|
{
|
|
"models": [
|
|
"120c",
|
|
"206",
|
|
"211",
|
|
"212",
|
|
"HT-1210F",
|
|
"HT-IP006",
|
|
"HT-IP006N PTZ",
|
|
"HT-IP206",
|
|
"HT-IP206 PTZ",
|
|
"HT-IP210F",
|
|
"IP-212",
|
|
"OLD PTZ",
|
|
"Other"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.asf"
|
|
},
|
|
{
|
|
"models": [
|
|
"211",
|
|
"BT-Home",
|
|
"HT-211",
|
|
"HT-IP008HDP",
|
|
"HT-IP210HDP",
|
|
"HT-IP211HDP",
|
|
"HT-IP211HTP",
|
|
"ip211",
|
|
"IP211HDP",
|
|
"IP960HD",
|
|
"Other"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 0,
|
|
"url": "/11"
|
|
},
|
|
{
|
|
"models": [
|
|
"212",
|
|
"HT-IP006N PTZ"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 0,
|
|
"url": "/1"
|
|
},
|
|
{
|
|
"models": [
|
|
"92",
|
|
"F-Series",
|
|
"HT IP212",
|
|
"HT-IP006",
|
|
"HT-IP006N PTZ",
|
|
"HT-IP206",
|
|
"HT-IP206 PTZ",
|
|
"HT-IP210F",
|
|
"HT-IP210P",
|
|
"HT-IP212/HT-IP212F",
|
|
"ip206",
|
|
"IP206",
|
|
"ip210f",
|
|
"IP212",
|
|
"Other",
|
|
"Speed Camera"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.asf?user=[USERNAME]&pwd=[PASSWORD]&resolution=[WIDTH]x[HEIGHT]"
|
|
},
|
|
{
|
|
"models": [
|
|
"apm-h803-mpc",
|
|
"HOOTOO HD720p",
|
|
"HT-IP009HDP",
|
|
"HT-IP210HDP",
|
|
"IP009HDP",
|
|
"Other"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "cgi-bin/videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"F-Series",
|
|
"HT-1210F",
|
|
"HT-206IP",
|
|
"HT-IP006N PTZ",
|
|
"HT-IP206",
|
|
"HT-IP206 PTZ",
|
|
"HT-IP208F",
|
|
"HT-IP210F",
|
|
"HT-IP210P",
|
|
"HT-IP211HDP",
|
|
"HT-IP212",
|
|
"jhf",
|
|
"OLD PTZ",
|
|
"Other"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.asf?user=[USERNAME]&pwd=[PASSWORD]&resolution=64&rate=0"
|
|
},
|
|
{
|
|
"models": [
|
|
"F-Series",
|
|
"HT-IP006",
|
|
"HT-IP206",
|
|
"HT-IP206 PTZ",
|
|
"HT-IP210P",
|
|
"HT-IP212",
|
|
"Other"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "snapshot.cgi?user=[USERNAME]&pwd=[PASSWORD]&count=0"
|
|
},
|
|
{
|
|
"models": [
|
|
"F-SERIES",
|
|
"HT-IP006",
|
|
"HT-IP006N PTZ",
|
|
"HT-IP206 PTZ",
|
|
"HT-IP212",
|
|
"Other"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0"
|
|
},
|
|
{
|
|
"models": [
|
|
"h-210p",
|
|
"H212P",
|
|
"HT-IP206",
|
|
"HT-IP210F"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?rate=0"
|
|
},
|
|
{
|
|
"models": [
|
|
"hd211"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 0,
|
|
"url": "/0"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP006",
|
|
"HT-IP006N PTZ",
|
|
"HT-IP206",
|
|
"HT-IP206 PTZ",
|
|
"HT-IP210F",
|
|
"IP206",
|
|
"Old PTZ",
|
|
"Other"
|
|
],
|
|
"type": "VLC",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.asf?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP009HDP",
|
|
"IP009HDP",
|
|
"Other"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "cgi-bin/video_snapshot.cgi?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"HT-IP210F",
|
|
"HT-IP210P",
|
|
"HT-IP212",
|
|
"Other"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?rate=11"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"HT-IP206 PTZ"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"HT-IP206 PTZ",
|
|
"HT-IP207F",
|
|
"Other"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"HT-IP208F",
|
|
"Other"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"HT-IP206 PTZ",
|
|
"Other"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "snapshot.cgi"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"HT-IP212",
|
|
"IP210F"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?resolution=8&rate=13"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"Other"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"HT-IP210F",
|
|
"HT-IP212"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?usr=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206",
|
|
"HT-IP210P",
|
|
"Other"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?user=[USERNAME]&password=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206 PTZ",
|
|
"Other"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "snapshot.cgi?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206 PTZ",
|
|
"Other"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "snapshot.cgi?"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206 PTZ",
|
|
"HT-IP210F",
|
|
"HT-IP210P",
|
|
"Other",
|
|
"TV-IP551W"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "video.cgi?resolution=VGA"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP206 PTZ",
|
|
"Other"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/videostream.asf"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP210F",
|
|
"HT-IP212",
|
|
"Other"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.asf?usr=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP210F",
|
|
"HT-IP210P",
|
|
"Other"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.asf?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP210F"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "snapshot.jpg?user=[USERNAME]&pwd=[PASSWORD]&strm=[CHANNEL]"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP211HDP"
|
|
],
|
|
"type": "VLC",
|
|
"protocol": "rtsp",
|
|
"port": 0,
|
|
"url": "11"
|
|
},
|
|
{
|
|
"models": [
|
|
"HT-IP211HDP",
|
|
"IP960"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 0,
|
|
"url": "/12"
|
|
},
|
|
{
|
|
"models": [
|
|
"Other"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "image/[CHANNEL].jpg"
|
|
},
|
|
{
|
|
"models": [
|
|
"Other"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "video.cgi?resolution=[WIDTH]x[HEIGHT]"
|
|
},
|
|
{
|
|
"models": [
|
|
"Other"
|
|
],
|
|
"type": "VLC",
|
|
"protocol": "rtsp",
|
|
"port": 0,
|
|
"url": "[CHANNEL]/[USERNAME]:[PASSWORD]/main"
|
|
},
|
|
{
|
|
"models": [
|
|
"Other"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/videostream.cgi"
|
|
}
|
|
]
|
|
} |