# US 2019/0173731 A1 · Systems and Methods for Using Seektables to Stream Media Items

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

- Number: US 2019/0173731 A1
- Document ID: US20190173731A1
- Status: Published application
- Kind: A1
- Application number: 16/273,004
- Filed: 2019-02-11
- Published: 2019-06-06
- Earliest claimed: 2016-07-22
- Assignees: Spotify AB
- Applicants: Spotify AB
- Inventors: Isak Bakken; Mark Obcena; Swaroop Narsimha; Jyrki Pulliainen
- Web page: https://patentgrep.com/patent/US20190173731A1

## CPC

- H04N 21/8455: {involving pointers to the content, e.g. pointers to the I-frames of the video stream}
- G06F 16/40: of multimedia data, e.g. slideshows comprising image and additional audio data (retrieval of still image data G06F16/50; retrieval of audio data G06F16/60; retrieval of video data G06F16/70)
- G06F 16/4387: {by the use of playlists}
- G06F 16/447: {Temporal browsing, e.g. timeline}
- G06F 16/483: using metadata automatically derived from the content
- G06F 16/489: {using time information}
- G06F 16/60: of audio data
- G06F 16/61: Indexing; Data structures therefor; Storage structures
- G06F 16/63: Querying
- G06F 16/68: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- H04L 65/612: for unicast
- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- H04L 67/564: Enhancement of application control based on intercepted application data
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- G06F 16/9574: {of access to content, e.g. by caching}
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- 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

In one aspect, a first client device receives, from a second client device, a request to stream a media item from a first position within the media item. The first client device obtains, from a server, a seektable that identifies a plurality of segments into which content corresponding to the media item is divided, wherein each segment of the plurality of segments corresponds to multiple samples of the media item. The first client device consults the seektable to determine a segment of the media item to retrieve in response to the request, the segment including content at the first position. After consulting the seektable, the device retrieves, from the server, the segment of the media item. The first client device plays the content corresponding to the first position using the retrieved segment.

## Claims

### Claim 1

A method, performed at a first client device with one or more processors and memory storing instructions for execution by the one or more processors, the method comprising:
receiving, from a second client device, a request to stream a media item from a first position within the media item;
obtaining, from a server, a seektable that identifies a plurality of segments into which content corresponding to the media item is divided, wherein each segment of the plurality of segments corresponds to multiple samples of the media item;
consulting the seektable to determine a segment of the media item to retrieve in response to the request, the segment including content at the first position;
after consulting the seektable, retrieving, from the server, the segment of the media item; and
playing the content corresponding to the first position using the retrieved segment.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
before receiving the request, downloading and storing the seektable in the memory;
wherein consulting the seektable includes accessing the seektable as stored in the memory.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
consulting metadata, distinct from the seektable, that is associated with a container file to determine a sample of the media item within the retrieved segment from which to begin playing of content corresponding to the media item in response to the seek request; wherein:
the seektable provides a first resolution for seeking within the media item;
the metadata provides a second resolution for seeking within the media item; and
the second resolution is finer than the first resolution.

### Claim 4 (depends on 3)

The method of claim 3, wherein the metadata identifies offsets corresponding to the multiple samples of the media item.

### Claim 5 (depends on 3)

The method of claim 3, wherein:
the seektable is obtained from a first data source; and
the container file is accessed via a second data source that is distinct from the first data source.

### Claim 6 (depends on 1)

The method of claim 1, wherein the request is generated by the second client device, without receiving user input, while the first client device is playing content corresponding to the media item from a position within the media item that is before the first position.

### Claim 7 (depends on 1)

The method of claim 1, wherein:
the media item is a first media item in a playlist that includes a second media item that is scheduled for playback before the first media item, and
the request is generated by the second client device, without receiving user input, while the first client device is playing content corresponding to the second media item.

### Claim 8 (depends on 7)

The method of claim 7, wherein obtaining the seektable comprises obtaining the seektable from a server system while the second client device is playing content corresponding to the second media item.

### Claim 9 (depends on 7)

The method of claim 7, wherein the playing of the content corresponding to the first position using the retrieved segment is performed after playing of the content corresponding to the second media item is complete.

### Claim 10 (depends on 1)

The method of claim 1, wherein:
the seektable is stored using a mark-up language that is natively compatible with a software development kit (SDK) executing on the client device; and
the SDK is provided by a media content provider that facilitates playback of content corresponding to the media item.

### Claim 11 (depends on 10)

The method of claim 10, wherein the mark-up language is JavaScript Object Notation (JSON).

### Claim 12 (depends on 1)

The method of claim 1, wherein the first client device is a media dongle that is physically coupled with a display system.

### Claim 13 (depends on 1)

The method of claim 1, wherein the first client device is a network-connected television.

### Claim 14

A first client device, comprising:
one or more processors; and
memory storing one or more programs, which when executed by the one or more processors cause the client device to:
receive, from a second client device, a request to stream a media item from a first position within the media item;
obtain, from a server, a seektable that identifies a plurality of segments into which content corresponding to the media item is divided, wherein each segment of the plurality of segments includes multiple samples;
consult the seektable to determine a segment of the media item to retrieve in response to the request, the segment including content at the first position;
after consulting the seektable, retrieve, from the server, the segment of the media item; and
play the content corresponding to the first position using the retrieved segment.

### Claim 15

A non-transitory computer-readable storage medium storing one or more programs configured for execution by one or more processors of a first client device, the one or more programs comprising instructions for:
receiving, from a second client device, a request to stream a media item from a first position within the media item;
obtaining, from a server, a seektable that identifies a plurality of segments into which content corresponding to the media item is divided, wherein each segment of the plurality of segments includes multiple samples;
consulting the seektable to determine a segment of the media item to retrieve in response to the request, the segment including content at the first position;
after consulting the seektable, retrieving, from the server, the segment of the media item; and
playing the content corresponding to the first position using the retrieved segment.
