# US 8,752,100 B2 · Systems and methods for distributing video on demand

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

- Number: US 8,752,100 B2
- Document ID: US8752100B2
- Status: Granted
- Kind: B2
- Application number: 12/201,844
- Filed: 2008-08-29
- Published: 2010-03-04
- Granted: 2014-06-10
- Earliest claimed: 2008-08-29
- Assignees: AT&T Intellectual Property II, L.P.
- Applicants: Kadangode Ramakrishnan; Rittwik Jana; Divesh Srivastava; Vijay Gopalakrishnan; Samrat Bhattacharjee
- Inventors: Kadangode Ramakrishnan; Rittwik Jana; Divesh Srivastava; Vijay Gopalakrishnan; Samrat Bhattacharjee
- Web page: https://patentgrep.com/patent/US8752100B2

## CPC

- 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 7/17318: {Direct or substantially direct transmission and handling of requests}
- H04N 21/262: Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists {(scheduling strategies for dispatcher in multiprogramming arrangements G06F9/4881; arrangements for scheduling broadcast services or broadcast-related services H04H60/06; flow control in packet networks H04L47/10; establishing a time schedule or organising the servicing of application requests H04L67/62)}
- H04N 21/4331: {Caching operations, e.g. of an advertisement for later insertion during playback}
- H04N 21/47202: {for requesting content on demand, e.g. video on demand}
- H04N 21/4788: communicating with other users, e.g. chatting {(arrangements for providing for computer conferences, e.g. chat rooms, to substation in data switching networks H04L12/1813; distributed application using peer-to-peer [P2P] networks H04L67/104)}
- H04N 21/4856: {for language selection, e.g. for the menu or subtitles}
- H04N 21/6405: Multicasting {(data broadcast and multicast in packet switching networks H04L12/18)}
- H04N 21/6408: Unicasting
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of receiving content includes joining an in-progress multicast stream to receive a first portion of a content. The method further includes sending a request to a peer for a catch-up portion of the content, the request including a deadline for delivery of the content, and receiving the catch-up portion of the content from the peer prior to the deadline.

## Claims

### Claim 1

A method of receiving content, comprising:
joining, by a media device including a processor, an in-progress multicast stream to receive content from a content server, wherein the in-progress multicast stream is missing a transpired portion of the content;
submitting, by the media device, to a search server a first request for the transpired portion of the content, wherein the first request comprises a globally unique identifier that identifies the transpired portion of the content;
acquiring, by the media device, information from the search server based on a search performed by the search server, wherein the search server performs the search of a network topology of a plurality of peer devices in proximity to the media device according to the globally unique identifier of the transpired portion of the content to determine whether any of the plurality of peer devices can provide the media device a catch-up portion of the transpired portion of the content, wherein the search server receives from the plurality of peer devices a corresponding globally unique identifier for each chunk of content stored by the plurality of peer devices, which the search server stores in a directory of peer devices;
responsive to joining the in-progress multicast stream and responsive to determining from the information that the search server has identified in the directory of peer devices an entry associated with a peer device of the plurality of peer devices that matches to the globally unique identifier of the transpired portion of the content,
sending, by the media device, a second request to the peer device of the plurality of peer devices for the catch-up portion of the transpired portion of the content, wherein the catch-up portion of the transpired portion of the content corresponds to at least a part of the transpired portion of the content,and wherein the request includes a deadline for delivery of the catch-up portion of the transpired portion of the content;
receiving, by the media device, the catch-up portion of the transpired portion of the content from the peer device prior to the deadline,
responsive to joining the in-progress multicast stream and responsive to determining from the information that none of the plurality of peer devices has the catch-up portion of the transpired portion of the content,
sending, by the media device, to the content server a third request for the transpired portion of the content;
receiving, by the media device, from the content server the transpired portion of the content,
wherein the search server performs the search in accordance with policy information stored on the search server to identify peer groups, the policies being based on a time of day, a day of week, or a network usage pattern.

### Claim 2 (depends on 1)

The method of claim 1 wherein the content is one of a video content, a software package, and any combination thereof.

### Claim 3 (depends on 1)

The method of claim 1 wherein sending the second request to the peer device includes broadcasting the second request to the plurality of peer devices.

### Claim 4

A set-top box comprising:
a memory to store content; and
a processor in communication with the memory, wherein the memory comprises instructions, which when executed by the processor cause the processor to perform operations comprising:
joining an in-progress multicast stream to receive a first portion of content from a content server, wherein the in-progress multicast stream is missing a transpired portion of the content;
submitting to a search server a first request for the transpired portion of the content, wherein the first request comprises a globally unique identifier that identifies the transpired portion of the content;
acquiring information from the search server based on a search performed by the search server, wherein responsive to the first request the search server performs the search of a network topology of a plurality of peer devices in proximity to the set-top box according to the globally unique identifier of the transpired portion of the content to determine whether any of the plurality of peer devices can provide the set-top box a catch-up portion of the transpired portion of the content, wherein the search server receives from the plurality of peer devices a corresponding globally unique identifier for each chunk of content stored by the plurality of peer devices, which the search server stores in a directory of peer devices;
responsive to joining the in-progress multicast stream and responsive to determining from the information that the search server has identified in the directory of peer devices an entry associated with a peer device of the plurality of peer devices that matches to the globally unique identifier of the transpired portion of the content;
sending a second request to the peer device for the catch-up portion of the transpired portion of the content, the second request including a deadline for delivery of the transpired portion of the content; and
receiving the catch-up portion of the transpired portion of the content from the peer device prior to the deadline,
wherein the search server performs the search in accordance with information regarding policies stored on the search server to identify peer groups, the policies being based on a time of day, a day of week, or a network usage pattern.

### Claim 5 (depends on 4)

The set-top box of claim 4 wherein the operations further comprise identifying the peer device by receiving a list of the plurality of peer devices from the search server.

### Claim 6 (depends on 4)

The set-top box of claim 4 wherein the search server is one of a distributed set of servers.

### Claim 7 (depends on 4)

The set-top box of claim 4, wherein the catch-up portion of the transpired portion of the content comprises a chunk of content.

### Claim 8 (depends on 4)

The set-top box of claim 4 wherein the operations further comprise notifying the content server of chunks with globally unique identifiers stored in the memory and available for delivery to a device.

### Claim 9 (depends on 1)

The method of claim 1, comprising communicating, by the media device, with the peer device and the content server by way of a single communications network.

### Claim 10 (depends on 1)

The method of claim 1, comprising communicating, by the media device, with the peer device and the content server by way of two independent communications networks.

### Claim 11 (depends on 1)

The method of claim 1, comprising receiving, by the media device, a play file from the content server identifying the catch-up portion of the content.

### Claim 12 (depends on 1)

The method of claim 1, comprising determining, by the media device, an availability of upload bandwidth from the peer.

### Claim 13 (depends on 4)

The set-top box of claim 4, wherein the operations further comprise communicating with the peer device and the content server by way of a single communications network.

### Claim 14 (depends on 4)

The set-top box of claim 4, wherein the operations further comprise communicating with the peer device and the content server by way of two independent communications networks.

### Claim 15 (depends on 4)

The set-top box of claim 4, wherein receiving from the content server the transpired portion of the content comprises receiving a play file from the content server identifying the transpired portion of the content.

### Claim 16 (depends on 4)

The set-top box of claim 4, wherein the operations further comprise determining an availability of upload bandwidth from the peer device.

### Claim 17

A server, comprising:
a memory to store instructions; and
a controller coupled to the memory, wherein responsive to executing the instructions, the controller performs operations comprising:
receiving a communication from a media device to identify a source of a transpired transpired portion of media content of a multicast stream joined in-progress by the media device, wherein the communication comprises a globally unique identifier that identifies the transpired portion of the content;
receiving from a plurality of peer devices a corresponding globally unique identifier for each chunk of content stored by the plurality of peer devices;
storing the corresponding globally unique identifier for each chunk of content and an identification of the plurality of peer devices in a directory of peer devices;
performing a search of a network topology for the plurality of peer devices in proximity to the media device according to the globally unique identifier of the transpired portion of the content to determine whether any of the plurality of peer devices can provide the media device a catch-up portion of the transpired portion of the content; and
providing information to the media device regarding a peer device of the plurality of peer devices having the catch-up portion of the transpired portion of the content responsive to identifying in the directory of peer devices an entry associated with the peer device that matches to the globally unique identifier of the transpired portion of the content, wherein the media device sends a request to the peer device in accordance with the information provided by the server for the catch-up portion of the transpired portion of the content, the request including a deadline for delivery of the catch-up portion of the content, and wherein the search is performed with policy information regarding policies stored on the server to identify peer groups, the policies being based on a time of day, a day of week, or a network usage pattern.

### Claim 18 (depends on 17)

The server of claim 17, wherein the operations further comprise notifying the media device to request the catch-up portion of the transpired portion of the content from a content server responsive to determining that none of the plurality of peer devices has the catch-up portion of the transpired portion of the content.
