# US 10,771,824 B1 · System for managing video playback using a server generated manifest/playlist

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

- Number: US 10,771,824 B1
- Document ID: US10771824B1
- Status: Granted
- Kind: B1
- Application number: 15/590,955
- Filed: 2017-05-09
- Granted: 2020-09-08
- Earliest claimed: 2016-05-10
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: Ismail R. Haritaoglu; Oztan Harmanci
- Web page: https://patentgrep.com/patent/US10771824B1

## CPC

- H04N 21/23424: {involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement}
- H04N 21/25891: {being end-user preferences (retrieval of video data in a video database based on user preferences G06F16/739; arrangements for recognizing users' preferences H04H60/46; user profiles in network data switching protocols H04L67/306; processing of user preferences or user profiles in wireless networks H04W8/18)}
- H04N 21/232: Content retrieval operation {locally} within server, e.g. reading video streams from disk arrays {(storage management G06F3/0604; details of querying and searching of video data from a database G06F16/739)}
- 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/2393: {involving handling client requests (scheduling or organising the servicing of application requests H04L67/60)}
- 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/2668: Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles {(information retrieval from the Internet by querying with filtering and personalisation G06F16/9535; arrangements for replacing or switching information during the broadcast H04H20/10; push services over packet-switching network H04L12/1859; adaptation of message content in packet-switching networks H04L51/063)}
- H04N 21/6373: for rate control {, e.g. request to the server to modify its transmission rate (flow control in packet networks H04L47/10)}
- H04N 21/6587: Control parameters, e.g. trick play commands, viewpoint selection
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

An apparatus and method for managing video playback for users during video streaming is disclosed. In one aspect, a server may be used to generate manifest files and updates to video players requesting video content. As a result, instead of relying on each video player to enforce logic rules for distribution of the video content, the manifest files and updates may be used to enforce the logic rules on a wider variety of video player configurations. In addition, the manifest files and updates may be provided unique to each video player. Consequently, the manifest files and updates may further provide customized user experiences despite the same video content being requested.

## Claims

### Claim 1

A system for managing video playback comprising:
a manifest server configured to communicate with a plurality of video players and a content delivery network (CDN), the manifest server to:
(a) receive a request from a first video player of the plurality of video players to play a video stream, wherein the video stream is associated with a first manifest file created by an encoder for the video stream and distributed to CDN along with the video stream;
(b) upon receiving the request, communicate with the CDN to request, from the CDN, the first manifest file previously stored at the CDN, the first manifest file containing information to allow any of the plurality of video players to play the video stream;
(c) receive the first manifest file from the CDN;
(d) modify, using a session identifier that identifies the connection between the manifest server and the first video player, the first manifest file previously stored at and received from the CDN to produce a second manifest file unique to the first video player having the request,
wherein to modify the first manifest file to produce the second manifest file unique to the first video player, the manifest server is further to:
determine at least one rule associated with the connection between the manifest server and the first video player,
determine a view history of a user of the video player, and
modify a playlist to specify a combination of segments of the video stream and segments of alternative content in a modified video stream, the combination created based on the rule and the view history of the user,
(e) transmit the second manifest file to the first video player, the second manifest file including (i) information identifying at least one of the video player or the user of the video player, (ii) the at least one rule added to the second manifest file, and (iii) the modified playlist to allow the first video player to play the combination of segments of the video stream and the segments of alternative content in the modified video stream according to the rule added to the second manifest file and the view history of the user of the video player; and
(f) in response to a second request of the user to seek forward or backward in the modified video stream, create an updated second manifest file based on (i) the rule associated with the connection between the manifest server and the first video player and (ii) recent view history of the user.

### Claim 2 (depends on 1)

The system of claim 1, wherein the rule directs the first video player to play the alternative content in addition to playing the video stream.

### Claim 3 (depends on 2)

The system of claim 2, wherein the rule directs the first video player to play the alternative content before playing the video stream.

### Claim 4 (depends on 2)

The system of claim 2, wherein the rule directs the first video player to play the alternative content after playing a predetermined amount of the video stream.

### Claim 5 (depends on 2)

The system of claim 2, wherein the rule inhibits the first video player from skipping the alternative content.

### Claim 6 (depends on 1)

The system of claim 1, wherein the second manifest file includes the session identifier to identify the connection between the manifest server and the first video player having the request.

### Claim 7 (depends on 1)

The system of claim 1, wherein the updated second manifest file contains information to allow the first video player to play the modified video stream according to the rule and the second request from the first video player.

### Claim 8 (depends on 7)

The system of claim 7, wherein the manifest server compares the second request to the current view history of the video player to produce the updated second manifest file.

### Claim 9 (depends on 1)

The system of claim 1, wherein the playlist provides an address at which the video stream can be retrieved and at least one of a data rate and a resolution for the video stream.

### Claim 10

A method to manage video playback using a manifest server configured to communicate with a plurality of video players and a content delivery network (CDN), the method comprising:
(a) receiving a request from a first video player of the plurality of video players to play a video stream, wherein the video stream is associated with a first manifest file created by an encoder for the video stream and distributed to CDN along with the video stream;
(b) upon receiving the request, communicating with the CDN to request, from the CDN, the first manifest file previously stored at the CDN, the first manifest file containing information to allow any of the plurality of video players to play the video stream;
(c) receiving the first manifest file from the CDN;
(d) modifying, using a session identifier that identifies the connection between the manifest server and the first video player, the first manifest file previously stored at and received from the CDN to produce a second manifest file unique to the first video player having the request,
wherein modifying the first manifest file to produce the second manifest file unique to the first video player comprises:
determining at least one rule associated with the connection between the manifest server and the first video player,
determining a view history of a user of the video player; and
modifying a playlist to specify a combination of segments of the video stream and segments of alternative content in a modified video stream, the combination created based on the rule and the view history of the user,
(e) transmitting the second manifest file to the first video player, the second manifest file including (i) information identifying at least one of the video player or the user of the video player, (ii) the at least one rule added to the second manifest file, and (iii) the modified playlist to allow the first video player to play the combination of segments of the video stream and the segments of alternative content in the modified video stream according to the rule added to the second manifest file and the view history of the user of the video player; and
(f) in response to a second request of the user to seek forward or backward in the modified video stream, creating an updated second manifest file based on (i) the rule associated with the connection between the manifest server and the first video player and (ii) recent view history of the user.

### Claim 11 (depends on 10)

The method of claim 10, further comprising the rule directing the first video player to play the alternative content in addition to playing the video stream.

### Claim 12 (depends on 11)

The method of claim 11, further comprising the rule directing the first video player to play the alternative content before playing the video stream.

### Claim 13 (depends on 11)

The method of claim 11, further comprising the rule directing the first video player to play the alternative content after playing a predetermined amount of the video stream.

### Claim 14 (depends on 11)

The method of claim 11, further comprising the rule inhibiting the first video player from skipping the alternative content.

### Claim 15 (depends on 10)

The method of claim 10, further comprising the second manifest file including the session identifier for identifying the connection between the manifest server and the first video player having the request.

### Claim 16 (depends on 10)

The method of claim 10, wherein the updated second manifest file contains information to allow the first video player to play the modified video stream according to the rule and the second request from the first video player.

### Claim 17

A non-transitory computer-readable medium comprising instructions, which when executed by a processor, cause the processor to perform a method to manage video playback using a manifest server configured to communicate with a plurality of video players and a content delivery network (CDN), the method comprising:
(a) receiving a request from a first video player of the plurality of video players to play a video stream, wherein the video stream is associated with a first manifest file created by an encoder for the video stream and distributed to CDN along with the video stream;
(b) upon receiving the request, communicating with the CDN to request, from the CDN, the first manifest file previously stored at the CDN, the first manifest file containing information to allow any of the plurality of video players to play the video stream;
(c) receiving the first manifest file from the CDN;
(d) modifying, using a session identifier that identifies the connection between the manifest server and the first video player, the first manifest file previously stored at and received from the CDN to produce a second manifest file unique to the first video player having the request,
wherein modifying the first manifest file to produce the second manifest file unique to the first video player comprises:
determining at least one rule associated with the connection between the manifest server and the first video player,
determining a view history of a user of the video player; and
modifying a playlist to specify a combination of segments of the video stream and segments of alternative content in a modified video stream, the combination created based on the rule and the view history of the user,
(e) transmitting the second manifest file to the first video player, the second manifest file including (i) information identifying at least one of the video player or the user of the video player, (ii) the at least one rule added to the second manifest file, and (iii) the modified playlist to allow the first video player to play the combination of segments of the video stream and the segments of alternative content in the modified video stream according to the rule added to the second manifest file and the view history of the user of the video player; and
(f) in response to a second request of the user to seek forward or backward in the modified video stream, creating an updated second manifest file based on (i) the rule associated with the connection between the manifest server and the first video player and (ii) recent view history of the user.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium claim 17, wherein the rule directs the first video player to play the alternative content in addition to playing the video stream.
