A computer-implemented method for detecting unauthorized content items, the method comprising: receiving, using a hardware processor, a video having a plurality of frames, wherein the video is associated with a first fingerprint; determining, using the hardware processor, a respective rotation value for each one of the plurality of frames to obtain a plurality of rotation values; determining, using the hardware processor, an overall rotation value associated with the video based on a portion of the plurality of rotation values; wherein determining the overall rotation value comprises: identifying a class to which each one of the plurality of frames belongs, each class representing a particular number of degrees of rotation, and determining the most common rotation class; or determining, for each one of the plurality of frames, a probability that the frame belongs to a particular one of a number of classes, each class representing a particular number of degrees of rotation, weighting each of the rotation values by its corresponding probability and determining the overall rotation output based on the weighted rotation values; determining, using the hardware processor, whether at least one additional fingerprint of the video should be generated based on the overall rotation value; in response to determining that the at least one additional fingerprint of the video should be generated based on the overall rotation value, selecting, using the hardware processor, a rotation transform based on the overall rotation value that rotates the plurality of frames of the video to an initial rotation position; applying, using the hardware processor, the rotation transform to at least a portion of the plurality of frames of the video; generating, using the hardware processor, a second fingerprint that represents the transformed video; and comparing, using the hardware processor, the second fingerprint of the transformed video to a plurality of fingerprints associated with reference videos to determine whether the video corresponding to the transformed video matches one of the reference videos. receiving, using a hardware processor, a video having a plurality of frames, wherein the video is associated with a first fingerprint; determining, using the hardware processor, a respective rotation value for each one of the plurality of frames to obtain a plurality of rotation values; determining, using the hardware processor, an overall rotation value associated with the video based on a portion of the plurality of rotation values; wherein determining the overall rotation value comprises: identifying a class to which each one of the plurality of frames belongs, each class representing a particular number of degrees of rotation, and determining the most common rotation class; or determining, for each one of the plurality of frames, a probability that the frame belongs to a particular one of a number of classes, each class representing a particular number of degrees of rotation, weighting each of the rotation values by its corresponding probability and determining the overall rotation output based on the weighted rotation values; identifying a class to which each one of the plurality of frames belongs, each class representing a particular number of degrees of rotation, and determining the most common rotation class; or determining, for each one of the plurality of frames, a probability that the frame belongs to a particular one of a number of classes, each class representing a particular number of degrees of rotation, weighting each of the rotation values by its corresponding probability and determining the overall rotation output based on the weighted rotation values; determining, using the hardware processor, whether at least one additional fingerprint of the video should be generated based on the overall rotation value; in response to determining that the at least one additional fingerprint of the video should be generated based on the overall rotation value, selecting, using the hardware processor, a rotation transform based on the overall rotation value that rotates the plurality of frames of the video to an initial rotation position; applying, using the hardware processor, the rotation transform to at least a portion of the plurality of frames of the video; generating, using the hardware processor, a second fingerprint that represents the transformed video; and comparing, using the hardware processor, the second fingerprint of the transformed video to a plurality of fingerprints associated with reference videos to determine whether the video corresponding to the transformed video matches one of the reference videos.