18051

Access to live stream from Nest Cam

Question:

I'm the developer on a comprehensive Apple TV app for the Nest called Feather (featherapp.co). One issue that I've run into is that users are expecting to be able to view the live feed of their cameras.

Has anyone determined any way of accessing the live feed of the camera? I've done quite a bit of reverse engineering but I believe the stream itself is protected by some sort of DRM.

It looks like it's an RTMP stream that takes a format like below:

rtmps://oculus387-vir.dropcam.com/nexus/[cameraid]

with some parameters

_sessionToken,_isHD,_camera.uuid,time

I've tried a number of things but I'm never really able to establish a connection to the source. I'm a little out of my depth here, as an application developer getting into the more hardcore streaming technology. Any insight would be really appreciated!

Answer1:

There is no way to access the live stream using an API.

Answer2:

you can't acesses the live stream in any normal way but you may be able to get one frame per second from the old android api. I have tried this but i think they patched it or it doesn't work with the new cameras

#! /bin/bash i=00 while [ $i -lt 300 ] do curl 'https://home.nest.com/dropcam/api/cameras/_your camera url etc' -H 'Cookie: YOUR_COOKIE ETC' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: https://home.nest.com/' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' --compressed -o nest\ testing/$i.jpeg let i+=1 echo $i done ffmpeg -r 25 -start_number 1 -f image2 -i "%04d.jpg" -vcodec png video.avi o.avi

Recommend

  • skimr: how to remove histogram?
  • License verification for non-Market distribution channels? [closed]
  • how to write this SQL statement Update Where in?
  • ASP.NET Inconsistent PDF file download results
  • Convert Flex ByteArray in Java byte[]
  • Maven deploy secondary file to repository
  • Can we stream only flash videos throught RTMP?
  • How rooting is achieved programmatically?
  • Each user and their role in every database on the server
  • Did back key destroy an activity?
  • android DRM problem
  • Batch file working differently if ran in administrator mode
  • Android NDK vs iOS - performance issue [closed]
  • Convert Func to Func
  • How do I prepend to a stream in Bash?
  • Swipe Gesture Recognizer not working for me
  • Firefox augments the content-type of XMLHttpRequest
  • Return to second to last URL in MVC (return View with previous filter conditions applied)?
  • ASP.NET windows authentication should always ask for credentials
  • Google analytics measurement protocol session timeout and query time limits
  • Python/Javascript: WYSIWYG html editor - Handle large documents fast and/or design theory
  • Streaming screenshots over WebRTC as a video stream from iOS
  • Is there a package like bigmemory in R that can deal with large list objects?
  • Azure webjobs output logs indexing taking very long
  • Can't remove headers after they are sent
  • Laravel: Getting Session ID oddly truncates when using foreach
  • Bypass multiple inheritance in Java
  • ADO and msqli connections very slow
  • Marklogic : Query response time is very high
  • How can I sort a a table with VBA with given text condition?
  • How to use remove-erase idiom for removing empty vectors in a vector?
  • Is it possible to access block's scope in method?
  • Recording logins for password protected directories
  • how to do an event when i swipe from fragment to the other
  • Font Awesome Showing Box instead of Icons
  • Properly structure and highlight a GtkPopoverMenu using PyGObject
  • apache spark aggregate function using min value
  • Is it possible to post an object from jquery to bottle.py?
  • Does armcc optimizes non-volatile variables with -O0?
  • Python/Django TangoWithDjango Models and Databases