# US 12,015,810 B2 · Intelligent download of content

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

- Number: US 12,015,810 B2
- Document ID: US12015810B2
- Status: Granted
- Kind: B2
- Application number: 18/182,705
- Filed: 2023-03-13
- Published: 2023-07-06
- Granted: 2024-06-18
- Earliest claimed: 2017-08-17
- Assignees: Roku, Inc.
- Applicants: Roku, Inc.
- Inventors: Anthony John Wood
- Web page: https://patentgrep.com/patent/US12015810B2

## CPC

- H04N 21/234363: {by altering the spatial resolution, e.g. for clients with a lower screen resolution}
- H04N 21/23439: {for generating different versions}
- H04N 21/2387: Stream processing in response to a playback request from an end-user, e.g. for trick-play
- H04N 21/239: Interfacing the upstream path of the transmission network, e.g. prioritizing client {content} requests (hybrid fiber coaxial [HFC] networks for upstream channel allocation for video distribution H04L12/2801; flow control in data networks H04L47/10; real-time communication protocols in data switching networks H04L65/00; scheduling or organising the servicing of application requests H04L67/60)
- H04N 21/2662: Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
- H04N 21/4384: {involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency}
- H04N 21/44209: {Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network (arrangements for maintenance or administration in data switching networks involving bandwidth and capacity management H04L41/0896)}
- H04N 21/4524: {involving the geographical location of the client (retrieval from the Internet by querying based on geographical locations G06F16/9537; systems specially adapted for using geographical information in broadcast systems H04H60/70; protocols in which the network application is adapted for the location of the user terminal in communication control or processing H04L67/52; services making use of the location of users or terminals in wireless networks H04W4/02; locating users or terminals in wireless networks H04W64/00)}
- H04N 21/4621: {Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen (arrangements for using the results of monitoring on user's side in broadcast systems H04H60/65; flow control in packet networks H04L47/10)}
- H04N 21/472: End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content {(end-user interfaces for retrieving video data from a database G06F16/739; network services for supporting unicast streaming H04L65/612)}
- H04N 21/647: Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless {(real-time session protocols H04L65/1101)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Intelligently downloading content to user devices is described herein. According to an embodiment, a user request for content is received. In response to the request, a low quality version of the content is downloaded and played to the user. Then, a higher quality version of the content is downloaded (this may occur during or after the download or playback of the low quality version of the content). Playback of the low quality version is discontinued. Then, playback of the higher quality version begins at the point where playback of the low quality version was discontinued. In some embodiments, the low quality version and the higher quality version of the requested content (among all the versions of the requested content) are identified via crowdsourcing.

## Claims

### Claim 1

A computer implemented method for intelligently downloading content, comprising:
receiving a request for the content from a user;
downloading a first quality version of the content from a content server in response to the receiving the request;
playing the first quality version of the content on a user device;
in response to the playing, determining a second quality version of the content among a plurality of quality versions of the content to download based on a future time slot when the user intends to playback the content, wherein a resolution of the second quality version of the content is greater than a resolution of the first quality version of the content;
in response to the determining, requesting the second quality version of the content;
downloading the second quality version of the content in response to the requesting the second quality version of the content;
discontinuing the downloading of the first quality version of the content based on the downloading of the second quality version of the content; and
playing the second quality version of the content on the user device at a point in the content where the downloading of the first quality version of the content was discontinued.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, wherein the downloading the second quality version of the content further comprises:
downloading the second quality version of the content based on a furthest point in the content that has been played to the user.

### Claim 3 (depends on 1)

The computer implemented method of claim 1, wherein the requesting the second quality version of the content further comprises:
selecting the second quality version of the content to download based on crowdsourced data specifying a highest quality version of the content that is acceptable given playback capabilities of the user device.

### Claim 4 (depends on 1)

The computer implemented method of claim 1, wherein the downloading the second quality version of the content further comprises:
downloading the second quality version of the content based on a location of the user device.

### Claim 5 (depends on 1)

The computer implemented method of claim 1, wherein the determining the second quality version of the content among the plurality of quality versions of the content to download further comprises:
determining the second quality version of the content among the plurality of quality versions of the content to download based on an amount of time the user has to download the content.

### Claim 6 (depends on 5)

The computer implemented method of claim 5, wherein the amount of time the user has set aside to playback the content is determined based on a calendar for the user.

### Claim 7 (depends on 5)

The computer implemented method of claim 5, wherein the amount of time the user has set aside to playback the content is determined based on a location of the user device.

### Claim 8

A user device, comprising:
at least one processor configured to:
receive a request for content from a user;
download a first quality version of the content from a content server in response to the receiving the request;
play the first quality version of the content on the user device;
in response to the playing, determine a second quality version of the content among a plurality of quality versions of the content to download based on a future time slot when the user intends to playback the content, wherein a resolution of the second quality version of the content is greater than a resolution of the first quality version of the content;
in response to the determining, request the second quality version of the content;
download the second quality version of the content in response to the requesting the second quality version of the content;
discontinue the downloading of the first quality version of the content based on the downloading of the second quality version of the content; and
play the second quality version of the content on the user device at a point in the content where the downloading of the first quality version of the content was discontinued.

### Claim 9 (depends on 8)

The user device of claim 8, wherein to download the second quality version of the content, the at least one processor is further configured to:
download the second quality version of the content based on a furthest point in the content that has been played to the user.

### Claim 10 (depends on 8)

The user device of claim 8, wherein to request the second quality version of the content, the at least one processor is further configured to:
select the second quality version of the content to download based on crowdsourced data specifying a highest quality version of the content that is acceptable given playback capabilities of the user device.

### Claim 11 (depends on 8)

The user device of claim 8, wherein to download the second quality version of the content, the at least one processor is further configured to:
download the second quality version of the content based on a location of the user device.

### Claim 12 (depends on 8)

The user device of claim 8, wherein to determine the second quality version of the content among the plurality of quality versions of the content to download, the at least one processor is further configured to:
determine the second quality version of the content among the plurality of quality versions of the content to download based on an amount of time the user has to download the content.

### Claim 13 (depends on 12)

The user device of claim 12, wherein the amount of time the user has set aside to playback the content is determined based on a calendar for the user.

### Claim 14 (depends on 12)

The user device of claim 12, wherein the amount of time the user has set aside to playback the content is determined based on a location of the user device.

### Claim 15

A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:
receiving a request for content from a user;
downloading a first quality version of the content from a content server in response to the receiving the request;
playing the first quality version of the content on the at least one computing device;
in response to the playing, determining a second quality version of the content among a plurality of quality versions of the content to download based on a future time slot when the user intends to playback the content, wherein a resolution of the second quality version of the content is greater than a resolution of the first quality version of the content;
in response to the determining, requesting the second quality version of the content;
downloading the second quality version of the content in response to the requesting the second quality version of the content;
discontinuing the downloading of the first quality version of the content based on the downloading of the second quality version of the content; and
playing the second quality version of the content on the at least one computing device at a point in the content where the downloading of the first quality version of the content was discontinued.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the downloading the second quality version of the content further comprises:
downloading the second quality version of the content based on a furthest point in the content that has been played to the user.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the requesting the second quality version of the content further comprises:
selecting the second quality version of the content to download based on crowdsourced data specifying a highest quality version of the content that is acceptable given playback capabilities of the at least one computing device.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the downloading the second quality version of the content further comprises:
downloading the second quality version of the content based on a location of the at least one computing device.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the determining the second quality version of the content among the plurality of quality versions of the content to download further comprises:
determining the second quality version of the content among the plurality of quality versions of the content to download based on an amount of time the user has to download the content.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19, wherein the amount of time the user has set aside to playback the content is determined based on a calendar for the user or a location of the at least one computing device.
