Sheet 05.6 — Field note
The view you license from
A clip search over 300 public-domain films where every result opens the player at the frame it matched. Pick clips into a set and one page says what you would be paying for. The page's numbers, the ones that are good and the two that are not, and a sampling thesis the eval turned down.
- Published
- Reading time
- 3 min read
- Drawn by
- E. Knuth
Someone deciding whether to license a set of film clips has three questions. How much is here. What is it. Are two of these the same shot. Clip Portal is a search over 300 films from the Prelinger collection, 66 hours, 1906 to 2001, built to put those three answers on one page.
What a search returns
Every result is a frame, at a second. Click it and the player opens at that second. The frame under the cursor changes as you drag the strip under the player, 224 ms at the median. Nobody tagged these seconds. An image model turned 264,626 sampled frames into vectors, and a search finds the frames nearest the words typed. The match is a picture, so the page shows you the picture. That is the whole provenance story: you can see why it came back.
What Evaluate shows
Pick clips into a set from any search and open Evaluate. It holds:
- Films, runtime, and how many are narrated, in a strip at the top.
- Histograms of duration, resolution, and decade.
- Speech against silent, and words per minute for the narrated ones.
- A stratified sample, reshuffled on a click, so a reviewer sees a spread and can watch eight clips instead of eighty.
- Near-duplicate pairs, every pair whose clip vectors sit above 0.92 similarity, with a Drop button on each side.
- A manifest export, and a share link. A shared set is a ten-character id in the URL and holds up to 500 films.
The duplicate check compares one vector per film. It finds two films that are the same shot. It says nothing about a shot repeated inside one film.
The numbers
Lighthouse on the live site, 2026-09-11.
| page | performance mobile | performance desktop | accessibility |
|---|---|---|---|
| home | 97 | 100 | 100 |
| a query | 100 | 76 | 100 |
| a film | 75 | 98 | 100 |
Two cells are bad and I know why. The query page on desktop paints twelve card thumbnails as its largest element and waits 6.6 seconds for one. The film page on mobile has the video as its largest element at 7.6 seconds. Both are media, and both are the next thing to fix.
Warm, thirty queries from the browser: first painted card 3,125 ms at the median, 4,011 at the 95th percentile. Most of that is the text model turning the query into a vector, 1,399 ms at the median in a container. On a throttled mobile link the first thumbnail lands at 3,584 ms. Before per-frame tiles it was 49,374, because the page pulled whole sprite sheets of 0.7 to 2.3 MB each, eight of them at once.
There is no Lighthouse run for Evaluate yet.
The thesis the eval turned down
Embedding one frame a second is the cost everyone pays. I sampled a second way: scene cuts, plus the frame where a narrator says “here” or “this”, 24,734 frames against 239,111. The claim was that recall would hold at a tenth of the frames. It did not. On 100 hand-written queries, recall at ten is 0.39 for one frame a second and 0.20 for the guided set, and the median seek error triples. The default search runs over every sampled frame. Sampling frames where the narrator points has the full table and what I think went wrong.
The look
The corpus is 1950s technical bulletins and film-can labels, so the page is set that way. A blunt display face for headlines, a long-read serif for prose, a monospace for every count and timestamp. Hairline rules instead of cards. One red mark per view. Every text pairing clears 4.5:1 in both light and dark, and a test in the repo proves it from the color tokens rather than from a screenshot.
Three hundred films is small. The argument is that the page and its numbers are what a catalog a thousand times larger would need, and the eval is how you would know.