1. A computing device, comprising: a processor; memory including instructions that, upon being executed by the processor, cause the computing device to: obtain a digital video; extract a respective pyramid of histograms for at least a subset of frames of the digital video; determine a first plurality of shots of the digital video by: determining respective cosine similarity between the respective pyramid of histograms of adjacent frames of the digital video; and comparing the respective cosine similarity between the respective pyramid of histograms of the adjacent frames to a similarity threshold; determine a second plurality of shots of the digital video by analyzing the first plurality of shots; extract one or more respective key frames for each of the plurality of first shots and the plurality of second shots; generate a graph of the digital video using the respective key frames as nodes of the graph and a respective cost, based at least in part on time and visual similarity, as edges of the graph; and determine a plurality of sub-graphs by performing a minimum cut algorithm on the graph, the plurality of sub-graphs corresponding to scenes of the digital video.