A method of resuming playback of a media program, the playback initiated on a first device and resumed on a second device, comprising the steps of: (a) receiving a request for the media program from the first device in a media program provider, the request comprising a media program identifier (Media Prog ID) and a user identifier (User ID); (b) generating a segment playlist for the requested media program; (c) transmitting the segment playlist to the first device; the method characterized in that generating the segment playlist is performed for the requested media program to comprise a first subset of media program segments and a second subset of media program segments temporally distributed among the first subset of media program segments, and for the segment playlist to comprise instructions for retrieving the first subset of the media program segments from a media server at a first set of uniform resource indicators (URIs), each URI of the first set of URIs associated with one of the segments of the first subset of the media program segments, and to comprise instructions for retrieving a second subset of media program segments from the media server via the media program provider at a second set of URIs, each URI of the second set of URIs associated with a segment of the second set of media program segments, the method further characterized in that it further comprises: (d) receiving a request to retrieve at least one of the second set of media program segments from the first device in the media program provider, the request including the user identifier (User ID) and derived from the instructions for retrieving the seconds set of media program segments; (e) redirecting the received request to retrieve the at least one of the second set of media program segments to the media server; (f) repeating steps (d)-(e) until a request to resume play of the media program is received from the second device in the media program provider; (g) determining a temporal location within the media program to resume playback of the media program from the most recent received request to retrieve the at least one of the second set of media program segments; and (h) transmitting information to resume play of the media program to the second device. (a) receiving a request for the media program from the first device in a media program provider, the request comprising a media program identifier (Media Prog ID) and a user identifier (User ID); (b) generating a segment playlist for the requested media program; (c) transmitting the segment playlist to the first device; (d) receiving a request to retrieve at least one of the second set of media program segments from the first device in the media program provider, the request including the user identifier (User ID) and derived from the instructions for retrieving the seconds set of media program segments; (e) redirecting the received request to retrieve the at least one of the second set of media program segments to the media server; (f) repeating steps (d)-(e) until a request to resume play of the media program is received from the second device in the media program provider; (g) determining a temporal location within the media program to resume playback of the media program from the most recent received request to retrieve the at least one of the second set of media program segments; and (h) transmitting information to resume play of the media program to the second device.