A method, comprising: accessing, by a processor, user behavior information for a program, wherein the user behavior information indicates when a plurality of users made closed captioning requests during one or more previous playbacks of the program, wherein the closed captioning requests include both closed captioning on-requests and corresponding closed captioning off-requests; determining, based on the user behavior information, that a period of time between a closed captioning on-request and a corresponding closed captioning off-request for multiple closed captioning requests overlap during a portion of the program; calculating a start time indicating when to begin display of closed captioning information for the overlapping portion based on one or more of the closed captioning on-requests associated with the overlapping portion; calculating an end time indicating when to end the display of closed captioning information for the overlapping portion based on one or more of the closed captioning off-requests associated with the overlapping portion; receiving, by the processor, a request for the program from a user device; and providing, by the processor and responsive to the request, the program including the start time and the end time corresponding to the overlapping portion, wherein during a playback of the program at the user device, the closed captioning information is automatically displayed between the start time and the end time, wherein calculating the start time comprises determining from the user behavior information an average start time calculated as the average of the times at which the closed captioning on-requests were received during the overlapping portion of the program, wherein the determined average start time is the calculated start time; and wherein the method further comprises determining from the user behavior information an average end time calculated as the average of the times at which the closed captioning off-requests were received during the overlapping portion of the program, wherein the determined average end time is the calculated end time. accessing, by a processor, user behavior information for a program, wherein the user behavior information indicates when a plurality of users made closed captioning requests during one or more previous playbacks of the program, wherein the closed captioning requests include both closed captioning on-requests and corresponding closed captioning off-requests; determining, based on the user behavior information, that a period of time between a closed captioning on-request and a corresponding closed captioning off-request for multiple closed captioning requests overlap during a portion of the program; calculating a start time indicating when to begin display of closed captioning information for the overlapping portion based on one or more of the closed captioning on-requests associated with the overlapping portion; calculating an end time indicating when to end the display of closed captioning information for the overlapping portion based on one or more of the closed captioning off-requests associated with the overlapping portion; receiving, by the processor, a request for the program from a user device; and providing, by the processor and responsive to the request, the program including the start time and the end time corresponding to the overlapping portion, wherein during a playback of the program at the user device, the closed captioning information is automatically displayed between the start time and the end time, wherein calculating the start time comprises determining from the user behavior information an average start time calculated as the average of the times at which the closed captioning on-requests were received during the overlapping portion of the program, wherein the determined average start time is the calculated start time; and wherein the method further comprises determining from the user behavior information an average end time calculated as the average of the times at which the closed captioning off-requests were received during the overlapping portion of the program, wherein the determined average end time is the calculated end time.