Working with the API: getting previews
Introduction
This blog post is an example of how you can use the Eagle Eye Networks API to embed the preview stream where ever you want.
Background
The API makes it very easy to get the preview stream for all the cameras in an account. The preview stream is a series of JPEG images and requires authentication. Our code today will show how to use the API to provide the images on a webpage without authentication.
Step 1:
We are going to use the code at mcotton/watcher to run a Node.js server that will login, subscribe to the poll stream, notify the client and proxy the image requests. We could remove the poll stream to make the example very basic but it is worth going through it now.
Download or clone the git repository.
Step 2:
You will need to have Node.js installed (current version is v0.10.26). Once it is installed, open up the command line in the same directory as the example code, you can install the dependencies by running
npm install
Edit the file named config.js
, replace 'your_username' and 'your_password' with your username and password
module.exports = {
username = 'your_username',
password = 'your_password'
}
Save the file and start the server
npm start
Step 3:
You can now open a browser at go to localhost:3000 and you will see previews show up as the become available on the server.
Because we are subscribed to the poll stream we are only fetching previews when they are available. This makes it very efficient with the bandwidth.
Conclusion:
You can now treat the image URLs just like static assets on your server. You can put it behind your own firewall or you can make it publicly available. In both cases your username and password are safely stored on the server and never sent to the client.