1. A computer-implemented method, comprising: determining a feature for a frame of a plurality of frames of a video; analyzing a similarity between the feature and at least one feature associated with adjacent frames to the frame to determine a first shot of the video; determining that the first shot meets a time threshold; determining that a similarity metric between a first frame of the first shot and a second frame of the first shot meets a dissimilarity threshold; determining that a similarity matrix of at least a subset of frames of the first shot corresponds to a dissolve pattern, the subset of frames corresponding to at least one second shot of the video; generating a graph of the video, the graph comprising nodes corresponding to the first shot and the at least one second shot; and determining a grouping of the first shot and the at least one second shot by performing one or more cuts of the graphs.