A method comprising: receiving, by a computing device, content preference information indicating at least two content items; receiving, by the computing device, at least two manifest files for the at least two content items, wherein each of the manifest files comprises a plurality of entries, and wherein each entry, of the plurality of entries, comprises: a pointer to an associated content segment of the respective content item, and a manifest file tag for the associated content segment of the respective content item; repeatedly monitoring, by the computing device, the at least two manifest files by: determining whether any updates to the at least two manifest files have been received and adding new data to the at least two manifest files; and determining, from a first manifest file associated with a first content item which is being output by the computing device, a first entry, of the plurality of entries, indicating an upcoming content segment of the first content item; based on determining that an associated manifest file tag for the first entry indicates an insertion opportunity, switching output from the first content item to a second content item associated with a second manifest file of the at least two manifest files; and after switching output to the second content item: continuously monitoring the first manifest file for the first content item and the second manifest file for the second content item; and based on determining that the first manifest file includes a second entry, of the plurality of entries, indicating an end of the insertion opportunity, switching back to the first content item. receiving, by a computing device, content preference information indicating at least two content items; receiving, by the computing device, at least two manifest files for the at least two content items, wherein each of the manifest files comprises a plurality of entries, and wherein each entry, of the plurality of entries, comprises: a pointer to an associated content segment of the respective content item, and a manifest file tag for the associated content segment of the respective content item; a pointer to an associated content segment of the respective content item, and a manifest file tag for the associated content segment of the respective content item; repeatedly monitoring, by the computing device, the at least two manifest files by: determining whether any updates to the at least two manifest files have been received and adding new data to the at least two manifest files; and determining, from a first manifest file associated with a first content item which is being output by the computing device, a first entry, of the plurality of entries, indicating an upcoming content segment of the first content item; based on determining that an associated manifest file tag for the first entry indicates an insertion opportunity, switching output from the first content item to a second content item associated with a second manifest file of the at least two manifest files; and determining whether any updates to the at least two manifest files have been received and adding new data to the at least two manifest files; and determining, from a first manifest file associated with a first content item which is being output by the computing device, a first entry, of the plurality of entries, indicating an upcoming content segment of the first content item; based on determining that an associated manifest file tag for the first entry indicates an insertion opportunity, switching output from the first content item to a second content item associated with a second manifest file of the at least two manifest files; and after switching output to the second content item: continuously monitoring the first manifest file for the first content item and the second manifest file for the second content item; and based on determining that the first manifest file includes a second entry, of the plurality of entries, indicating an end of the insertion opportunity, switching back to the first content item. continuously monitoring the first manifest file for the first content item and the second manifest file for the second content item; and based on determining that the first manifest file includes a second entry, of the plurality of entries, indicating an end of the insertion opportunity, switching back to the first content item.