A method of building a video program extract , comprising: at a server system with one or more processors and memory storing programs configured for execution by the one or more processors: identifying one or more search query groups , wherein each search query group includes one or more search queries, submitted by a plurality of users within a predefined span of time, that were identified as equivalent; identifying a plurality of search query spikes from the one or more search query groups, wherein each search query spike corresponds to a respective search query group, and wherein a current frequency for submitting queries from the respective search query group during a corresponding spike period exceeds an average frequency for submitting queries from the respective search query group during an average span of time by a predefined threshold amount; correlating a subset of the search query spikes to a video program broadcast during the predefined span of time, the correlating comprising matching search terms from the corresponding search queries to subtitles of the video program for a time period prior to a beginning of the spike period to detect a location in the video program, wherein each correlated search query spike corresponds to a respective location in the video program, the subset comprising a plurality of correlated search query spikes; identifying, for each respective location in the video program, a video scene boundary before and after the location; and constructing a snippet of the video program by stitching together a plurality of portions of the video program that contain the locations corresponding to the plurality of correlated search query spikes, wherein the portions extend to the identified video scene boundaries. identifying one or more search query groups , wherein each search query group includes one or more search queries, submitted by a plurality of users within a predefined span of time, that were identified as equivalent; identifying a plurality of search query spikes from the one or more search query groups, wherein each search query spike corresponds to a respective search query group, and wherein a current frequency for submitting queries from the respective search query group during a corresponding spike period exceeds an average frequency for submitting queries from the respective search query group during an average span of time by a predefined threshold amount; correlating a subset of the search query spikes to a video program broadcast during the predefined span of time, the correlating comprising matching search terms from the corresponding search queries to subtitles of the video program for a time period prior to a beginning of the spike period to detect a location in the video program, wherein each correlated search query spike corresponds to a respective location in the video program, the subset comprising a plurality of correlated search query spikes; identifying, for each respective location in the video program, a video scene boundary before and after the location; and constructing a snippet of the video program by stitching together a plurality of portions of the video program that contain the locations corresponding to the plurality of correlated search query spikes, wherein the portions extend to the identified video scene boundaries. <EOS>