I’ve created a copy of the APK that allows User Certificates, otherwise it fails to connect when sniffing.
I’ve reached a dead end. It tasks about Turn/Stun/Ice, and I’m not sure where to go now.
I’ve been able to get to this point, but I can’t seem to get any further:
(I’ve obsucated the results as there’s credentials inside)
From the API: “/device/getWebrtcTicket”
I’ve asked both Monkey Vision and VicoHome support regarding any API or feeds, and they both don’t offer anything. VicoHome said they may add something in the future.
It’s worth an ask Michael. My guess is as far as “easy” methods go, they seem to encrypt everything within that stream from port 8765 and our only hope is a bootloader method. Must admit I’m suprised how responsive the local view (on app) is if it is all going via cloud and then back to the app, which initially made me think there was some P2P comms going between the cam and client - but no proof so far.
I’ve been trying to work through this same problem. I see the same direct UDP stream in Wireshark that you’ve described, but it seems the video is being displayed through WebRTC. With WebRTC, the camera (and the connecting device) are each a random port greater than 37000 or so for the duration of the stream. If you end the stream and start it again, the ports will change. I’m guessing this functionality is built directly into the camera to create a local stream?
At any rate, I’m afraid I’m at a dead end. I’ve also tried scanning the camera with nmap, but it shows no open ports, so no easy way to grab a video feed there. VicoHome does advertise some integration with Google Assistant/Alexa, so it’s not completely closed off, but there doesn’t seem to be much documentation.
I’d be very interested if there was any further development on this topic.
I don’t know if this might help someone but I ran across a recent blog post (Jul 17) from a VicoHome dev regarding WebRTC and something new called IoT-RTC. Not much in the way of technical details but it may mean there are hooks in place that weren’t there before.