I loaded up the web interface on one of my cameras. I went to playback, download, search, and got a list of files available for download. I selected the first file in the list, and ran wireshark to sniff the traffic to the camera.
my system sent a
GET /ISAPI/Security/token?format=json HTTP/1.1
Accept:
/
If-Modified-Since: 0
X-Requested-With: XMLHttpRequest
Referer:
Accept-Language: en-US
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
Host: 192.168.100.240
Connection: Keep-Alive
Cookie: _wnd_size_mode=5; language=en; WebSession_245ae5ee5b=85f35f82cff41c6755527b83790d17435748621ed8cf0d1ff6d05ec6ddbc6a77
I received a 200 reply with the following payload:
{
"Token": {
"value": "8c121ecb32ec5d47cdc2487250832bc1"
}
}
My system then sent
GET /ISAPI/ContentMgmt/download?token=8c121ecb32ec5d47cdc2487250832bc1 HTTP/1.1
HOST: 192.168.100.240
User-Agent: NS-HTTP/1.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,
.;q=0.8
Accept-Language: ZH-cn;zh;q=0.5
Accept-Charset: gb2312,utf8;q=0.7,*;q=0.7
Connection: keep-alive
Content-Type: application/xml
Content-Length: 239
<?xml version='1.0'?><downloadRequest><playbackURI>rtsp:/192.168.100.240/Streaming/tracks/101?starttime=2020-06-10T04:00:00Z&endtime=2020-06-10T04:00:18Z&name=ch01_08000100163004203&size=3444796</playbackURI></downloadRequest>
this kicked off the download which completed w/ a 200 result code
HTTP/1.1 200 OK
Content-Type: application/binary; charset="UTF-8"
Connection: close
Content-Length:3444836
(binary data).