How to add prefetching support for video

Prefetching positions target media content at the Edge in anticipation of requests by end users. This reduces the time to deliver that content.

Prefetching extracts data from the current request or response and determines the next object that should be requested. (For example, when a specific segment in a media clip is requested by a player, you can prefetch the next segment to the Edge to expedite its delivery.)

A high level flow of Prefetching

  1. The media player makes a request for {object-1}.
  2. Akamai handles the request by forwarding it to your origin.
  3. You origin returns the requested object—{object-1}—back to Akamai.
    • The origin response also includes headers to prefetch {object-2}. The value of this header is either an absolute URL path, or a relative URL path (relative to {object-1}).
  4. Akamai returns {object-1} to player and this completes the request/response flow for {object-1}.
  5. Since the response from your origin also included prefetch response headers for {object-2}, Akamai triggers prefetching.
    • Akamai creates an HTTP/S request for {object-2} and forwards it to your origin. This is called a "prefetch request." Akamai includes a preconfigured request header in it, that tells your origin that it's a prefetch request.
  6. Your origin returns {object-2} to Akamai.
    • The origin response could include a response header to prefetch {object-3} to continue the prefetching process.
  7. Akamai caches {object-2}.
    • Akamai doesn't trigger prefetching for {object-3}. This is because {object-2} was already prefetched from your origin (and you don't want a never-ending recursive prefetch cycle).
  8. The player makes a request for {object-2}.
  9. Akamai fetches {object-2} from it's cache and returns it in the response to the player.
    • If the origin response for {object-2} included prefetch response headers for {object-3}, Akamai triggers prefetching of {object-3}, and the process can continue.

What media formats are supported?

Streaming Formats
  • Apple HTTP Live Streaming (HLS)
  • Dynamic Adaptive Streaming over HTTP (DASH)
  • Microsoft Smooth Streaming (MSS)
Live or Video on Demand (VoD) Both

Add prefetching for a subcustomer

You add this support to a subcustomer's policy via the ACE API v2. It's incorporated within the content-characteristics behavior for either the streaming-video-on-demand or streaming-video-live types:

{
    "rules":[
        {  
            "matches": [
                {
                    "name": "url-wildcard",
                    "value": "/*"
                }
            ],
            "behaviors": [
                {
                    "name": "content-characteristics",
                    "type": "streaming-video-live",
                    "value": "-",
                    "params": {
                        "prefetch": {
                            "originAssist": true
                        }
                    }
                }
            ]
        }
    ]
}

See the following pages for complete details on how to incorporate the content-characteristics behavior, for your selected delivery method: