The place where random ideas get written down and lost in time.
2018-10-07 - Wyze App
Category DEVDesktop app to access Wyze cams.
The TinyCam code seems easily reversible, and could be done as a desktop app instead of android.
To play an h264 stream, have a look at JavaCV https://github.com/bytedeco/javacv (Java wrappers around OpenCV ... can be useful for a lot of other applications).
In that specific case, a C# app might be better than Java as main target is Windows (potentially cross-platform with MonoDevelop, not sure if it’s even worth bothering here).
It’s a throw-away prototype, so failure is an option. The simplified goals would be:
- Start by simulating whatever tinycam came up with, because it’s an easy start.
- TinyCam only takes care of discovering and connecting to local live feeds.
- Need to realize this is not my end goal. What I want is really:
- View remote notifications.
- View remote live feeds.
- View remote playback feeds.
- Doing this would probably looking at the wyze apk with an ssl proxy to capture the json payloads.
Doing it in C# would be also a good exercise to do an UWP.
https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide
UWP:
- Requires/useful if using the Windows App Store
- Can be sideloaded in Win 10 if device is set in dev mode.
- APIs access to Win 10 features: Tiles, badges, Cortana, bunch of other crap.
- Various languages/UI combos supported: JS HTML, C# XAML, C++ DirectX.
So maybe UWP is overkill in this case. Just stick to a regular C# desktop with the old style C# gui builder. Use VS Community, and expect it to be ages behind in terms of code completion.
Why not a web app instead of a desktop app?
- Live viewing should work using any web page that can play an h264 feed. “In theory”?
- In the mobile app, notifications are seen using a download + local player. A web app could use local storage and/or just stream the video feed.
So it’s worth investigating, even if it turns out to not work well.
Results (done in JS):