1. A method implemented in a consumer device, the method comprising: receiving a request at a first time for programming that has already begun to air, wherein the programming is scheduled for transmission to a plurality of users during a scheduled time interval, and wherein the first time corresponds to a point after a beginning time of the scheduled time interval; determining the beginning time of the scheduled time interval; obtaining by the consumer device, based on determining the beginning time, via a unicast session with a server, a first portion of the programming aired prior to the first time, the first portion including previously aired programming, wherein the previously aired programming corresponds to programming transmitted to a plurality of users starting from the beginning time of the scheduled time interval, and wherein the first portion is obtained as a first plurality of packets, each packet of the first plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the first plurality of packets; obtaining by the consumer device, via a multicast broadcast of the programming concurrently with obtaining the first portion by the consumer device via the unicast session, at least part of a remaining portion of the programming that airs after the first time, wherein initiating said obtaining the first portion of the programming and said obtaining the remaining portion of the programming begin together at the consumer device, and wherein the multicast broadcast is obtained as a second plurality of packets, each packet of the second plurality of packets having a presentation timestamp that indicates a play time of media data that is associated with a corresponding packet of the second plurality of packets; comparing a first presentation timestamp of a first packet of the first plurality of packets with a second presentation timestamp of a second packet of the second plurality of packets; determining, based on the comparing, whether the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets; in response to determining that the first presentation timestamp of the first packet of the first plurality of packets matches the second presentation timestamp of the second packet of the second plurality of packets, determining that the unicast session has caught up to the multicast broadcast; and stopping, the unicast session when the unicast session has caught up to the multicast broadcast, to obtain the programming data from the unicast session, and continuing to obtain via the multicast broadcast the remaining portion of the programming from a different source other than the server.