1. A method for fingerprinting a video, comprising: receiving the video; segmenting the video into a plurality of video segments including a first video segment, the first video segment having a plurality of video frames; performing a three-dimensional transform on the plurality of video frames in the first video segment 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 the three-dimensional wavelet to generate a first video fingerprint; storing a video fingerprint sequence to a non-transitory computer readable storage medium, wherein each video fingerprint in the video fingerprint sequence is associated with a different video segment in the plurality of video segments; comparing the video fingerprint sequence to a reference fingerprint sequence; and determining a similarity between the video fingerprint sequence and the reference fingerprint sequence based on the comparison.