video-summary is a website that generates a video summary at a user-chosen target duration from a video supplied either by a video link or by uploading a file. The product's intent is to let a person take a long video and sculpt it down into a shorter cut of a chosen length — for example a 1-minute, 2-minute, 5-minute, or 10-minute summary — and then read/watch that summary.
The audience is knowledge workers, students, researchers, and content teams who already have a video (a link or a local file) and want a shorter version of it at a specific time budget. The product is a precision instrument for compressing time, not a chat interface: the user provides the video, chooses the target duration, and receives a summary shaped to that duration.
The current delivery is a public website with two pages — Landing and Summarize — backed by a server-side summarization service. No account is required to use the product.
video-summary is a web application with a custom front end and a backend summarization service.
Actors
Accepted behavior (current)
Ownership
Narrow exclusions
The product is delivered as a first-party website with custom UI. Both accepted pages are publicly reachable without identity establishment: the source establishes no account requirement, and the accepted journeys (supply a video, choose a duration, generate, review) do not require durable per-user state, commitments, entitlements, or value transfers bound to a returning participant. Accordingly, no application-owned identity, sign-in, or session continuity is introduced.
The Landing page is the anonymous entry surface. The Summarize page is the working surface where the accepted lifecycle completes. The backend summarization service is a supporting system process; the human interaction that initiates, controls, and reviews summarization is owned by the Summarize page.
Current vs. future: All requirements in this document are current. No future-horizon requirements are established by the source.
Not applicable — no reference directive declares a content_source.
Purpose: Anonymous public entry surface that explains that the site generates video summaries at different target lengths from a link or an uploaded file, and routes the visitor into the Summarize workspace.
Information and state
video-summary.mm:ss readout showing the currently selected target duration (default 5:00), with 1/2/5/10-minute detents.01 — INPUT, 02 — DURATION, 03 — SUMMARY.Primary actions
Supporting actions
Domain entities
Component responsibilities
States
Purpose: Cohesive workspace where the Video Summarizer submits a video by link or upload, chooses the target summary duration, generates the summary, and views the resulting summary.
Information and state
mm:ss readout, and 1/2/5/10-minute detents.Primary actions
Supporting actions
Domain entities
Component responsibilities
States
FR-1 — Generate a video summary from a video (explicit) As a Video Summarizer, I should generate a video summary from a video I supply, so that I get a shorter version of the video's content.
FR-2 — Provide the video by link or by file upload (explicit) As a Video Summarizer, I should provide the video either by a video link or by uploading a file, so that I can summarize videos I can reach by URL or that I have locally.
FR-3 — Generate the summary at different target time lengths chosen by the user (explicit) As a Video Summarizer, I should choose the target summary length/time before generation, so that the summary fits the time I have.
mm:ss readout).FR-4 — Require a valid video source before generation (required_inference) As a Video Summarizer, I should be prevented from generating until a valid video link or an uploaded video file is present, so that generation requests are always executable.
FR-5 — Require a target summary length before generation (required_inference) As a Video Summarizer, I should have a target summary length selected before generation, so that the summary is produced at a definite duration.
FR-6 — Explain the product on the public entry surface (required_inference) As a Video Summarizer, I should understand on arrival that the site generates video summaries at different target lengths from a link or an uploaded file, so that I know what the product does and how to start.
Product context. The Video Summarizer is a knowledge worker, student, researcher, or content team member who already has a video — reachable by URL or held as a local file — and needs a shorter version of it at a specific time budget. They arrive with a concrete duration in mind (a 2-minute brief, a 5-minute review, a 10-minute deep cut) and judge the product on whether the summary feels shaped to that duration rather than arbitrarily truncated.
Primary goal. Obtain a usable summary of a supplied video that fits the time they asked for.
Distinct accepted responsibilities.
Relevant inputs and decisions.
Interactions with other accepted participants. The Video Summarizer is the only accepted human participant. Their work is supported by the Summarization Service (system) and the Video Source (external), neither of which is a persona. There is no handoff to another human.
Observable success. A summary is displayed in the Summarize workspace as a curved timeline ribbon of timestamped segments at the chosen duration, and the user can immediately generate another at a different length.
Constraints. No account is required; the persona's work is anonymous and stateless across visits.
mm:ss readout updates.Muse and headline. Zaha Hadid — Fluid parametric grandeur for a video that folds into time. The product is a dark, architectural stage where a video becomes a sculpted ribbon whose length is set by a duration dial.
Mode. Dark mode only.
Color tokens (exact hex by role)
#0E0F12#16181D#F2EFE9#C9A96A#7FE3D4#8A8F99Gold and teal never touch as flat fills; they meet only as thin strokes and glows on curved surfaces.
Typography
-0.02em at large sizes, sentence case, with rare all-caps micro-labels at 11px / 0.18em letter-spacing in gold.clamp(44px, 8vw, 104px).clamp(30px, 4.2vw, 60px).Shape language. Continuous sweeping curves and parametric ribbons. Section boundaries are shallow arcs, not straight lines. The duration selector is a circular dial with a gold bezel and a teal sweep. Cards are cut with one large radius (28–40px) and one sharp corner so they feel carved. Diagonal flow lines and thin gold hairlines trace motion paths. Negative space is dramatic and asymmetric, like an architectural section drawing.
Layout. Asymmetric editorial grid on a 12-column base with a persistent left rail (72px on desktop, collapsing to a bottom bar on mobile) carrying the wordmark, the link/upload mode switch, and a running duration readout. The hero is a full-bleed dark stage with the video ribbon sweeping from the lower-left off the top-right edge, the oversized headline set over it in pearl, and the duration dial anchored bottom-right. Sections alternate between full-bleed dark imagery and a near-black surface panel, each separated by an arc rather than a rule. The Summarize workspace keeps the same rail and turns the main column into a two-pane composition: input + duration on the left third, generated summary on the right two-thirds, with the summary timeline drawn as a curved ribbon whose segments are the chosen chunks.
Imagery. Architectural and parametric: a single hero subject — a luminous ribbon/fluid form derived from a video timeline, rendered as a layered 2D SVG/CSS composition with soft gold and teal glows on charcoal. Supporting imagery: macro shots of curved metal and pearl surfaces for the "how it works" band, and a schematic curved timeline diagram for the summary output. No stock people, no gradient blobs, no 3D clip art.
Forbidden. Centered headline + subtext + blue button + gradient blob hero; white or near-white ground with a blue/indigo accent; a grid of identical hover-lift cards; Inter, Roboto, Arial, Helvetica, Poppins, or system-ui as heading or body font; glassmorphism panels or frosted blur overlays; playful bouncy easing or springy micro-interactions; stock photography of people pointing at screens; rounded-rectangle chips as the primary duration selector — the dial is the point. The generic indigo/blue-on-white SaaS template is forbidden.
Readability constraint. Readable text and controls stay whole at every viewport: headlines, wordmarks, labels, numbers, card text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (e.g., clamp(...) with its mobile size) to fit, and no other element covers any part of them. Imagery, decoration, and motion may be cropped, bled, rotated, overlapped, or cut as the direction asks, as long as they cover no readable text or control. With prefers-reduced-motion, provide a usable static arrangement.
The Sculpted Ribbon Stage. The Landing page is a full-bleed charcoal stage (#0E0F12). The dominant element is an oversized luminous ribbon — a thin, continuous, gold-and-teal-edged band — that enters from the bottom-left corner, sweeps in a wide arc across the viewport, and exits off the top-right, its surface catching a slow light sweep. Over it, the headline "Hours of video. Minutes of meaning." is set in Jost 300 at clamp(44px, 8vw, 104px), flush-left, occupying the left 9 columns and deliberately crossing the ribbon without being covered (text sits above the ribbon layer with a subtle dark scrim behind only the glyph area). Beneath the headline, a single line of pearl body copy and two controls: a gold-outlined "Paste a link" pill and a teal "Upload a file" pill. Bottom-right, an anchored circular duration dial with a gold bezel, teal sweep, and a live "5:00" readout in Jost 400. Top-left, the wordmark "video-summary" in 12px uppercase gold tracking. No centered stack, no gradient blob, no floating glass cards.
The signature moves carry through the product: the duration selector is a physical circular dial (gold bezel, teal sweep, live mm:ss readout, 1/2/5/10-minute detents, needle-sweep on change); section boundaries are shallow arcs with a 1px gold hairline and micro-labels (01 — INPUT, 02 — DURATION, 03 — SUMMARY); the generated summary is a curved timeline ribbon whose segments are the summary chunks, timestamped in pearl, with the active segment's edge lit teal; and a persistent left rail carries the wordmark rotated 90° in gold caps, the link/upload mode switch as two stacked capsule buttons, and a running duration readout at the bottom.
Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: layered_2d
Landing Hero Motion Brief
#0E0F12 stage; the ribbon entering bottom-left and exiting top-right; the headline "Hours of video. Minutes of meaning." in Jost 300 flush-left over the left 9 columns; one line of pearl body copy and the gold "Paste a link" and teal "Upload a file" pills beneath; the circular duration dial anchored bottom-right with a live "5:00" readout; the wordmark top-left in 12px uppercase gold.prefers-reduced-motion with a usable static arrangement. (explicit design constraint.)mm:ss readout, and needle-sweep on change.
01 — Input
Paste a link or drop a file, then choose how long the cut should run — the summary is sculpted to your target length, not scraped from it.
02 — Duration
Select a detent to sculpt the cut
three moves, one shaped cut
Each stage is drawn into the next — the source becomes a duration, the duration becomes a ribbon.
Bring the footage in from a link or a file you already hold. link or upload
source → stage
Set the cut to one, two, five or ten minutes and watch the dial resolve. 1 / 2 / 5 / 10 min
detents on the bezel
Read the cut as a ribbon of timestamped segments, each lighting as it plays. mm:ss timeline
segments on the ribbon

01 — Input
Paste a link or drop a file, then choose how long the cut should run — the summary is sculpted to your target length, not scraped from it.
02 — Duration
Select a detent to sculpt the cut
three moves, one shaped cut
Each stage is drawn into the next — the source becomes a duration, the duration becomes a ribbon.
Bring the footage in from a link or a file you already hold. link or upload
source → stage
Set the cut to one, two, five or ten minutes and watch the dial resolve. 1 / 2 / 5 / 10 min
detents on the bezel
Read the cut as a ribbon of timestamped segments, each lighting as it plays. mm:ss timeline
segments on the ribbon
No comments yet. Be the first!