Video Platform

Video Platform

The Video Platform (VPE) replaces Frame.io as Heliconflow's video review system. Videos are stored on AWS S3, delivered via CloudFront, and reviewed in an in-app player with timecode comments. Share links let clients and external reviewers watch and comment without an account. > Architecture note: The VPS never touches video bytes. All video delivery happens via CloudFront's edge network. The VPS only handles metadata — presigned URL generation, comment storage, and share token validation.

Click any step to jump to its details below.

Video upload

Simple presigned single-PUT upload

Select or drop a video file — supported formats: MP4, MOV, WebM, AVI, MPEG. The browser uploads directly to S3 via a presigned URL with a progress bar. After upload, the system creates a thumbnail from the first frame and queues transcoding to a browser-playable proxy.

Multipart (chunked, parallel) upload

Large files are automatically split into 64MB parts and uploaded in parallel. Each part has its own retry logic. The upload assembles on S3 when all parts complete.

Abort / cancel

Cancel an in-progress upload. The partial S3 object and pending row are cleaned up automatically.

Drag-and-drop / file-type validation

Videos can be dropped or selected via file picker. Non-video files are rejected with a client-side error.

Video Review page

Open the Video Review page

Navigate to /review/[videoAssetId] — accessible from a production card, the Qual page, or a notification. External users can only access videos from their assigned clients.

Video playback

Full player with play/pause, scrubber, time display, playback speed (0.5×–2×), volume, fullscreen, and restart. Keyboard shortcuts: Space = play/pause, Left/Right arrows = step one frame.

Comment dots on the scrubber

Each comment appears as a green dot on the progress bar. Click a dot to seek to that comment's timecode and highlight it in the panel.

Transcript panel

If the video has been transcribed, a scrollable transcript appears. Click any word to seek the player to that timestamp. Copy copies the full text. Export SRT downloads the transcript as a subtitle file.

Approve / Back-to-Editing from review page

When arriving in Qual-review context, Approve and Back-to-Editing buttons appear in the top bar. Same notifications fire as from the Video Card or Qual page.

Archived-version picker

Switch between the current version and earlier archived versions of the same production's video using a dropdown.

Restore archived video as current

Power UserShoot LeadAdmin

Brings an archived version back as the production's current video. The previously current version is archived.

Permanently delete archived video

Power UserShoot LeadAdminEditor

Permanently deletes an archived version. Only allowed on already-archived assets.

Comments

Add a timecode comment

Click in the comment composer (or press Shift+C to focus, Enter to send) while the video is at the moment you want to pin. The comment is saved at the current playhead time.

The production's assigned editor receives an in-app notification: "New comment on your video."

Reply to a comment

Click "↩ Reply" under any comment to add a threaded reply at the same timecode.

The parent comment's author receives an in-app notification: "New reply to your comment."

Edit own comment or reply

Click "Edit" on a comment or reply you authored, change the text, and save.

Delete own comment or reply

Click "Delete" and confirm. Deleting a parent comment removes its replies too. Admins can delete any comment.

Resolve / unresolve a comment

Click "○ Resolve" to mark a comment resolved (records who resolved it and when). Click "✓ Resolved" to unresolve. Resolved comments are dimmed and excluded from the open-comment count. Resolution is for internal users only — hidden from external/guest viewers.

Jump to a comment's timecode

Click any comment or reply card to seek the player to that timecode.

Sort comments

Sort by timecode, newest, or oldest using the sort dropdown.

Public share viewer (no login required)

View a shared video

Visit the share URL — no account required. The link's view count and last-viewed date are tracked. If the link is deactivated or expired, visitors see "no longer active."

Guest identity gate

Before commenting, the visitor enters their name and email. A 24-hour guest session is issued. Their email is never shown to other viewers.

Guest timecode comment

Identified guests can leave timecode comments if the link has comments enabled. The comment is marked as external.

Guest download

If the link has download enabled, a "↓ Download" button appears. Returns a presigned URL.

Guest playback, comment dots, seek-to-comment

Guests get the full player experience — controls, scrubber dots, click-to-seek.

Downloads

Download video (signed URL)

All users

Returns a presigned S3 URL for the original video file. Short-lived. Available to all logged-in users with card access.

Bulk zip download

Select multiple videos to start a background zip job. The system streams the videos into a zip on S3 (never fully materializing them in VPS memory). Poll status until complete, then download. Job expires after 1 hour.