# US 11,310,300 B2 · Video streaming optimization for quick start of video display

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

- Number: US 11,310,300 B2
- Document ID: US11310300B2
- Status: Granted
- Kind: B2
- Application number: 16/933,148
- Filed: 2020-07-20
- Published: 2020-11-26
- Granted: 2022-04-19
- Earliest claimed: 2016-09-02
- Assignees: Snap Inc.
- Applicants: Snap Inc.
- Inventors: Darryl Hudgin; Michael Eisel
- Web page: https://patentgrep.com/patent/US11310300B2

## CPC

- H04L 65/1069: Session establishment or de-establishment
- G06Q 10/40: Business processes related to social networking or social networking services
- G06Q 30/02: Marketing; Price estimation or determination; Fundraising
- G06Q 30/0251: Targeted advertisements
- H04L 51/10: Multimedia information
- H04L 51/52: for supporting social networking services
- H04L 65/612: for unicast
- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/562: Brokering proxy services
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- 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/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04L 67/53: using third party service providers
- H04N 21/231: Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N 21/2402: {Monitoring of the downstream path of the transmission network, e.g. bandwidth available (traffic monitoring in data switching networks H04L43/00; monitoring data switching networks utilization H04L43/0876)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Methods, systems, and computer programs are presented for streaming a video. One method includes an operation for initializing, at a client device, a hypertext transfer protocol (HTTP) server for processing streaming video requests from a streaming video application. Further; the method includes an operation for receiving a bundle that includes bundle files, which include manifest files of a manifest for streaming a video and video files having video data. The method further includes operations for caching the bundle files in memory, and for intercepting, at the HTTP server, a request for a file from the streaming video application. When the file is cached in the memory, the file is returned from the memory; otherwise, the HTTP server acts as a proxy by forwarding the request to a video server and then returning the file to the streaming video application after the file is received from the remote server.

## Claims

### Claim 1

A method comprising:
identifying, by a processor, a first user account of a first user in a social network;
determining a video to be preloaded based on the first user account;
creating a bundle for the video including bundle files, the bundles files including manifest files of a manifest for streaming the video and one or more video files having video data for corresponding segments of the video;
transmitting the bundle to a client device associated with the first user account, wherein the bundle files are cached in the client device; and
causing the client device to erase the bundle files after a predetermined amount of time has elapsed without any of the bundle files being requested.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the video to be preloaded comprises determining a probability of the first user requesting presentation of the video.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining the video to be preloaded comprises determining a probability of the first user requesting presentation of the video based on actions of a second user associated with the first user in the social network.

### Claim 4 (depends on 1)

The method of claim 1, wherein the one or more video files comprise:
a first video file with video data for an initial video segment of the video; and
a second video file with video data for a video segment that immediately follows the initial video segment of the video.

### Claim 5 (depends on 1)

The method of claim 1, wherein the one or more video files include video data for a low-resolution rendition of the video, wherein the one or more video files are indexed in a low-resolution index file in the manifest files.

### Claim 6 (depends on 1)

The method of claim 1, wherein the manifest files comprise a bundle index file, a low-resolution index file, a medium-resolution index file, and a high-resolution index file.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
caching, by the client device, the bundle files in a memory included in the client device;
intercepting, by an HTTP server in the client device, a request from a streaming video application, the request including an identification of a requested file;
when the requested file is a file included in the bundle files cached in the memory, transmitting the file included in the bundle files from the memory to the streaming video application; and
when the requested file is absent from the memory, forwarding the request by the HTTP server to a video server and transmitting by the HTTP server the requested file to the streaming video application after the requested file is received from the video server.

### Claim 8

A non-transitory computer-readable storage medium, having stored thereon instructions, when executed by a processor, causes the processor to perform operations comprising:
identifying a first user account of a first user in a social network;
determining a video to be preloaded based on the first user account;
creating a bundle for the video including bundle files, the bundle files including manifest files of a manifest for streaming the video and one or more video files having video data for corresponding segments of the video;
transmitting the bundle to a client device associated with the first user account wherein the bundle files are cached in the client device; and
causing the client device to erase the bundle files after a predetermined amount of time has elapsed without any of the bundle files being requested.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein determining the video to be preloaded comprises determining a probability of the first user requesting presentation of the video.

### Claim 10 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein determining the video to be preloaded comprises determining a probability of the first user requesting presentation of the video based on actions of a second user associated with the first user in the social network.

### Claim 11 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the one or more video files comprise:
a first video file with video data for an initial video segment of the video; and
a second video file with video data for a video segment that immediately follows the initial video segment of the video.

### Claim 12 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the one or more video files include video data for a low-resolution rendition of the video, wherein the one or more video files are indexed in a low-resolution index file in the manifest files.

### Claim 13 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the manifest files comprise a bundle index file, a low-resolution index file, a medium-resolution index file, and a high-resolution index file.

### Claim 14

A system comprising:
a processor; and
a memory having instructions stored thereon, when executed by the processor, causes the system to perform operations comprising:
identifying a first user account of a first user in a social network;
determining a video to be preloaded based on the first user account;
creating a bundle for the video including bundle files, the bundle files including manifest files of a manifest for streaming the video and one or more video files having video data for corresponding segments of the video;
transmitting the bundle to a client device associated with the first user account, wherein the bundle files are cached in the client device; and
causing the client device to erase the bundle files after a predetermined amount of time has elapsed without any of the bundle files being requested.

### Claim 15 (depends on 14)

The system of claim 14, wherein determining the video to be preloaded comprises determining a probability of the first user requesting presentation of the video.

### Claim 16 (depends on 1)

The method of claim 1, wherein determining the video to be preloaded comprises determining a probability of the first user requesting presentation of the video based on actions of a second user associated with the first user in the social network.

### Claim 17 (depends on 14)

The system of claim 14, wherein the one or more video files comprise:
a first video file with video data for an initial video segment of the video; and
a second video file with video data for a video segment that immediately follows the initial video segment of the video.

### Claim 18 (depends on 14)

The system of claim 14, wherein the one or more video files include video data for a low-resolution rendition of the video.

### Claim 19 (depends on 18)

The system of claim 18, wherein the one or more video files are indexed in a low-resolution index file in the manifest files.

### Claim 20 (depends on 14)

The system of claim 14, wherein the manifest files comprise a bundle index file, a low-resolution index file, a medium-resolution index file, and a high-resolution index file.
