Navigation-based Pre-fetching for Just-in-Time Delivery
Methods and apparatus for navigation-based prefetching for just-in-time delivery. Existing content delivery networks (CDNs) are optimized for providing mass media to many consumers. This delivery model is poorly suited to user-specific content. An exemplary client application uses a first user agent to play media, and one or more second user agent(s) that prefetch media. A prefetch process “pre-warms” the CDN, such that the media content is transferred to the appropriate edge server for just-in-time playback by the player agent. In one specific implementation, the prefetch agent monitors user actions (e.g., navigation, etc.) to anticipate user media selections. Anticipated candidates are eagerly prefetched.
1 . An apparatus, comprising:
a user interface;
a network interface;
a processor; and
a non-transitory computer-readable medium comprising instructions that when executed by the processor, cause the processor to:
monitor user action;
determine a set of candidate media based on the user action; and
prefetch the set of candidate media via the network interface.
2 . The apparatus of claim 1 , where the user interface is configured to display a mural of media, and where the user action comprises a scroll rate through the mural.
3 . The apparatus of claim 1 , where the instructions further cause the processor to:
obtain a user selection for a selected media via the user interface; and
responsive to the user selection, request the selected media.
4 . The apparatus of claim 3 , where the set of candidate media is prefetched via a prefetch agent and the selected media is requested via a player agent.
5 . The apparatus of claim 4 , where segments of the set of candidate media are locally cached.
6 . The apparatus of claim 5 , where at least a portion of the selected media is obtained from a locally cached segment.
7 . The apparatus of claim 1 , where the set of candidate media is transfer-lessly prefetched.
8 . A system, comprising:
data plane logic comprising a media storage and a distribution network; and
control plane logic comprising an application programming interface, the control plane logic configured to:
obtain candidate selections from a prefetch agent via the application programming interface;
cause the data plane logic to pre-warm a candidate media based on the candidate selections;
obtain a request for a selected media from a player agent via the application programming interface; and
cause the data plane logic to deliver the selected media from the candidate media in response to the request.
9 . The system of claim 8 , where the candidate media is prefetched from the media storage to an edge server of the distribution network associated with a media playback device.
10 . The system of claim 9 , where the prefetch agent and the player agent are associated with a network address of the media playback device.
11 . The system of claim 8 , where the candidate media is prefetched in a first data format for archival.
12 . The system of claim 11 , where the candidate media is pre-warmed into a second data format for streaming delivery.
13 . The system of claim 8 , where the data plane logic is configured to transfer-lessly pre-warm the candidate media.
14 . The system of claim 8 , where the candidate selections are based on a likelihood of interest and the request is based on an explicit user request.
15 . A method, comprising:
monitoring user action to determine a likelihood of user interest;
prefetching a set of candidate media based on the likelihood;
obtaining an explicit user request for a media asset; and
streaming the media asset from the set of candidate media.
16 . The method of claim 15 , further comprising displaying a mural of media, and where the user action comprises navigation of the mural.
17 . The method of claim 16 , where prefetching the set of candidate media comprises a transfer-less pre-warming.
18 . The method of claim 15 , where prefetching the set of candidate media comprises a downloading a portion of the set of candidate media.
19 . The method of claim 18 , where the portion is discarded.
20 . The method of claim 15 , where the set of candidate media is stored in a first media format for archival and the media asset is streamed in a second media format for streaming.