# US 12,003,559 B1 · Techniques for delivering current media content via content delivery networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,003,559 B1
- Document ID: US12003559B1
- Status: Granted
- Kind: B1
- Application number: 18/317,758
- Filed: 2023-05-15
- Granted: 2024-06-04
- Earliest claimed: 2023-05-15
- Assignees: Netflix, Inc.
- Applicants: Netflix, Inc.
- Inventors: Christopher Alan Newton
- Web page: https://patentgrep.com/patent/US12003559B1

## CPC

- H04L 65/60: Network streaming of media packets
- H04N 21/23106: {involving caching operations (prefetching while addressing of a memory level in which the access to the desired data or data block requires associative addressing means within memory systems or architectures G06F12/0862; caching at an intermediate stage in a data network H04L67/568)}
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 16/955: using information identifiers, e.g. uniform resource locators [URL]
- H04L 65/612: for unicast
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04N 21/23439: {for generating different versions}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In various embodiments, a caching application streams segments of a downloadable to a client device. At a first point-in-time, the caching application receives a first request for a first segment of the downloadable from the client device. The caching application computes a cache key based on a request Uniform Resource Locator included in the first request and a version identifier associated with the downloadable. The caching application determines that no segment corresponding to the cache key is stored in a cache. The caching application transmits a second request for the first segment to a different server. Upon receiving a first version of the first segment from the different server, the caching server transmits a response that includes the first version of the first segment to the client device.

## Claims

### Claim 1

A computer-implemented method for streaming segments of a downloadable to a client device, the method comprising:
at a first point-in-time, receiving a first request for a first segment of the downloadable from the client device;
computing a first cache key based on a first request Uniform Resource Locator (URL) included in the first request and a first version identifier associated with the downloadable;
determining that no segment corresponding to the first cache key is stored in a first cache;
transmitting a second request for the first segment to a different server; and
upon receiving a first version of the first segment from the different server, transmitting a first response that includes the first version of the first segment to the client device.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein computing the first cache key comprises aggregating at least one portion of the first request URL and the first version identifier.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein computing the first cache key comprises extracting a relative URL from the first request URL.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein determining that no segment corresponding to the first cache key is stored in the first cache comprises performing one or more comparison operations between the first cache key and a plurality of cache keys corresponding to a plurality of segments stored in the first cache.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising storing the first version of the first segment in the first cache using the first cache key.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
at a second point-in-time that is subsequent to the first point-in-time, receiving a second request for the first segment of the downloadable from the client device or a different client device;
computing a second cache key based on a second request Uniform Resource Locator (URL) included in the second request and the first version identifier, wherein the second cache key is equal to the first cache key; and
retrieving the first version of the first segment from the first cache using the second cache key.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
at a second point-in-time that is prior to the first point-in-time, receiving a configuration update specifying the first version identifier for the downloadable; and
associating the downloadable with the first version identifier instead of an original version identifier.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, further comprising:
at a third point-in-time that is prior to the second point-in-time, receiving a different request for the first segment of the downloadable from the client device or a different client device, wherein the different request includes the first URL;
computing a different cache key based on the first URL and the original version identifier; and
retrieving a different version of the first segment from the first cache using the different cache key.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the different server comprises a caching server included in a content delivery network.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the downloadable is associated with streaming a live event.

### Claim 11

One or more non-transitory computer readable media including instructions that, when executed by one or more processors, cause the one or more processors to stream segments of a downloadable to a client device by performing the steps of:
at a first point-in-time, receiving a first request for a first segment of the downloadable from the client device;
computing a first cache key based on a first request Uniform Resource Locator (URL) included in the first request and a first version identifier associated with the downloadable;
determining that no segment corresponding to the first cache key is stored in a first cache;
transmitting a second request for the first segment to a different server; and
upon receiving a first version of the first segment from the different server, transmitting a first response that includes the first version of the first segment to the client device.

### Claim 12 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein computing the first cache key comprises aggregating at least one portion of the first request URL and the first version identifier.

### Claim 13 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein computing the first cache key comprises deleting a portion of the first request URL that corresponds to at least one of a query, a checksum, or an authorization credential.

### Claim 14 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein determining that no segment corresponding to the first cache key is stored in the first cache comprises performing one or more comparison operations between the first cache key and a plurality of cache keys corresponding to a plurality of segments stored in the first cache.

### Claim 15 (depends on 11)

The one or more non-transitory computer readable media of claim 11, further comprising:
generating a cache entry that includes the first cache key and the first version of the first segment; and
storing the cache entry in the first cache.

### Claim 16 (depends on 15)

The one or more non-transitory computer readable media of claim 15, further comprising:
at a second point-in-time that is subsequent to the first point-in-time, receiving a second request for the first segment of the downloadable from the client device or a different client device;
computing a second cache key based on a second request URL included in the second request and the first version identifier, wherein the second cache key is equal to the first cache key; and
retrieving the first version of the first segment from the first cache using the second cache key.

### Claim 17 (depends on 11)

The one or more non-transitory computer readable media of claim 11, further comprising:
at a second point-in-time that is prior to the first point-in-time, receiving a configuration update specifying the first version identifier for the downloadable; and
associating the downloadable with the first version identifier instead of an original version identifier.

### Claim 18 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein, at the first point-in-time, the first cache includes a different version of the first segment corresponding to a different cache key generated based on a different version identifier that was previously associated with the downloadable.

### Claim 19 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein the different server comprises an origin server that stores a definitive and current version of the downloadable.

### Claim 20

A system comprising:
one or more memories storing instructions; and
one or more processors coupled to the one or more memories that, when executing the instructions, perform the steps of:
at a first point-in-time, receiving a first request for a first object from a client device, wherein the first object is included in a first versionable group;
computing a first cache key based on a first request Uniform Resource Locator (URL) included in the first request and a first version identifier associated with the first versionable group;
determining that no object corresponding to the first cache key is stored in a first cache;
transmitting a second request for the first object to a different server; and
upon receiving a first version of the first object from the different server, transmitting a first response that includes the first version of the first object to the client device.
