# US 11,113,230 B2 · Media content playback with state prediction and caching

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

- Number: US 11,113,230 B2
- Document ID: US11113230B2
- Status: Granted
- Kind: B2
- Application number: 16/394,528
- Filed: 2019-04-25
- Published: 2019-10-24
- Granted: 2021-09-07
- Earliest claimed: 2016-12-31
- Assignees: Spotify AB
- Applicants: Spotify AB
- Inventors: Simon Hofverberg; Fredrik Schmidt; Johan Oskarsson; Ariel Marcus; Chris Doyle; Joseph Tam; Minchull Kim
- Web page: https://patentgrep.com/patent/US11113230B2

## CPC

- G06F 15/167: using a common memory, e.g. mailbox
- G06F 12/0888: using selective caching, e.g. bypass
- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- G06N 5/02: Knowledge representation; Symbolic representation
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- 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 2212/602: Details relating to cache prefetching
- G06F 2212/603: of operating mode, e.g. cache mode or local memory mode
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Systems, devices, apparatuses, components, methods, and techniques for predicting user and media-playback device states are provided. Systems, devices, apparatuses, components, methods, and techniques for representing cached, user-selected, and streaming content are also provided.

## Claims

### Claim 1

A method of media content item caching on a media-playback device having a cache storing media content decryption keys, the method comprising:
determining whether the media-playback device is in a predetermined state or is likely to enter a predetermined state within a threshold period of time;
selecting one or more of the cached media content decryption keys responsive to determining that the media-playback device is in the predetermined state or is likely to enter the predetermined state within a threshold period of time; and
while the media playback device is determined to be in the predetermined state or is likely to enter the predetermined state within the threshold period of time, preventing the selected one or more of the cached media content decryption keys from being removed from the cache.

### Claim 2 (depends on 1)

The method of claim 1, wherein the predetermined state is a state with respect to travel, user location, Internet connectivity, Internet connectivity speed, Internet connectivity cost, Internet connectivity level, Internet connectivity type, Internet connectivity reliability, battery level, or storage space.

### Claim 3 (depends on 1)

The method of claim 1, wherein the predetermined state is a state with respect to travel, and wherein predicted qualities of the predetermined state comprise one or more attributes selected from the group consisting of: a travel destination, traffic along a travel route, a travel transportation type, travel transportation make, and a travel transportation model.

### Claim 4 (depends on 1)

The method of claim 1, further comprising playing a cached media content item while the media-playback device is in the predetermined state without the media-playback device retrieving data from a remote device to play the cached media content item.

### Claim 5 (depends on 1)

The method of claim 1, selecting a media content item quality for one or more media content items associated with the one or more cached media decryption keys, based in part on determining that the media-playback device is in the predetermined state or will enter the predetermined state within a threshold period of time.

### Claim 6 (depends on 5)

The method of claim 5, wherein the selected media content item quality is selected based at least in part on a predicted Internet connectivity of the device while in the predetermined state.

### Claim 7 (depends on 5)

The method of claim 5, wherein the selected media content item quality is selected based at least in part on: a time of day of that the media-playback device entered or will enter the state, and a predicted duration of the state.

### Claim 8 (depends on 1)

The method of claim 1, further comprising receiving a cache preference from the user, wherein the preventing of the selected one or more of the cached media content decryption keys from being removed from the cache is based in part on the cache preference; and wherein the cache preference is a preference selected from the group consisting of a cache size, a caching aggression, a cache clearing aggression, a quality-size preference, a fetch aggression, and media content items to pre-cache.

### Claim 9 (depends on 1)

The method of claim 1, wherein selecting the one or more of the cached media content decryption keys is further based in part on one or more attributes of a user of the media-playback device.

### Claim 10 (depends on 9)

The method of claim 9, wherein the one or more attributes of the user are selected from a group consisting of media content items played during previous predetermined states and playlists played during previous predetermined states.

### Claim 11 (depends on 9)

The method of claim 9, wherein the one or more attributes of the user are selected from a group consisting of: age, gender, media content items for which the user has indicated an interest, media content items for which the user has indicated a disinterest, entries on the user's calendar, and a state of an application executing on the media-playback device.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
while the media playback device is determined to be in the predetermined state or is likely to enter the predetermined state within the threshold period of time,
selecting each of the one or more cached media content items that is missing an associated media content decryption key in the cache;
retrieving the associated media content decryption key for each of the selected one or more cached media content items from a location remote from the media-playback device; and
storing the retrieved associated media content decryption keys in the cache.

### Claim 13

A media-playback device comprising:
a cache storing media content decryption keys;
a processor; and
at least one non-transitory computer readable data storage device storing instructions that, when executed by the processor, cause the media-playback device to:
determine whether the media-playback device is in a predetermined state or is likely to enter a predetermined state within a threshold period of time;
select one or more of the cached media content decryption keys responsive to determining that the media-playback device is in the predetermined state or is likely to enter the predetermined state within a threshold period of time; and
while the media playback device is determined to be in the predetermined state or is likely to enter the predetermined state within the threshold period of time, prevent the selected one or more of the cached media content decryption keys from being removed from the cache.

### Claim 14 (depends on 13)

The media-playback device of claim 13, further comprising a display device showing a media user interface, wherein the instructions further cause the media-playback device to:
determine an Internet connectivity status of the media-playback device;
cause the media user interface to represent media content items associated with the one or more media content decryption keys in a first manner responsive to the Internet connectivity status being a first status and further responsive to a respective media content item being cached or uncached; and
cause the media user interface to the represent the media content items associated with the one or more media content decryption keys in a second manner responsive to the Internet connectivity status being a second status and further responsive to a respective media content item being cached or uncached.

### Claim 15 (depends on 14)

The media-playback device of claim 14, wherein the media content items associated with the one or more media content decryption keys represented in the first manner are visible to the user and wherein media content items represented in the second manner are hidden from the user.

### Claim 16 (depends on 13)

The media-playback device of claim 13, wherein the one or more of the cached media content decryption keys items are selected based in part on media content item playback preferences of users that play media content items while in the predetermined state.

### Claim 17 (depends on 13)

The media-playback device of claim 13, wherein the instructions that cause the media-playback device to prevent the selected one or more of the cached media content decryption keys from being removed from the cache, cause the prevention during a cache operation.

### Claim 18 (depends on 17)

The media-playback device of claim 17, wherein the cache operation is a maintenance operation.

### Claim 19 (depends on 18)

The media-playback device of claim 18, wherein the maintenance operation is a periodic maintenance operation.

### Claim 20 (depends on 13)

The media playback device of claim 13, wherein the at least one non-transitory computer readable data storage device storing instructions that, when executed by the processor, further cause the media-playback device to:
while the media playback device is determined to be in the predetermined state or is likely to enter the predetermined state within the threshold period of time,
retrieve one or more media content decryption keys that are missing from the cache from a location remote from the media playback device, wherein the one or more missing media content decryption keys are associated with one or more media content items that are stored in the cache; and
store the retrieved one or more media content decryption keys in the cache.

### Claim 21

A media-playback server computing device in data communication with a media playback device having a cache storing media content decryption keys, the media playback system comprising:
a processor; and
at least one non-transitory computer readable data storage device storing instructions that, when executed by the processor, cause the media-playback server computing device to:
determine whether the media-playback device is in a predetermined state or is likely to enter a predetermined state within a threshold period of time;
select one or more of the cached media content decryption keys responsive to determining that the media-playback device is in the predetermined state or is likely to enter the predetermined state within a threshold period of time; and
while the media playback device is determined to be in the predetermined state or is likely to enter the predetermined state within the threshold period of time, prevent the selected one or more of the cached media content decryption keys from being removed from the cache.

### Claim 22 (depends on 21)

The media-playback server computing device of claim 21, further comprising: removing one or more other cached media content decryption keys from the cache while preventing the selected one or more of the cached media content decryption keys from being removed from the cache.

### Claim 23 (depends on 21)

The media playback server computing device of claim 21, wherein the
at least one non-transitory computer readable data storage device storing instructions that, when executed by the processor, further cause the media-playback server computing device to:
while the media playback device is determined to be in the predetermined state or is likely to enter the predetermined state within the threshold period of time,
retrieve one or more media content decryption keys that are missing from the cache from a location remote from the media playback device, wherein the one or more missing media content decryption keys are associated with one or more media content items that are stored in the cache; and
store the retrieved one or more media content decryption keys in the cache.
