Going by hash doesn't. It's trivial to fool. Just change one character in some field of the metadata and you are through. You can solve this by using a perceptual hash, which looks for similarity, but that introduces a new problem of an impractically high false positive rate.
Let's say you have a ridiculously good filter with a false match rate of one in ten million. Unfortunately the copyright holders of the world have submitted more then ten million works for you to check, so just about everything now flags as infringing. This is the situation with youtube's content ID. Anyone who has uploaded more than a handful of videos can tell you the story of how something perfectly innocuous still set the filter off, and the pain of youtube's fully-automated appeals process.