A method comprising: receiving, by a computing device, metadata indicative of a time for a beginning of an event occurring in a video program and a time for an ending of the event; determining, based on performing optical character recognition on a plurality of video frames associated with the video program: a first video frame, from the plurality of video frames, comprising a game clock showing a displayed time that is before the time for the beginning of the event, based on determining that a game clock showing the time for the beginning of the event is not visible in the video program; and a second video frame, from the plurality of video frames, comprising a game clock showing a displayed time that is after the time for the ending of the event, based on determining that a game clock showing the time for the ending of the event is not visible in the video program; selecting a portion of the video program, the portion comprising the first video frame, the second video frame, and video frames between the first video frame and the second video frame; determining an expected motion energy of objects associated with the event; determining, based on a comparison of motion energy of objects in the selected portion of the video program with the expected motion energy, one or more video frames, within the selected portion, in which the event occurs; and storing information indicating the one or more video frames in which the event occurs. receiving, by a computing device, metadata indicative of a time for a beginning of an event occurring in a video program and a time for an ending of the event; determining, based on performing optical character recognition on a plurality of video frames associated with the video program: a first video frame, from the plurality of video frames, comprising a game clock showing a displayed time that is before the time for the beginning of the event, based on determining that a game clock showing the time for the beginning of the event is not visible in the video program; and a second video frame, from the plurality of video frames, comprising a game clock showing a displayed time that is after the time for the ending of the event, based on determining that a game clock showing the time for the ending of the event is not visible in the video program; a first video frame, from the plurality of video frames, comprising a game clock showing a displayed time that is before the time for the beginning of the event, based on determining that a game clock showing the time for the beginning of the event is not visible in the video program; and a second video frame, from the plurality of video frames, comprising a game clock showing a displayed time that is after the time for the ending of the event, based on determining that a game clock showing the time for the ending of the event is not visible in the video program; selecting a portion of the video program, the portion comprising the first video frame, the second video frame, and video frames between the first video frame and the second video frame; determining an expected motion energy of objects associated with the event; determining, based on a comparison of motion energy of objects in the selected portion of the video program with the expected motion energy, one or more video frames, within the selected portion, in which the event occurs; and storing information indicating the one or more video frames in which the event occurs.