# US 11,910,071 B2 · Presenting media items on a playing device

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

- Number: US 11,910,071 B2
- Document ID: US11910071B2
- Status: Granted
- Kind: B2
- Application number: 18/089,268
- Filed: 2022-12-27
- Published: 2023-07-06
- Granted: 2024-02-20
- Earliest claimed: 2020-09-11
- Assignees: Penthera Partners, Inc.
- Applicants: Penthera Partners, Inc.
- Inventors: Joshua James Pressnell; Brian Kline
- Web page: https://patentgrep.com/patent/US11910071B2

## CPC

- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04L 65/60: Network streaming of media packets
- H04L 65/612: for unicast
- H04L 65/765: {intermediate}
- H04L 65/80: Responding to QoS
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04N 21/2181: {comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers (distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- H04N 21/222: Secondary servers, e.g. proxy server, cable television Head-end {(provisioning of proxy services in data packet switching networks H04L67/56)}
- 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)}
- H04N 21/23439: {for generating different versions}
- H04N 21/2358: {for generating different versions, e.g. for different recipient devices}
- H04N 21/23805: {Controlling the feeding rate to the network, e.g. by controlling the video pump}
- H04N 21/26258: {for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list (retrieval of multimedia data based on playlists G06F16/40)}
- H04N 21/458: Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules {; time-related management operations (arrangements for replacing or switching information during the broadcast or during the distribution H04H20/10)}
- H04N 21/6175: {involving transmission via Internet (broadcast-related systems characterised by the transmission system being the Internet H04H60/82)}
- H04N 21/6332: directed to client
- H04N 21/6377: directed to server {(one-way streaming services wherein the source is controlled by the destination H04L65/613)}
- H04N 21/64738: {Monitoring network characteristics, e.g. bandwidth, congestion level (data switched network analysis H04L41/14; monitoring functioning in data switched networks H04L43/0817; flow control in packet networks H04L47/10)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In general, in an aspect, versions of representations of segments of a media item are received and temporarily stored on a media playing device. The segments have a sequence. The temporarily stored versions are used in sequence to present at least part of the media item to a user. One or more other versions of representations of segments of the media item are also received and persistently stored on the media playing device. The one or more persistently stored other versions are used to enhance the presentation of at least part of the media item to the user.

## Claims

### Claim 1

A method comprising:
a helper receiving from a player a first request for a first particular segment of a media item, wherein the media item comprises a first segment group (S1) comprising a first ordered set of N segments S11 to S1N and a second segment group (S2) comprising a second ordered set of N segments S21 to S2N, and the first particular segment is segment S1i, where i>0 and i≤N; and
as a result of receiving the request for the first particular segment, the helper performing a cache building process that comprises:
the helper transmitting to the server a second request for a second particular segment of the media item, wherein the second particular segment is either segment S1i+j or S2i+j where j≥2 and j≤(N−i);
the helper receiving the second particular segment from the server; and
the helper storing in a local cache the second particular segment after receiving the second particular segment from the server.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
after storing the second particular segment in the local cache, the helper receiving from the player a second request, wherein the second request is a request for the second particular segment; and
the helper, in response to receiving from the player the second request for the second particular segment, retrieving the second particular segment from the local cache and providing the second particular segment to the player.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
after storing the second particular segment in the local cache, the helper receiving from the player a second request, wherein the second request is a request for a third particular segment comprising the same media content as the second particular segment, but having a different segment quality level than the second particular segment; and
the helper, in response to receiving from the player the request for the third particular segment, retrieving the second particular segment from the local cache and providing the second particular segment to the player.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
as a result of receiving the first request for the first particular segment, the helper transmitting to a server a request for the first particular segment;
the helper receiving the first segment from the server; and
the helper providing the first segment to the player after receiving the first segment from the server.

### Claim 5 (depends on 1)

The method of claim 1, wherein the cache building process further comprises, prior to transmitting to the server the request for the second particular segment of the media item, the helper selecting a segment quality level, wherein second particular segment of the media item has a quality level equal to the selected segment quality level.

### Claim 6 (depends on 5)

The method of claim 5, wherein selecting the segment quality level comprises selecting the segment quality level based on a determined quality of a communication channel that is used to receive the second particular segment.

### Claim 7 (depends on 1)

The method of claim 1, further comprising, prior to receiving the request for the first particular segment:
the helper receiving, from e media player, a request for a manifest file for the media item;
the helper transmitting a request for the manifest file;
the helper receiving the manifest file;
the helper modifying the received manifest file to produce a modified manifest file; and
the helper responding to the request from the media player for the manifest file by providing to the media player the modified manifest file.

### Claim 8 (depends on 7)

The method of claim 7, wherein the modified manifest file instruct the media player to send all segment requests to the helper.

### Claim 9 (depends on 1)

The method of claim 1, wherein the cache building process further comprises, prior to transmitting to the server the request for the second particular segment of the media item, the helper determining that the second particular segment is a first segment of an advertisement.

### Claim 10 (depends on 9)

The method of claim 9, wherein the cache building process further comprises:
the helper determining that a third particular segment is a second segment of the advertisement;
the helper transmitting to the server a request for the third particular segment of the media item, wherein the third particular segment is either segment S1i+j+1 or S2i+j+1;
the helper receiving the third particular segment from the server;
the helper storing in the local cache the third particular segment after receiving the third particular segment from the server.

### Claim 11

An apparatus, the apparatus comprising:
memory storing instructions for implementing a helper; and
processing circuitry for executing the instructions, wherein the helper is configured to:
receive from a player a first request for a first particular segment of a media item, wherein the media item comprises a first segment group (S1) comprising a first ordered set of N segments S11 to S1N and a second segment group (S2) comprising a second ordered set of N segments S21 to S2N, and the first particular segment is segment S1i, where i>0 and i≤N; and
as a result of receiving the request for the first particular segment, perform a cache building process that comprises:
transmitting to the server a second request for a second particular segment of the media item, wherein the second particular segment is either segment S1i+j or S2i+j, where j≥2 and j≤(N−i);
receiving the second particular segment from the server; and
storing in a local cache the second particular segment after receiving the second particular segment from the server.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the helper is further configured to:
in response to receiving from the player a request for the third particular segment, retrieving the second particular segment from the local cache and providing the second particular segment to the player, wherein
the third particular segment comprises the same media content as the second particular segment, but the third particular segment has a different segment quality level than the second particular segment.

### Claim 13 (depends on 11)

The apparatus of claim 11, wherein
the cache building process further comprises, prior to transmitting to the server the request for the second particular segment of the media item, the helper selecting a segment quality level, wherein second particular segment of the media item has a quality level equal to the selected segment quality level, and
selecting the segment quality level comprises selecting the segment quality level based on a determined quality of a communication channel that is used to receive the second particular segment.

### Claim 14 (depends on 11)

The apparatus of claim 11, wherein the helper is further configured to:
transmit a request for a manifest file for the media item in response to receiving, from the media player, a request for the manifest file for the media item;
after receiving the manifest file, modify the received manifest file to produce a modified manifest file; and
respond to the request from the media player for the manifest file by providing to the media player the modified manifest file, wherein
the modified manifest file instruct the media player to send all segment requests to the helper.

### Claim 15 (depends on 11)

The apparatus of claim 11, wherein the cache building process further comprises, prior to transmitting to the server the request for the second particular segment of the media item, the helper determining that the second particular segment is a first segment of an advertisement.

### Claim 16 (depends on 15)

The method of claim 15, wherein the cache building process further comprises:
the helper determining that a third particular segment is a second segment of the advertisement;
the helper transmitting to the server a request for the third particular segment of the media item, wherein the third particular segment is either segment S1i+j+1 or S2i+j+1;
the helper receiving the third particular segment from the server;
the helper storing in the local cache the third particular segment after receiving the third particular segment from the server.
