Skip to main content

ActionStreamer Platform

Introduction

What can you do with the ActionStreamer platform and API?

  • Design your smart cameras and video workflows by starting with our reference hardware and example code.
  • Manage your fleet of cameras through the ActionStreamer portal, or design your own.
  • Configure cameras to record even when offline, and get access to those clips when the device comes back online.
  • Monitor device status: battery percentage, network quality, temperature, and much more.
  • Manage the wireless networks your cameras can connect to.
  • Watch live feeds and review past video clips.
  • Direct any smart camera to join a video conference for remote monitoring and assistance.
  • Share camera access and control with collaborators.
  • Combine your analytics and collected data with an ActionStreamer powered video and device management system.
  • Use your business logic to trigger camera streams and pull video clips from the device.
  • Share video clips with collaborators and external audiences.
  • Receive alerts about device health and online/offline status.
  • Get alerted with AI tagging for object detection.
  • Search through past clips for specific tags.

Getting Started

If you don't already have an ActionStreamer account, please contact us at developer@actionstreamer.com.

Get started by creating a new API key and secret key.

Sign in to the portal at https://portal.actionstreamer.com and go to Settings - API Keys: https://portal.actionstreamer.com/settings/api_keys. Click "Add API Key" and "Show/Hide Secret Keys" to copy your secret key.

The key and secret key will look something like this:

Access Key: it7qeDTfwUmhxxxxxxxxxx==
Secret Key: xyZdLAdWpyRh1kEVSdvf9VzPHoXNAg8c84EPfrjxxxxxxxxxxxxxxxxxxxxxxxxx

Our API uses HMAC SHA256 authentication for all endpoints (except the test endpoint). This is very similar to the authentication used by Amazon Web Services. You can interact with the endpoints directly if you implement the signature method below, or you can use our Python library (pip install actionstreamer), which takes care of it for you in its wrapped API functions.

def get_hmac_signature(secret_key: str, method: str, path: str, headers, parameters: dict, body: str = None)-> tuple[str, str] | None:

if 'Content-Type' in headers:
del headers['Content-Type']

header_string = dictionary_to_string(headers)
parameter_string = dictionary_to_string(parameters)

# Path should be in the format /v1/event
if not path.startswith('/'):
path = '/' + path

if path.endswith('/') and len(path) > 1:
path = path[:-1]

string_to_sign = '\n'.join([method, path, header_string, parameter_string, body if body else ''])
string_to_sign = string_to_sign.strip()

# Generate the HMAC SHA256 signature
hmac_signature = hmac.new(secret_key.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha256)

# Convert the HMAC signature to hexadecimal
return hmac_signature.hexdigest()


def dictionary_to_string(dictionary: dict) -> str:

result = ''
sorted_keys = sorted(dictionary.keys())

for key in sorted_keys:
result += f"{key}: {dictionary[key]}\n"

return result