# US 2017/0257408 A1 · Enhanced streaming media playback

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

- Number: US 2017/0257408 A1
- Document ID: US20170257408A1
- Status: Published application
- Kind: A1
- Application number: 15/600,019
- Filed: 2017-05-19
- Published: 2017-09-07
- Earliest claimed: 2014-06-11
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: Robert Christopher Gaunt; Pavel Pergamenshchik
- Web page: https://patentgrep.com/patent/US20170257408A1

## CPC

- H04L 65/612: for unicast
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04L 65/80: Responding to QoS
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- 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/4825: {using a list of items to be played back in a given order, e.g. playlists}
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04N 21/6371: directed to network
- H04N 21/6377: directed to server {(one-way streaming services wherein the source is controlled by the destination H04L65/613)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A streaming video playback system is provided to generate locally a manifest file associated with a streaming video for a media player of a client device. The locally generated manifest file helps reduce startup time for the media player and the manifest file is locally generated based on streaming metadata associated with the streaming video and the manifest files includes HTTP Live Streaming (HLS) based master playlists and media playlists. The locally generated manifest file also provides better adaptive bit rate control by enabling pre-fetching of video segments of a streaming video and caching during playback. The streaming video playback system reduces the size of media playlist transmitted to a content sharing service using index of the last video segment and makes it practical to have DVR-able live video streaming with a larger seek window.

## Claims

### Claim 1

A computer-implemented method for playing back video content, the method comprising:
detecting, by a proxy server, a request in a first file format for a video from a media player to a content sharing service;
modifying, by the proxy server, the request from the first file format to a second file format, streaming data in the second file format requiring less bandwidth for transmitting the streaming data from the content sharing service than required in the first file format;
providing, by the proxy server on behalf of the media player, the modified request for the video, to the content sharing service;
receiving, by the proxy server, streaming data associated with the video in the second file format from the content sharing service in response to the modified request;
generating, by the proxy server, a manifest file based on the received streaming data associated with the video received from the content sharing service, the manifest file comprising a plurality of media playlists associated with the requested video, each media playlist of the plurality of media playlists identifying a representation of the requested video in a particular visual quality and including a plurality of video segments for the representation of the requested video;
providing, by the proxy server, the manifest file to the media player; and
responsive to the media player fetching a video segment of the requested video, determining, by the proxy server, a representation of the requested video to choose from the plurality of the media playlists.

### Claim 2 (depends on 1)

The method of claim 1, wherein the streaming data associated with the video includes a universal resource locator (URL) of the video provided by the content sharing service.

### Claim 3 (depends on 1)

The method of claim 1, wherein generating, by the proxy server, the manifest file based on the received streaming data associated with the video comprises:
parsing the received streaming data to generate one or more playlists associated with the requested video.

### Claim 4 (depends on 1)

The method of claim 1, wherein a media playlist of the plurality of media playlists comprises a list of locations of video segments of the video identified by the media playlist and a video segment represents a portion of content of the video.

### Claim 5 (depends on 1)

The method of claim 1, wherein the visual quality of the requested video is measured by one or more visual features associated with the requested video, the visual features comprising at least one of the following:
bit rate to represent the video;
resolution of the video;
number of frames per second;
encoding format of the video; and
peak signal-to-noise ratio of the video.

### Claim 6 (depends on 1)

The method of claim 1, wherein the plurality of media playlists associated with the video are in a HTTP Live Streaming (HLS) format and are supported by a HLS streaming protocol.

### Claim 7 (depends on 1)

The method of claim 1, wherein determining, by the proxy server, a representation of the requested video further comprises:
determining, by the proxy server, a representation of the requested video based on input from a user of the media player; and
adaptively updating, by the proxy server, the representation based on a current bit rate for streaming the video segments of the video in the determined representation.

### Claim 8

A computer system for playing back video content, the system comprising:
a processor for executing computer program instructions; and
a non-transitory computer-readable storage medium storing computer program instructions executable to perform operations comprising:
detecting, by a proxy server, a request in a first file format for a video from a media player to a content sharing service;
modifying, by the proxy server, the request from the first file format to a second file format, streaming data in the second file format requiring less bandwidth for transmitting the streaming data from the content sharing service than required in the first file format;
providing, by the proxy server on behalf of the media player, the modified request for the video, to the content sharing service;
receiving, by the proxy server, streaming data associated with the video in the second file format from the content sharing service in response to the modified request;
generating, by the proxy server, a manifest file based on the received streaming data associated with the video received from the content sharing service, the manifest file comprising a plurality of media playlists associated with the requested video, each media playlist of the plurality of media playlists identifying a representation of the requested video in a particular visual quality and including a plurality of video segments for the representation of the requested video;
providing, by the proxy server, the manifest file to the media player; and
responsive to the media player fetching a video segment of the requested video, determining, by the proxy server, a representation of the requested video to choose from the plurality of the media playlists.

### Claim 9 (depends on 8)

The computer system of claim 8, wherein the streaming data associated with the video includes a universal resource locator (URL) of the video provided by the content sharing service.

### Claim 10 (depends on 8)

The computer system of claim 8, wherein generating, by the proxy server, the manifest file based on the received streaming data associated with the video comprises:
parsing the received streaming data to generate one or more playlists associated with the requested video.

### Claim 11 (depends on 8)

The computer system of claim 8, wherein a media playlist of the plurality of media playlists comprises a list of locations of video segments of the video identified by the media playlist and a video segment represents a portion of content of the video.

### Claim 12 (depends on 8)

The computer system of claim 8, wherein the visual quality of the requested video is measured by one or more visual features associated with the requested video, the visual features comprising at least one of the following:
bit rate to represent the video;
resolution of the video;
number of frames per second;
encoding format of the video; and
peak signal-to-noise ratio of the video.

### Claim 13 (depends on 8)

The computer system of claim 8, wherein the plurality of media playlists associated with the video are in a HTTP Live Streaming (HLS) format and are supported by a HLS streaming protocol.

### Claim 14 (depends on 8)

The computer system of claim 8, wherein determining, by the proxy server, a representation of the requested video further comprises:
determining, by the proxy server, a representation of the requested video based on input from a user of the media player; and
adaptively updating, by the proxy server, the representation based on a current bit rate for streaming the video segments of the video in the determined representation.

### Claim 15

A non-transitory computer-readable storage medium storing computer program instructions for playing back video content, the computer program instructions executable to perform operations comprising:
detecting, by a proxy server, a request in a first file format for a video from a media player to a content sharing service;
modifying, by the proxy server, the request from the first file format to a second file format, streaming data in the second file format requiring less bandwidth for transmitting the streaming data from the content sharing service than required in the first file format;
providing, by the proxy server on behalf of the media player, the modified request for the video, to the content sharing service;
receiving, by the proxy server, streaming data associated with the video in the second file format from the content sharing service in response to the modified request;
generating, by the proxy server, a manifest file based on the received streaming data associated with the video received from the content sharing service, the manifest file comprising a plurality of media playlists associated with the requested video, each media playlist of the plurality of media playlists identifying a representation of the requested video in a particular visual quality and including a plurality of video segments for the representation of the requested video;
providing, by the proxy server, the manifest file to the media player; and
responsive to the media player fetching a video segment of the requested video, determining, by the proxy server, a representation of the requested video to choose from the plurality of the media playlists.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the streaming data associated with the video includes a universal resource locator (URL) of the video provided by the content sharing service.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein generating, by the proxy server, the manifest file based on the received streaming data associated with the video comprises:
parsing the received streaming data to generate one or more playlists associated with the requested video.

### Claim 18 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein a media playlist of the plurality of media playlists comprises a list of locations of video segments of the video identified by the media playlist and a video segment represents a portion of content of the video.

### Claim 19 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the visual quality of the requested video is measured by one or more visual features associated with the requested video, the visual features comprising at least one of the following:
bit rate to represent the video;
resolution of the video;
number of frames per second;
encoding format of the video; and
peak signal-to-noise ratio of the video.

### Claim 20 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein determining, by the proxy server, a representation of the requested video further comprises:
determining, by the proxy server, a representation of the requested video based on input from a user of the media player; and
adaptively updating, by the proxy server, the representation based on a current bit rate for streaming the video segments of the video in the determined representation.
