A computer-implemented method, comprising: generating a first set of fingerprints based on a first video sequence by, for each portion of the first video sequence: comparing three or more frames in the portion to identify a representative frame in the portion, the representative frame having a greater complexity and/or entropy, compared to other frames in the portion, removing any text from the representative frame, and generating, based on the representative frame a fingerprint that identifies the portion of the first video sequence; generating a second set of fingerprints in the same manner as the first set of fingerprints based on a second video sequence, wherein each fingerprint included in the second set of fingerprints identifies a different portion of the second video sequence; comparing the first set of fingerprints to the second set of fingerprints to determine whether a first portion of the first video sequence is substantially similar to a second portion of the second video sequence, wherein the first portion of the first video sequence is substantially similar to the second portion of the second video sequence when the first portion and the second portion share at least a threshold amount of data with one another; and when playing back the second video sequence, causing, in response to determining that the first portion of the first video sequence is substantially similar to the second portion of the second video sequence, the second video sequence to advance past the second portion. generating a first set of fingerprints based on a first video sequence by, for each portion of the first video sequence: comparing three or more frames in the portion to identify a representative frame in the portion, the representative frame having a greater complexity and/or entropy, compared to other frames in the portion, removing any text from the representative frame, and generating, based on the representative frame a fingerprint that identifies the portion of the first video sequence; comparing three or more frames in the portion to identify a representative frame in the portion, the representative frame having a greater complexity and/or entropy, compared to other frames in the portion, removing any text from the representative frame, and generating, based on the representative frame a fingerprint that identifies the portion of the first video sequence; generating a second set of fingerprints in the same manner as the first set of fingerprints based on a second video sequence, wherein each fingerprint included in the second set of fingerprints identifies a different portion of the second video sequence; comparing the first set of fingerprints to the second set of fingerprints to determine whether a first portion of the first video sequence is substantially similar to a second portion of the second video sequence, wherein the first portion of the first video sequence is substantially similar to the second portion of the second video sequence when the first portion and the second portion share at least a threshold amount of data with one another; and when playing back the second video sequence, causing, in response to determining that the first portion of the first video sequence is substantially similar to the second portion of the second video sequence, the second video sequence to advance past the second portion.