1. A method comprising steps of: classifying a media collection comprising program content and television commercials as classified program content versus classified television commercials, wherein the television commercials are presented chronologically separate from the program content and in a same display screen as the program content; identifying program segments within the classified program content based on synchronizing recognized speech in each identified segment with captioning to extract stories and to yield synchronized speech, wherein synchronizing recognized speech comprises: recognizing speech in the media collection to yield recognized speech, generating word timestamps based on the recognized speech, and aligning the captioning with the recognized speech based on the word timestamps; indexing the media collection to create an indexed library based on the program segments to yield an indexed media collection; receiving at a server a search query to the indexed media collection from a user; searching the indexed library to identify a set of candidate program segments based on the search query; and presenting at a client device of the user the set of candidate program segments for the user to browse and select.