A method of providing fast-forwarding of a non-on-demand video, comprising: selecting, based on criteria, a video by a server for providing enhanced fast-forward functionality, wherein the criteria comprise at least one of: viewing histories for a plurality of users of an interactive media system; popular programs of the plurality of users; user interests as identified by user profiles of the plurality of users; and the user profiles of the plurality of users; storing, by the server, the selected video in memory; transmitting the selected video from the server to a client as a non-on-demand video in a real-time stream provided by a broadcast feed at a first transmission rate; automatically directing the client to cache the selected video in a buffer when the client accesses the selected video; determining that at least some of the video required for generating fast-forward streams for the selected video is stored in the memory; receiving, by the server, a request from the client for a fast-forward stream corresponding to a portion of the selected video not yet transmitted in the real-time stream; and in response to the request: generating, from the video stored in the memory, the fast-forward stream to include the portion of the selected video, without skipping frames, the fast-forward stream beginning at a point in the video that is at, or after, a point at which the user first accessed the selected video and ending at the last frame of the video; and transmitting, from the server to the client, the fast-forward stream at a second transmission rate, while continuing to transmit the selected video in the real-time stream at the first transmission rate, wherein the second transmission rate is faster than the first transmission rate. selecting, based on criteria, a video by a server for providing enhanced fast-forward functionality, wherein the criteria comprise at least one of: viewing histories for a plurality of users of an interactive media system; popular programs of the plurality of users; user interests as identified by user profiles of the plurality of users; and the user profiles of the plurality of users; viewing histories for a plurality of users of an interactive media system; popular programs of the plurality of users; user interests as identified by user profiles of the plurality of users; and the user profiles of the plurality of users; storing, by the server, the selected video in memory; transmitting the selected video from the server to a client as a non-on-demand video in a real-time stream provided by a broadcast feed at a first transmission rate; automatically directing the client to cache the selected video in a buffer when the client accesses the selected video; determining that at least some of the video required for generating fast-forward streams for the selected video is stored in the memory; receiving, by the server, a request from the client for a fast-forward stream corresponding to a portion of the selected video not yet transmitted in the real-time stream; and in response to the request: generating, from the video stored in the memory, the fast-forward stream to include the portion of the selected video, without skipping frames, the fast-forward stream beginning at a point in the video that is at, or after, a point at which the user first accessed the selected video and ending at the last frame of the video; and transmitting, from the server to the client, the fast-forward stream at a second transmission rate, while continuing to transmit the selected video in the real-time stream at the first transmission rate, wherein the second transmission rate is faster than the first transmission rate. generating, from the video stored in the memory, the fast-forward stream to include the portion of the selected video, without skipping frames, the fast-forward stream beginning at a point in the video that is at, or after, a point at which the user first accessed the selected video and ending at the last frame of the video; and transmitting, from the server to the client, the fast-forward stream at a second transmission rate, while continuing to transmit the selected video in the real-time stream at the first transmission rate, wherein the second transmission rate is faster than the first transmission rate.