# US 10,455,279 B2 · System and method for selecting media to be preloaded for adjacent channels

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

- Number: US 10,455,279 B2
- Document ID: US10455279B2
- Status: Granted
- Kind: B2
- Application number: 14/165,513
- Filed: 2014-01-27
- Published: 2014-12-18
- Granted: 2019-10-22
- Earliest claimed: 2013-06-17
- Assignees: Spotify AB
- Applicants: Spotify AB
- Inventors: Eric Hoffert; Mike Berkley; Kevin Faaborg; Gustav Soderstrom
- Web page: https://patentgrep.com/patent/US10455279B2

## CPC

- H04N 21/4384: {involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency}
- G06F 3/017: {Gesture based interaction, e.g. based on a set of recognized hand gestures (interaction based on gestures traced on a digitiser G06F3/04883)}
- H04L 65/60: Network streaming of media packets
- H04N 21/41265: {having a remote control device for bidirectional communication between the remote control device and client device (unidirectional remote control device H04N21/42204)}
- H04N 21/42204: {User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor (constructive details of casings for the remote control device H01H9/0235; user interfaces for controlling a tuning device of a television receiver through a remote control H03J9/00; remote control of peripheral devices connected to a television receiver through the remote control device of the television receiver H04B1/205)}
- H04N 21/42222: {Additional components integrated in the remote control device, e.g. timer, speaker, sensors for detecting position, direction or movement of the remote control, microphone or battery charging device}
- H04N 21/42224: {Touch pad or touch panel provided on the remote control}
- H04N 21/43072: {of multiple content streams on the same device}
- H04N 21/43079: {of additional data with content streams on multiple devices}
- H04N 21/4312: {involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations}
- H04N 21/4314: {for fitting data in a restricted space on the screen, e.g. EPG data in a rectangular grid}
- H04N 21/4316: {for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window}
- H04N 21/4331: {Caching operations, e.g. of an advertisement for later insertion during playback}
- H04N 21/437: Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server {(flow control in data networks H04L47/10; streaming protocols, e.g. RTP or RTCP, H04L65/65; scheduling or organising the servicing of application requests in data packet switching networks H04L67/60)}
- H04N 21/44004: {involving video buffer management, e.g. video decoder buffer or video display buffer}
- 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/47: End-user applications
- H04N 21/47202: {for requesting content on demand, e.g. video on demand}
- H04N 21/482: End-user interface for programme selection
- H04N 21/4383: {Accessing a communication channel}
- H04N 21/4392: {involving audio buffer management}
- H04N 21/4667: {Processing of monitored end-user data, e.g. trend analysis based on the log file of viewer selections}
- H04N 21/4755: {for defining user preferences, e.g. favourite actors or genre (retrieval personalisation and generation of user profiles for the retrieval of video data G06F16/739; user profiles in network data switching protocols H04L67/306)}
- H04N 21/812: {involving advertisement data (advertising per se G06Q30/02)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An electronic device with one or more processors, memory and a display receives a first request to display a first video stream that corresponds to a first channel. In response to receiving the first request, the device starts to download the first video stream from a content source for the first video stream. After starting to download the first video stream, the device displays the first video stream and starts to preload one or more video streams including a second video stream that corresponds to a second channel that is adjacent to the first channel. While displaying the first video stream, the device receives a second request to display the second video stream. In response to receiving the second request, the device displays at least a portion of the second video stream using a preloaded portion of the second video stream.

## Claims

### Claim 1

A method, comprising:
at an electronic device with one or more processors, memory, and a display:
receiving a first request to display a first video stream on the display, wherein the first video stream corresponds to a first channel in a predetermined sequence of channels;
in response to receiving the first request:
starting to download the first video stream from a content delivery server for the first video stream;
while downloading the first video stream and before displaying a second video stream that corresponds to a second channel that is adjacent to the first channel in the predetermined sequence of channels:
displaying the first video stream on the display;
periodically preloading, using a connection over the Internet to a content delivery server for the second video stream, portions of the second video stream from the content delivery server for the second video stream, wherein periodically preloading portions of the second video stream comprises, while maintaining the connection over the Internet to the content delivery server for the second video stream, stopping delivery of the second video stream to the electronic device from the content delivery server for the second video stream after downloading a portion and, at a later time, refreshing the downloading; and
periodically storing the preloaded portions of the second video stream in the memory;
while displaying the first video stream on the display, receiving a second request to display the second video stream on the display, the receiving including detecting a swiping gesture corresponding to movement in a respective direction; and
in response to receiving the second request, sliding a first video tile that includes content from the first video stream off of a first edge of the display while sliding a second video tile that includes content from the second video stream onto the display from a second edge of the display, wherein at least a portion of the first video tile and at least a portion of the second video tile are displayed on the display simultaneously, and wherein the at least a portion of the second video tile displayed on the display includes a preloaded portion of the second video stream stored in the memory.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
establishing the connection over the Internet to the content delivery server for the second video stream.

### Claim 3 (depends on 1)

The method of claim 1, further comprising, while downloading the first video stream and before displaying a third video stream that corresponds to a third channel that is adjacent to the first channel in the predetermined sequence of channels, starting to preload a portion of the third video stream from a content delivery server for the third video stream.

### Claim 4 (depends on 3)

The method of claim 3, wherein:
receiving the first request to display the first video stream includes receiving a channel switching request for switching channels in a detected channel-switching direction in the predetermined sequence of channels; and
the method includes selecting an order for preloading respective portions of the second video stream and the third video stream in accordance with the detected channel-switching direction.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the second video stream is a live video stream; and
the method includes, in response to receiving the second request to display the second video stream:
determining whether the second request meets recency criteria; and
in accordance with a determination that the second request meets the recency criteria, starting to play the second video stream using the preloaded portion of the second video stream stored in the memory.

### Claim 6 (depends on 1)

The method of claim 1, wherein the second video stream is displayed in response to detecting an end of the swiping gesture.

### Claim 7 (depends on 6)

The method of claim 6, wherein the second video stream is requested from the content delivery server for the second video stream in response to detecting the end of the swiping gesture.

### Claim 8 (depends on 6)

The method of claim 6, wherein the second video stream is requested from the content delivery server for the second video stream in response to detecting a beginning of the swiping gesture.

### Claim 9 (depends on 1)

The method of claim 1, wherein:
at least a portion of the second video stream is displayed in response to detecting a beginning of the swiping gesture.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
operating in a first concurrent-download mode of operation, wherein while in the first concurrent-download mode of operation, the electronic device downloads concurrent media streams in accordance with first concurrent download constraints;
while operating in the first concurrent-download mode of operation, detecting a change in an available bandwidth for downloading media streams; and
in response to detecting the change in the available bandwidth for downloading media streams, operating in a second concurrent-download mode of operation, wherein, while in the second concurrent-download mode of operation, the electronic device downloads concurrent media streams in accordance with second concurrent download constraints that are different from the first concurrent download constraints.

### Claim 11 (depends on 1)

The method of claim 1, further comprising, in response to the second request, displaying at least a portion of a third video stream on the display concurrently with at least the portion of the second video tile and at least the portion of the first video tile.

### Claim 12 (depends on 11)

The method of claim 11, wherein:
prior to receiving the first request, the first video tile is displayed at a first size;
the second request includes a request to reduce the size of the first video tile; and
displaying at least the portion of the third video stream on the display concurrently with at least the portion of the second video tile and at least the portion of the first video tile includes displaying an array of video tiles including the first video tile, the second video tile, and a third video tile corresponding to the third video stream, where the first video tile, the second video tile and the third video tile are displayed at respective sizes that are smaller than the first size.

### Claim 13 (depends on 12)

The method of claim 12, further comprising, after displaying the array of video tiles:
receiving a third request to increase the size of a selected video tile in the array of video tiles; and
in response to receiving the third request, enlarging the selected video tile so that the other video tiles in the array are not displayed on the display.

### Claim 14 (depends on 12)

The method of claim 12, wherein:
the array includes a plurality of video tiles for which video data has been preloaded; and
displaying the array includes displaying, in each respective video tile of the plurality of video tiles, preloaded video data corresponding to the respective video tile.

### Claim 15

A computer system, the computer system comprising:
a display;
one or more processors; and
memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for:
receiving a first request to display a first video stream on the display, wherein the first video stream corresponds to a first channel in a predetermined sequence of channels;
in response to receiving the first request:
starting to download the first video stream from a content delivery server for the first video stream;
while downloading the first video stream and before displaying a second video stream that corresponds to a second channel that is adjacent to the first channel in the predetermined sequence of channels:
displaying the first video stream on the display;
periodically preloading, using a connection over the Internet to a content delivery server for the second video stream, portions of the second video stream from the content delivery server for the second video stream, wherein periodically preloading portions of the second video stream comprises, while maintaining the connection over the Internet to the content delivery server for the second video stream, stopping delivery of the second video stream to the electronic device from the content delivery server for the second video stream after downloading a portion and, at a later time, refreshing the downloading; and
periodically storing the preloaded portions of the second video stream in the memory;
while displaying the first video stream on the display, receiving a second request to display the second video stream on the display, the receiving including detecting a swiping gesture corresponding to movement in a respective direction; and
in response to receiving the second request, sliding a first video tile that includes content from the first video stream off of a first edge of the display while sliding a second video tile that includes content from the second video stream onto the display from a second edge of the display, wherein at least a portion of the first video tile and at least a portion of the second video tile are displayed on the display simultaneously, and wherein the at least a portion of the second video tile displayed on the display includes a preloaded portion of the second video stream stored in the memory.

### Claim 16

A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computer system with a display, memory, and one or more processors, cause the computer system to:
receive a first request to display a first video stream on the display, wherein the first video stream corresponds to a first channel in a predetermined sequence of channels;
in response to receiving the first request:
start to download the first video stream from a content delivery server for the first video stream;
while downloading the first video stream and before displaying a second video stream that corresponds to a second channel that is adjacent to the first channel in the predetermined sequence of channels:
display the first video stream on the display;
periodically preload, using a connection over the Internet to a content delivery server for the second video stream, portions of the second video stream from the content delivery server for the second video stream, wherein periodically preloading portions of the second video stream comprises, while maintaining the connection over the Internet to the content delivery server for the second video stream, stopping delivery of the second video stream to the electronic device from the content delivery server for the second video stream after downloading a portion and, at a later time, refreshing the downloading; and
periodically store the preloaded portions of the second video stream in the memory;
while displaying the first video stream on the display, receive a second request to display the second video stream on the display, the receiving including detecting a swiping gesture corresponding to movement in a respective direction; and
in response to receiving the second request, slide a first video tile that includes content from the first video stream off of a first edge of the display while sliding a second video tile that includes content from the second video stream onto the display from a second edge of the display, wherein at least a portion of the first video tile and at least a portion of the second video tile are displayed on the display simultaneously, and wherein the at least a portion of the second video tile displayed on the display includes a preloaded portion of the second video stream stored in the memory.
