1. A method comprising: receiving, by one or more computing devices, video data; extracting, by at least one of the one or more computing devices, a plurality of features from the video data; determining, by at least one of the one or more computing devices, a first set of feature values associated with the plurality of features, the first set of feature values for training a classifier and a scoring model; determining, by at least one of the one or more computing devices, a second set of feature values based on applying the classifier to the video data; training, by at least one of the one or more computing devices, the scoring model based on the first set of feature values and the second set of feature values; using the scoring model to determine a plurality of desirability scores associated with the video data, wherein an individual desirability score indicative of video quality is associated with an individual video frame in the video data; identifying video frames in the video data that have a desirability score above a predetermined threshold desirability score; analyzing the video data to determine, in association with the video frames, changes in camera motion and changes in object motion; and locating, based at least in part on the changes in camera motion and the changes in object motion, boundaries in the video data to produce one or more video segments, wherein: an individual video segment includes at least one video frame that has the desirability score above the predetermined threshold desirability score, and the locating the boundaries in the video data comprises determining that object motion intensity of a first video frame and object motion intensity of a second video frame differ by a predetermined threshold.