Design Video Copyright Matching Against a Reference Library
Check every uploaded video against a library of copyrighted reference videos, find copied segments even when the two videos have very different lengths, and apply the rights holder's policy with a dispute path.
Problem statement
Design a system that checks whether an uploaded video contains content from a library of copyrighted reference videos. The central difficulty is comparing videos of very different lengths: an upload may be a 20-second clip from a two-hour film, or a ten-minute video that stitches together pieces of several references.
For this exercise, assume rights holders register reference videos, each with a policy of block, monetize or track, and can withdraw them. Every upload to the platform is held until it has been checked. A match means the upload contains at least 10 continuous seconds of the same visual content as some part of a reference, possibly cropped, resized, re-encoded, mirrored, overlaid with text or played between 0.9 and 1.1 times normal speed; showing the same subject, place or event filmed separately is not a match. A check returns no match, a match that names the reference and the aligned time ranges in both videos, or a case for human review. A failed or incomplete check must never be treated as no match. The uploader can dispute a match, and an authorized reviewer can confirm or overturn it; the history of decisions is kept.
Design the representation of videos, indexing of the reference library, matching and time alignment, decisions and policies, disputes, and how you evaluate and release changes. Audio matching, live streams, legal decisions about fair use and the upload pipeline itself are outside scope.
All counts and targets below are practice assumptions.
What to build
- A rights holder can register a reference video with a policy and withdraw it; a registered reference becomes searchable within 1 hour and a withdrawn one stops producing new matches.
- Every upload is checked against the reference library and gets a no-match result, a match naming the reference and the aligned time ranges in both videos, or a review case; an incomplete check is never reported as no match.
- A confirmed match applies the reference's policy to the upload; the uploader can dispute it and an authorized reviewer can confirm or overturn it, with every decision kept in the history.
- Operators evaluate a change to the video representation, index or match thresholds on labeled data and release or roll it back, with every result tied to the versions that produced it.
At scale
- For this exercise, assume the reference library holds 1 million hours of video, with references from 1 minute to 3 hours long, and grows by 2,000 hours a day.
- For this exercise, assume 500,000 uploads a day, from 5 seconds to 60 minutes long with an average of 2 minutes, and peak traffic three times the daily average rate.
- For this exercise, assume 95 percent of uploads up to 10 minutes long get a result within 10 minutes after the upload finishes.
- For this exercise, assume at most 1 in 10,000 non-copying uploads may be wrongly matched on an independently labeled audit set, and recall is reported separately for each kind of edit (crop, mirror, overlay, speed change).