1. A method for fingerprinting a video having a plurality of video segments, comprising: receiving a first video segment having a plurality of video frames; performing a three-dimensional transform on the plurality of frames to generate a three-dimensional wavelet, wherein the three-dimensional wavelet represents spatial information within the video frames and sequential characteristics between the video frames; quantizing coefficients of the three-dimensional wavelet to generate a video fingerprint representing visual content of the first video segment; storing the video fingerprint to a non-transitory computer readable storage medium; and storing an association between an identifier of the first video segment and features of the video fingerprint to the non-transitory computer readable storage medium.