Inspiration

Pet owners miss a surprising amount of their pets' lives.

While we sleep, work, or leave the house, small pets such as hamsters may be eating, exploring, running on their wheel, or doing something completely unexpected.

I wanted to answer a very simple question:

"What was my pet doing while I wasn't watching?"

Ring can capture moments that happen when nobody is actively watching. Its developer platform also supports use cases around pets and video intelligence, which made it a natural fit for this idea.

I wanted to see whether Ring footage and AI could turn those missed moments into something more meaningful than individual video clips: a simple report showing how a pet spent that time.

I also found old videos of my own hamster, which gave me real footage to test the idea instead of relying on synthetic or stock videos.

What it does

Pet Activity Report turns pet video clips into a simple activity summary.

Amazon Nova 2 Lite analyzes each clip and identifies behaviors such as:

  • eating
  • exploring
  • wheel running

Multiple analyzed clips are then combined into one report with behavior counts, highlights, and links back to the original clips.

Instead of reviewing every video individually, an owner can quickly see what their pet was doing while they were sleeping, working, or away.

The goal is not medical monitoring or diagnosis. It is a friendly way to discover the everyday moments that are easy to miss.

How I built it

The prototype supports two video input paths.

For the Ring path, I built a pipeline using the Ring Partner API:

Ring Event History → Media Clips MP4 → Amazon Bedrock / Nova 2 Lite → behavior events

For behavior verification, I also used real videos of my own hamster and passed them through the same Nova analyzer.

Each clip produces structured behavior events such as eating, exploring, and wheel_running.

A deterministic report builder then combines the results from multiple clips into a single report.json:

Multiple clips → Nova 2 Lite → behavior events → Report Generator → report.json

Finally, a React + Vite frontend turns that generated JSON into the Pet Activity Report, showing behavior counts, highlights, and playback of the corresponding clips.

The main technologies are:

  • Ring Partner API / Developers Playground
  • Amazon Bedrock
  • Amazon Nova 2 Lite
  • Python
  • FFmpeg / ffprobe
  • Pydantic
  • React + Vite

Challenges

One of the biggest challenges was understanding how Ring events map to recorded video.

Event History provides event metadata, while Media Clips retrieves existing video using a timestamp and duration rather than an event ID. I therefore had to connect the event's start/end information to the Media Clips request before sending the resulting MP4 to Nova.

I also found that the Developers Playground's "Simulate live view event → Motion" appeared in Event History as on_demand rather than motion in my tests. This led me to separate Playground and production-oriented Ring profiles and to validate event types on the client side.

Another challenge was connecting AI analysis to a report without adding information that the model never detected.

For example, my local hamster clips do not contain reliable wall-clock timestamps. Instead of inventing times such as "12:42", the generated report honestly labels them Clip 1, Clip 2, and Clip 3.

The report captions are also deterministic. If Nova detects wheel_running, the report can say "Running on the wheel," but it does not invent additional details that were not present in the structured analysis.

I documented the Ring-specific issues, observations, and suggested improvements in a separate Friction Log.

What I learned

This project taught me that recognizing something in a video is only one part of building a useful AI product.

The next question is just as important:

What can the product safely and honestly say based on that analysis?

Building the Report Generator made that especially clear. Model output, clip metadata, timestamps, and UI copy all have different levels of certainty, so I designed the report to preserve those boundaries rather than fill in missing information.

I also learned how Ring Event History, Media Clips, Playground simulations, and production-oriented motion events fit together, and how recorded Ring media can be passed into a multimodal model such as Nova 2 Lite.

What's next

The core stages now exist:

Ring / local video → Nova 2 Lite → behavior events → Report Generator → Pet Activity Report

The current prototype still requires some manual orchestration. For example, multiple Ring clips are not yet automatically collected and processed into a report as one unattended workflow.

Next steps could include:

  • automatically collecting multiple Ring activity clips
  • generating daily or overnight reports without manual commands
  • supporting more small-pet behaviors
  • improving recognition for low-light and wide-angle footage
  • supporting other types of small pets

The long-term idea remains very simple:

While you were sleeping, working, or away — what was your pet up to?

Built With

  • amazon-bedrock
  • amazon-nova2lite
  • ffmpeg
  • python
  • react
  • ringdevelopersplayground
  • ringpartnerapi
  • vite
Share this project:

Updates

Submission history