How Reverse Video Search Works: Embeddings, Time, and Copy Detection
Meta's Video Similarity Challenge (VSC23) is the benchmark that defines reverse video search as a research problem: given a query video, detect whether any segment of it was copied from a reference corpus, and localize exactly which segment. It is the reason modern copy detection matches a sequence of per-second descriptors rather than a single whole-video embedding.
Where this fits in Mixpeek
VSC23 formalizes the three moves that any production reverse video search has to make, and it is worth understanding them separately because each maps to a different part of a retrieval pipeline. First, *describe every second*. The challenge caps descriptors at 512 dimensions per second of video, compared by inner product. That constraint is the interesting part: it rules out the tempting shortcut of collapsing a whole video into one embedding, because a copied 8-second clip inside a 40-minute video would be averaged into invisibility. Second, *align in time*. Detection alone is not useful to a rights or editorial team — you need to know which seconds match, so the descriptor sequences are aligned to recover the shared segment with timecodes. Third, *train the descriptor on copies*. Self-supervised descriptors in the SSCD line (arXiv:2202.10261) are trained so that an edited version of an image lands next to its original, which is what makes matches survive crops, re-encodes, speed changes, and overlays. The benchmark numbers are the argument for doing all three: a strong image descriptor applied on its own reaches 60.5 uAP, while the winning video systems reach 87.2 uAP on detection and 91.5 on localization. Frame-level description plus temporal alignment is not a refinement over single-vector matching — it is most of the result. In Mixpeek this maps onto the pipeline directly. Video extractors sample and embed at scene and frame granularity instead of producing one vector per file; every index entry carries a (video_id, timestamp) payload, which is what lets a retriever return the matching moment rather than the matching file; and retriever stages compose the cheap pass with the expensive one — fingerprint-style matching to catch exact and near-duplicate copies, then embedding search for semantic lookalikes. Honest scope note: Mixpeek is not a VSC23 submission and we do not claim these uAP numbers. The benchmark is the reason our video indexing is frame-level and timestamp-carrying by default, and it is the standard we read our own reverse video search behavior against.
About this research
Google reverse-searches photos and stopped there; a copied video is never the same file (crops, speed changes, re-encodes, sticker overlays, screenshots of screenshots). Reverse video search solves it in three moves: embed every second of video (Meta's Video Similarity Challenge caps descriptors at 512 dimensions per second, matched by inner product), align the descriptor sequences in time to localize the shared segment with timecodes, and train descriptors on copies (SSCD-style self-supervision) so edits land next to the original in embedding space. On Meta's VSC23 benchmark: 60.5 uAP for a strong image descriptor alone, 87.2 detection and 91.5 localization uAP for the winning video systems. Mixpeek runs reverse video search in production over customer libraries. Explore: mixpeek.com/reverse-video-search
Frequently asked questions
Go deeper
Put the research to work
Mixpeek turns video, images, audio, and documents in your object storage into searchable, timestamped results through one API — the retrieval stack these papers describe.
Search your own data, free