How to Download Surfline Cam Footage of Your Session (Full Rewind, Not 10-Minute Clips)

Written after doing exactly this for a Lower Trestles session. Last updated July 10, 2026.

Surfline Premium's Cam Rewind footage is stored as consecutive 10-minute MP4 files. A listing endpoint, available from your logged-in browser session, returns the exact URL of every segment for the last five days. Download the segments covering your session with curl, join them losslessly with ffmpeg, and you get one continuous file, a 2.5-hour session is one 9GB 1080p video you can scrub freely in Premiere or QuickTime. Footage expires after about five days, so do it soon after you surf.

This assumes you pay for Surfline Premium and are saving footage of your own session for personal review, which is what Rewind exists for. Surfline's terms don't contemplate bulk downloading, so keep it personal: don't redistribute the footage or hammer their servers.

I surfed Lowers from 4:00 to 6:30 one evening and wanted to review the whole session. Surfline's rewind player is genuinely painful for this: it's hard to rewind precisely, hard to tell where you are in time, and it only shows short windows at once. What I actually wanted was one long file on disk I could scrub with J-K-L in Premiere. It turns out that file almost already exists on Surfline's servers; you just have to go get it.

I didn't do most of this by hand. I asked an AI coding agent (Claude Code, with a browser-control harness) to figure it out and download everything, and the whole thing, from "here's my open Surfline tab" to a stitched 2h48m file, took about half an hour, most of which was download time. The mechanics below are what it found, written up so a human or an agent can follow them directly.

How Surfline rewind footage actually works

Three facts make this easy:

The cam alias is embedded in the surf report page's HTML (search the page source for "alias" or watch the network tab, the live stream URL contains it: hls.cdn-surfline.com/oregon/wc-lowers/playlist.m3u8). Spots with multiple angles have multiple aliases; at Lowers, wc-lowers is the close-up cam and wc-lowersov is the wide overview.

The pipeline

1 · list

Get segment URLs

Query the recording endpoint from your logged-in tab, filter to your session window in UTC.

2 · fetch

Download with curl

The CDN is public. Pull segments in parallel, ~15-18 files for a 2.5-hour session.

3 · stitch

Concat with ffmpeg

Lossless stream copy. Three hours joins in seconds, no re-encode, no quality loss.

4 · scrub

Open in Premiere

Plain 1080p H.264. J-K-L up to 32x, instant timeline scrubbing.

Step 1: list the segments for your session

In the browser console on any surfline.com page while logged in (or via an agent's browser harness), fetch the listing and filter to your window. Times are UTC, so a 4:00pm Pacific start is 23:00Z, and a session ending after 5pm crosses a UTC date boundary:

browser console — surfline.com, logged in
const r = await fetch('https://services.surfline.com/cameras/recording/wc-lowers');
const clips = await r.json();
const from = Date.parse('2026-07-09T23:00:00Z');  // 4:00pm PDT
const to   = Date.parse('2026-07-10T01:30:00Z');  // 6:30pm PDT
clips.filter(c => Date.parse(c.endDate) > from && Date.parse(c.startDate) < to)
     .sort((a,b) => Date.parse(a.startDate) - Date.parse(b.startDate))
     .map(c => c.recordingUrl)
     .join('\n')

That prints one URL per 10-minute segment. Save them to a file called urls.txt, in order. (If an extension on your browser has broken fetch, the same call works as an XMLHttpRequest.)

Step 2: download the segments

terminal
mkdir session && cd session
# urls.txt = one recordingUrl per line, chronological
n=1; while read u; do
  printf 'url = "%s"\noutput = "seg%02d.mp4"\n' "$u" $n; n=$((n+1))
done < ../urls.txt > curl.cfg
curl --parallel --parallel-max 4 --retry 3 -K curl.cfg

Mind the size: the high-bitrate Lowers close-up cam runs about 530MB per 10 minutes, so 2.5 hours was ~9GB. The wide overview cam was only ~150MB per segment. Check your disk space before starting.

Step 3: stitch into one file

terminal
for i in $(seq -w 1 17); do echo "file 'seg$i.mp4'"; done > concat.txt
ffmpeg -f concat -safe 0 -i concat.txt -c copy session.mp4
# 2h48m file, ready in seconds — no re-encode

Because -c copy is a stream copy, joining three hours of video takes seconds and loses nothing. The result is an ordinary H.264 MP4 that every editor and player handles.

2h 48m
one continuous file
9.3 GB
1080p close-up cam
17
segments stitched
~30 min
mostly download time

Or: have an AI agent do all of it

The honest version of this story is that I never opened the network tab myself. I told a coding agent, Claude Code with a browser harness (CDP control of my logged-in Chrome), that I surfed 4:00 to 6:30 and wanted the footage. It read the cam alias out of my open Surfline tab, discovered the recording endpoint, filtered the clips to my window, downloaded 9GB in the background while we talked, stitched the file, and opened it on my screen. Then it did the second cam angle too.

Agent-specific notes, if you go that route:

Gotchas

Common questions

Can you download Surfline cam footage?
Yes. Rewind footage is stored as 10-minute MP4 segments on Surfline's CDN, and the recording endpoint (queried from your logged-in Premium session) returns direct URLs for every segment from the last ~5 days. The segments themselves download with plain curl.
How long does Surfline keep cam rewind footage?
About five days. After that the segments expire and the footage is gone. There is no way to recover an older session.
Can you download more than 10 minutes at once?
Not through Surfline's own interface. But since the underlying storage is consecutive 10-minute files, downloading all of them and concatenating with ffmpeg gives you an arbitrarily long continuous file, ours was 2 hours 48 minutes.
Do you need Surfline Premium?
Yes. The rewind listing only responds from a logged-in Premium browser session. Rewind is a Premium feature; this is a workflow for subscribers saving their own sessions, not a way around the paywall.
What about Surfline Sessions, doesn't it clip your waves automatically?
Surfline Sessions auto-clips individual waves at supported spots if you surf with a connected watch. It's great when it works, but it gives you isolated clips of waves it detected, not the full session. Downloading the rewind gives you everything, including the waves nothing detected.
Is this allowed?
You're downloading footage your subscription already lets you watch, for personal review. That said, bulk downloading isn't something Surfline's terms explicitly bless, so be a good citizen: keep it for yourself, don't repost cam footage, and don't automate this at scale.
Samuel Parks

Hi, I'm Sam. I love to ski and surf, and I'm currently building a startup. Learn more about me here.