A method of dynamically selecting, assembling and inserting content into a streaming media program, comprising the steps of: (i) receiving a request for a streaming media program from a rendering device; (ii) providing a manifest to the rendering device, the manifest defining the requested streaming media program which comprises at least one main program and at least one duration between a breakpoint and a re-entry point within the at least one main program at which inserted content is to be inserted, the manifest including identifiers of the at least one main program and identifiers of the at least one duration for inserted content; (iii) receiving requests from the rendering device, based upon the identifiers of the at least one main program, for durations of the at least one main program content and providing the corresponding requested durations of the at least one main program content to the rendering device through a network; and (iv) receiving requests from the rendering device, based upon the identifiers of the at least one duration for inserted content and in response to at least a first received request for inserted content: (a) selecting at least two pieces of inserted content, said at least two pieces of inserted content having a total duration which equals the at least one duration between the breakpoint and re-entry point within the at least one main program at which inserted content is to be provided; and (b) providing an assembled emulated single piece of content, comprising the at least two pieces of inserted content processed to have consistent sequencing information between a discontinuity indicator in the manifest and one of the breakpoint and the re-entry point of the at least one main program, to the rendering device, in response to the requests for inserted content, through a network. (i) receiving a request for a streaming media program from a rendering device; (ii) providing a manifest to the rendering device, the manifest defining the requested streaming media program which comprises at least one main program and at least one duration between a breakpoint and a re-entry point within the at least one main program at which inserted content is to be inserted, the manifest including identifiers of the at least one main program and identifiers of the at least one duration for inserted content; (iii) receiving requests from the rendering device, based upon the identifiers of the at least one main program, for durations of the at least one main program content and providing the corresponding requested durations of the at least one main program content to the rendering device through a network; and (iv) receiving requests from the rendering device, based upon the identifiers of the at least one duration for inserted content and in response to at least a first received request for inserted content: (a) selecting at least two pieces of inserted content, said at least two pieces of inserted content having a total duration which equals the at least one duration between the breakpoint and re-entry point within the at least one main program at which inserted content is to be provided; and (b) providing an assembled emulated single piece of content, comprising the at least two pieces of inserted content processed to have consistent sequencing information between a discontinuity indicator in the manifest and one of the breakpoint and the re-entry point of the at least one main program, to the rendering device, in response to the requests for inserted content, through a network.