Live cam / For researchers / Open data

Open trout behavior data

A continuous, public record of wild trout in a cold mountain stream: when fish are present, what they're doing, which individuals come back, and how the water looks, minute by minute. Free to use under CC BY 4.0.

Days of data

5

Since 2026-11-02

Sightings (last 30 days)

1,575

2,134 fish-minutes on camera

Behaviors logged

2,812

348 feeding, 1826 darts, 638 holds

Downloads

2026-11-05minutesevents
2026-11-04minutesevents
2026-11-03minutesevents
2026-11-02minutesevents
2026-11-01minutesevents
2026-10-31minutesevents
2026-10-30minutesevents
2026-10-29minutesevents
2026-10-28minutesevents
2026-10-27minutesevents
2026-10-26minutesevents
2026-10-25minutesevents
2026-10-24minutesevents
2026-10-23minutesevents

Live and programmatic access: feeding summary JSON, OpenAPI, and an MCP server for AI agents.

Data dictionary

FileFieldMeaning
minutes CSVtime_mtMinute timestamp, Mountain Time
minutes CSVfish_now / fish_maxFish detected in frame (latest / most in the minute)
minutes CSVfish_secondsSeconds in the minute with at least one fish in view
minutes CSVdriftCount of small drifting particles detected (relative)
minutes CSVclarity_pctBottom-detail sharpness vs. a reference (0-100); method being upgraded, see limitations
minutes CSVflow_pctSurface/drift motion vs. normal for this camera (100 = normal)
minutes CSVlight_pctScene brightness (0-100)
minutes CSVvisibilityHow far bottom detail survives: far, mid, near or bottom (new near/mid/far method; blank before it was switched on)
events CSVkindarrive, leave, hold, dart, grub (feeding move), company (2+ fish), shadow, muddy, clearing
sightings.csvholds / darts / feeding_moves / companyBehavior counts within one continuous sighting
sightings.csvfish, id_confidenceNamed fish matched by spot pattern, and match confidence
fish.csvspot_matchesTimes the fish's spot pattern was matched
hourly.csvfeeding_per_10_fish_minFeeding moves per 10 minutes of fish time in view

Methods

A DWE exploreHD 1080p underwater camera sits on the bed of a small, cold mountain stream below a waterfall, looking along the bottom. A Raspberry Pi beside the stream analyzes the video in real time and streams it live from about 30 minutes before sunrise to 30 minutes after sunset.

Limitations

How to cite

OnlyFins underwater trout cam, https://onlyfins.stream. CC BY 4.0 (credit OnlyFins with a link).

@misc{onlyfins_trout_cam,
  title = {OnlyFins: live underwater trout camera, behavior and stream-condition data},
  author = {{OnlyFins}},
  year = {2026},
  howpublished = {\url{https://onlyfins.stream/trout/research}},
  note = {Accessed 2026-11-05. CC BY 4.0}
}

Based on 5 days of camera data (2026-11-01 to 2026-11-05). Behaviors are labeled automatically by motion analysis and haven't been validated against hand counts, so treat these as patterns to watch, not findings. One camera, one pool.

▶ Subscribe on YouTube