clipunity
ALL DOCS⟡ DOCS

Capturing video

Two entry points — paste a URL, or upload a file. Both land in the same pipeline and produce the same output: a Project with a transcript, clips, and hook scores.

Supported URL sources

Every source we download from today:

  • YouTube (long-form + Shorts)
  • TikTok
  • Instagram (Reels + Posts)
  • Facebook
  • X (Twitter)
  • Reddit
  • LinkedIn
  • Threads
  • Pinterest
  • Dailymotion

Under the hood: yt-dlp on a dedicated Hetzner node, with BrightData’s Web Unlocker + platform-specific scraper datasets filling the gaps where yt-dlp can’t reach.

Upload instead

On /capture, switch to the Uploadtab. We generate a presigned S3 URL for your workspace’s media bucket, you upload directly, then the same pipeline runs. MP3, MP4, MOV, M4A are all supported.

What happens next

  1. Source Asset row created — carries the S3 key + original duration.
  2. Transcript generated by AWS Transcribe (English by default, handles multiple speakers). Per-word timestamps land on the Clip.transcript JSON.
  3. Hook scoring— Claude Haiku reads the transcript and emits a score (0–1) for every candidate clip window, plus a short “why it works” rationale.
  4. Project + Clips — written to DynamoDB, scoped to your workspace group so every teammate can see them instantly.

Pipeline status

While the pipeline is running, the project card shows a progress bar. You can close the tab — the pipeline is fully async and the card updates itself via AppSync subscriptions on Project.pipelineState.

Failures

If the source is behind a paywall, age-gated, geo-restricted, or the URL is malformed, the project moves to status=failed with a reason in pipelineState.error. Try another URL; we don’t charge quota for failures.