# US 12,003,819 B2 · Internet protocol (IP) to video-on-demand (VOD) gateway

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

- Number: US 12,003,819 B2
- Document ID: US12003819B2
- Status: Granted
- Kind: B2
- Application number: 18/105,502
- Filed: 2023-02-03
- Published: 2024-02-15
- Granted: 2024-06-04
- Earliest claimed: 2009-05-04
- Assignees: Comcast Cable Communications, LLC
- Applicants: Comcast Cable Communications, LLC
- Inventors: Jim Poder; Michael J. Cook
- Web page: https://patentgrep.com/patent/US12003819B2

## CPC

- H04N 21/47202: {for requesting content on demand, e.g. video on demand}
- H04L 12/2801: {Broadband local area networks}
- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- H04L 61/103: across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
- H04L 65/1069: Session establishment or de-establishment
- H04N 21/2221: {being a cable television head-end (CATV in broadcast systems H04H20/78)}
- H04N 21/2225: Local VOD servers
- 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/2343: involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)}
- H04N 21/43615: {Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals (home Audio Video Interoperability [HAVI] data switching networks H04L12/2805)}
- H04N 21/6118: {involving cable transmission, e.g. using a cable modem}
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04N 21/6405: Multicasting {(data broadcast and multicast in packet switching networks H04L12/18)}
- H04N 21/64322: {IP}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A media server is hosted in a service provider's network so that media content can be stored from or rendered to a private network such as a Digital Living Network Alliance network. Media content may be stored by accessing the media server or by downloading the media content to the media server. Support of set top boxes interacting with voice-on-demand (VOD) controllers and computers interacting with IP-based video content servers are integrated through the media server. Consequently, VOD assets can be played on IP-based devices and IP-based content can be played on set top boxes. A gateway function converts IP-based content to a VOD asset, and renders the VOD asset to a set top box while mapping digital rights management information for the VOD asset. Conversely, the gateway function may convert a VOD asset to IP-based content that can be played on an IP-based device.

## Claims

### Claim 1

An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the apparatus to:
determine a first communication channel associated with a first network that comprises a first computing device and a first media server;
determine a second communication channel associated with a second network different than the first network;
receive, via the second communication channel:
an indication of a content item stored in one or more devices of the second network, and
sharing privileges which specify one or more groups that are permitted to retrieve the content item via the second network, wherein each of the one or more groups comprises one or more users;
receive, via the first communication channel and from the first media server, a request for the content item; and
based on determining that a first user of the first media server is part of at least one of the one or more groups that are permitted to retrieve the content item via the second network, cause transmission, via the first computing device, of the content item from the second network to the first network.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the instructions, when executed by the one or more processors, further cause the apparatus to:
cause presentation of a virtual address via the first network, wherein the request for the content item is addressed to the virtual address.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the request for the content item is received via a second computing device in the second network.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the instructions, when executed by the one or more processors, further cause the apparatus to:
subscribe the first user to the at least one of the one or more groups.

### Claim 5

An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the apparatus to:
determine a first communication channel between the apparatus and a first media server in a first network;
determine a second communication channel associated with a second network comprising a second media server, wherein the second network is different than the first network;
store a content item in a storage area associated with a user of the first media server;
receive, from the second media server, a request for the content item;
based on determining that a second user, of the second media server, is part of at least one of one or more groups permitted to retrieve the content item from the apparatus and via the first network:
transcode the content item from a first format to a second format compatible with the second media server; and
send, to the second network, the transcoded content item.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein the instructions, when executed by the one or more processors, cause the apparatus to determine that the second user of the second media server is part of the at least one of the one or more groups that are permitted to retrieve the content item from the apparatus and via the first network by causing the apparatus to subscribe the second user to the at least one of the one or more groups.

### Claim 7 (depends on 5)

The apparatus of claim 5, wherein a first endpoint in the first network has a first public address on a public network, and wherein the first endpoint maps the first public address to a plurality of private addresses on the first network through network address translation.

### Claim 8

An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the apparatus to:
determine a first communication channel associated with a first network comprising a first media server;
determine a second communication channel associated with a second network comprising a second computing device and a second media server;
receive, from the second computing device and via the second communication channel, a content item;
store the content item in a storage area associated with a second user of the second media server;
receive, from the first media server and via the first communication channel, a request for the content item, wherein the request is associated with a first user of the first media server; and
based on determining that the first user of the first media server is part of at least one of one or more groups that are permitted to retrieve the content item from the storage area and via the second network, send, to the first media server, the content item.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the instructions, when executed by the one or more processors, further cause the apparatus to:
receive, from a first computing device associated with the first network, a second content item; and
store the second content item in a second storage area associated with the first user.

### Claim 10

A system comprising:
an apparatus and a first computing device,
wherein the apparatus comprises:
one or more first processors; and
first memory storing first instructions that, when executed by the one or more first processors, cause the apparatus to:
determine a first communication channel associated with a first network that comprises the first computing device and a first media server;
determine a second communication channel associated with a second network different than the first network;
receive, via the second communication channel:
an indication of a content item stored in one or more devices of the second network, and
sharing privileges which specify one or more groups that are permitted to retrieve the content item via the second network, wherein each of the one or more groups comprises one or more users;
receive, via the first communication channel and from the first media server, a request for the content item; and
based on determining that a first user of the first media server is part of at least one of the one or more groups that are permitted to retrieve the content item via the second network, cause transmission, via the first computing device, of the content item from the second network to the first network; and
wherein the first computing device comprises:
one or more second processors; and
second memory storing second instructions that, when executed by the one or more second processors, cause the first computing device to:
transmit the content item from the second network to the first network.

### Claim 11 (depends on 10)

The system of claim 10, wherein the first instructions, when executed by the one or more first processors, further cause the apparatus to:
cause presentation of a virtual address via the first network, wherein the request for the content item is addressed to the virtual address.

### Claim 12 (depends on 10)

The system of claim 10, wherein the request for the content item is received via a second computing device in the second network.

### Claim 13 (depends on 10)

The system of claim 10, wherein the first instructions, when executed by the one or more first processors, further cause the apparatus to:
subscribe the first user to the at least one of the one or more groups.

### Claim 14

A system comprising:
an apparatus and a second media server,
wherein the apparatus comprises:
one or more first processors; and
first memory storing first instructions that, when executed by the one or more first processors, cause the apparatus to:
determine a first communication channel between the apparatus and a first media server in a first network;
determine a second communication channel associated with a second network comprising the second media server, wherein the second network is different than the first network;
store a content item in a storage area associated with a user of the first media server;
receive, from the second media server, a request for the content item;
based on determining that a second user, of the second media server, is part of at least one of one or more groups permitted to retrieve the content item from the apparatus and via the first network:
transcode the content item from a first format to a second format compatible with the second media server; and
send, to the second network, the transcoded content item; and
wherein the second media server comprises:
one or more second processors; and
second memory storing second instructions that, when executed by the one or more second processors, cause the second media server to:
send the request for the content item.

### Claim 15 (depends on 14)

The system of claim 14, wherein the first instructions, when executed by the one or more first processors, cause the apparatus to determine that the second user of the second media server is part of the at least one of the one or more groups that are permitted to retrieve the content item from the apparatus and via the first network by causing the apparatus to subscribe the second user to the at least one of the one or more groups.

### Claim 16 (depends on 14)

The system of claim 14, wherein a first endpoint in the first network has a first public address on a public network, and wherein the first endpoint maps the first public address to a plurality of private addresses on the first network through network address translation.

### Claim 17

A system comprising:
an apparatus and a second computing device,
wherein the apparatus comprises:
one or more first processors; and
first memory storing first instructions that, when executed by the one or more first processors, cause the apparatus to:
determine a first communication channel associated with a first network comprising a first media server;
determine a second communication channel associated with a second network comprising a second computing device and a second media server;
receive, from the second computing device and via the second communication channel, a content item;
store the content item in a storage area associated with a second user of the second media server;
receive, from the first media server and via the first communication channel, a request for the content item, wherein the request is associated with a first user of the first media server; and
based on determining that the first user of the first media server is part of at least one of one or more groups that are permitted to retrieve the content item from the storage area and via the second network, send, to the first media server, the content item; and
wherein the second computing device comprises:
one or more second processors; and
second memory storing second instructions that, when executed by the one or more second processors, cause the second computing device to:
send the content item.

### Claim 18 (depends on 17)

The system of claim 17, wherein the first instructions, when executed by the one or more first processors, further cause the apparatus to:
receive, from a first computing device associated with the first network, a second content item; and
store the second content item in a second storage area associated with the first user.

### Claim 19

One or more non-transitory computer-readable media storing instructions that, when executed, cause:
determining a first communication channel associated with a first network that comprises a first computing device and a first media server;
determining a second communication channel associated with a second network different than the first network;
receiving, via the second communication channel:
an indication of a content item stored in one or more devices of the second network, and
sharing privileges which specify one or more groups that are permitted to retrieve the content item via the second network, wherein each of the one or more groups comprises one or more users;
receiving, via the first communication channel and from the first media server, a request for the content item; and
based on determining that a first user of the first media server is part of at least one of the one or more groups that are permitted to retrieve the content item via the second network, causing transmission, via the first computing device, of the content item from the second network to the first network.

### Claim 20 (depends on 19)

The one or more non-transitory computer-readable media of claim 19, wherein the instructions, when executed, further cause:
causing presentation of a virtual address via the first network, wherein the request for the content item is addressed to the virtual address.

### Claim 21 (depends on 19)

The one or more non-transitory computer-readable media of claim 19, wherein the request for the content item is received via a second computing device in the second network.

### Claim 22 (depends on 19)

The one or more non-transitory computer-readable media of claim 19, wherein the instructions, when executed, further cause:
subscribing the first user to the at least one of the one or more groups.

### Claim 23

One or more non-transitory computer-readable media storing instructions that, when executed, cause:
determining a first communication channel between an apparatus and a first media server in a first network;
determining a second communication channel associated with a second network comprising a second media server, wherein the second network is different than the first network;
storing a content item in a storage area associated with a user of the first media server;
receiving, from the second media server, a request for the content item;
based on determining that a second user, of the second media server, is part of at least one of one or more groups permitted to retrieve the content item from the apparatus and via the first network:
transcoding the content item from a first format to a second format compatible with the second media server; and
sending, to the second network, the transcoded content item.

### Claim 24 (depends on 23)

The one or more non-transitory computer-readable media of claim 23, wherein the instructions, when executed, cause the determining that the second user of the second media server is part of the at least one of the one or more groups that are permitted to retrieve the content item from the apparatus and via the first network by causing subscribing the second user to the at least one of the one or more groups.

### Claim 25 (depends on 23)

The one or more non-transitory computer-readable media of claim 23, wherein a first endpoint in the first network has a first public address on a public network, and wherein the first endpoint maps the first public address to a plurality of private addresses on the first network through network address translation.

### Claim 26

One or more non-transitory computer-readable media storing instructions that, when executed, cause:
determining a first communication channel associated with a first network comprising a first media server;
determining a second communication channel associated with a second network comprising a second computing device and a second media server;
receiving, from the second computing device and via the second communication channel, a content item;
storing the content item in a storage area associated with a second user of the second media server;
receiving, from the first media server and via the first communication channel, a request for the content item, wherein the request is associated with a first user of the first media server; and
based on determining that the first user of the first media server is part of at least one of one or more groups that are permitted to retrieve the content item from the storage area and via the second network, sending, to the first media server, the content item.

### Claim 27 (depends on 26)

The one or more non-transitory computer-readable media of claim 26, wherein the instructions, when executed, further cause:
receiving, from a first computing device associated with the first network, a second content item; and
storing the second content item in a second storage area associated with the first user.
