A method for filtering a video stream, the method comprising: recording a video stream broadcast by a content provider over one of a plurality of local distribution networks including plural segments of a show, plural interstitials of the show, and closed captioning data associated with the segments of the show, wherein the closed captioning data comprises a sequence of bytes associated with particular frames of the video stream; receiving metadata from the content provider associated with the video stream, identifying boundaries of the segments of the show, the metadata comprising for each segment of the show: a first text string and a second text string that is different from the first text string, each contained in the closed captioning data transmitted by the content provider such that bytes of that text string match bytes in the closed captioning data, wherein the first and second text strings are associated with respective anchor frames of the segment, an anchor frame being a frame of the video stream associated with selected matching bytes of the text string, for each of the first and second text strings, a first offset, associated with the text string, that identifies a beginning of the segment relative to the anchor frame for that text string, and for each of the first and second text strings, a second offset, associated with the text string, that identifies an end of the segment relative to the anchor frame for that text string; for each segment of the show, parsing the recorded closed captioning data to locate the first text string for that segment by matching the bytes of the first text string with bytes of the closed captioning data, and if first text string is not located in the recorded closed captioning data, parsing the recorded closed captioning data to locate the second text string for that segment by matching the bytes of the second text string with bytes of the closed captioning data, and locating the anchor frame that is associated with the text string for that segment that has been located in the closed captioning data and applying the first and second offsets associated with that text string to the anchor frame to identify the beginning and ending of the segment; filtering the interstitials from the recorded video stream, based on the identified beginning and ending of the segments; and presenting the filtered video stream to a user. recording a video stream broadcast by a content provider over one of a plurality of local distribution networks including plural segments of a show, plural interstitials of the show, and closed captioning data associated with the segments of the show, wherein the closed captioning data comprises a sequence of bytes associated with particular frames of the video stream; receiving metadata from the content provider associated with the video stream, identifying boundaries of the segments of the show, the metadata comprising for each segment of the show: a first text string and a second text string that is different from the first text string, each contained in the closed captioning data transmitted by the content provider such that bytes of that text string match bytes in the closed captioning data, wherein the first and second text strings are associated with respective anchor frames of the segment, an anchor frame being a frame of the video stream associated with selected matching bytes of the text string, for each of the first and second text strings, a first offset, associated with the text string, that identifies a beginning of the segment relative to the anchor frame for that text string, and for each of the first and second text strings, a second offset, associated with the text string, that identifies an end of the segment relative to the anchor frame for that text string; a first text string and a second text string that is different from the first text string, each contained in the closed captioning data transmitted by the content provider such that bytes of that text string match bytes in the closed captioning data, wherein the first and second text strings are associated with respective anchor frames of the segment, an anchor frame being a frame of the video stream associated with selected matching bytes of the text string, for each of the first and second text strings, a first offset, associated with the text string, that identifies a beginning of the segment relative to the anchor frame for that text string, and for each of the first and second text strings, a second offset, associated with the text string, that identifies an end of the segment relative to the anchor frame for that text string; for each segment of the show, parsing the recorded closed captioning data to locate the first text string for that segment by matching the bytes of the first text string with bytes of the closed captioning data, and if first text string is not located in the recorded closed captioning data, parsing the recorded closed captioning data to locate the second text string for that segment by matching the bytes of the second text string with bytes of the closed captioning data, and locating the anchor frame that is associated with the text string for that segment that has been located in the closed captioning data and applying the first and second offsets associated with that text string to the anchor frame to identify the beginning and ending of the segment; filtering the interstitials from the recorded video stream, based on the identified beginning and ending of the segments; and presenting the filtered video stream to a user.