What a finished run gives you
Next to the video, every completed run offers, on the run page and through the API:
| File | For |
|---|---|
| Animated GIF of the whole video (480 px wide, 8 frames a second) | pull request descriptions, GitHub issues, Slack and email, which show a GIF inline but will not autoplay an MP4 |
| One GIF per chapter, as a zip | the same, when the guide has [CHAPTER "…"] markers and you want the one moment that matters |
| Subtitles as VTT and SRT | uploading captions alongside the video on YouTube, Vimeo or Wistia, or keeping the video clean and letting the player toggle them; in the language the video narrates |
Chapters in YouTube's form (00:00 Intro, one per line) |
the description field of a YouTube upload |
| Thumbnail | a poster frame for the upload or the docs page |
The share dialog still makes a public watch link, with expiry and password, and an embed URL: that is the right export for a help centre or a docs page, which embeds a URL rather than hosting a file.
Webhooks
Screen Browser calls a URL of yours when a run changes phase: run.queued, run.preparing, run.recording, run.finishing, run.completed, run.failed, run.canceled. Endpoints live under Account → Webhooks in the app or /api/v1/webhooks; each has a secret, and every delivery is signed (X-Webhook-Signature: t=…,v1=…, an HMAC-SHA256 of t.body), retried with backoff, and listed with its response.
run.completed carries the exports as signed links valid for 24 hours, so the receiver needs no API key:
{
"id": "…", "type": "run.completed", "created_at": "2026-09-07T10:12:00Z",
"data": {
"run_id": "01K…", "project_id": "01K…", "phase": "done",
"title": "Acme CRM — Create a campaign", "duration_seconds": 108,
"run_url": "https://rec.screenbrowser.com/runs/01K…",
"downloads": {
"video": "https://…/final.mp4?…", "gif": "https://…/video.gif?…",
"chapter_gifs": "https://…/chapter_gifs.zip?…",
"subtitles_vtt": "https://…/subtitles.vtt?…", "subtitles_srt": "https://…/subtitles.srt?…",
"chapters": "https://…/chapters.txt?…", "thumbnail": "https://…/thumbnail.jpg?…"
},
"downloads_expire_at": "2026-09-08T10:12:00Z"
}
}
Keys are present only for files the run produced (no chapters, no chapter GIFs).
Sending the video somewhere
We do not host uploads to other platforms ourselves. Point the webhook at Zapier, Make or n8n and pick the destination there: all three have a "catch webhook" trigger, and all three can upload a file from a URL to YouTube, Wistia, Vimeo, Google Drive, OneDrive, Dropbox or an S3 bucket. A coding agent can do the same from the webhook payload, and developer teams often prefer dropping the file straight into their own bucket.
For YouTube, use title for the title, chapters for the description and subtitles_srt for the captions. For Wistia, video and subtitles_srt are enough.