# US 12,120,404 B2 · System and method for delivering media content to users

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

- Number: US 12,120,404 B2
- Document ID: US12120404B2
- Status: Granted
- Kind: B2
- Application number: 18/041,535
- Filed: 2021-08-13
- Published: 2023-09-28
- Granted: 2024-10-15
- Earliest claimed: 2020-08-14
- Assignees: Novi Digital Entertainment Private Limited
- Applicants: Novi Digital Entertainment Private Limited
- Inventors: Kunal Jayant Gangakhedkar; Nikhil Soman; Akash Saxena; Agrawal Ashutosh
- Web page: https://patentgrep.com/patent/US12120404B2

## CPC

- H04N 21/8586: {by using a URL (processing chained hypermedia data for information retrieval G06F16/94; information retrieval from the Internet by using URLs G06F16/955; URL in broadcast information H04H20/93; Web-based protocols H04L67/02)}
- H04L 43/08: Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 45/302: Route determination based on requested QoS
- H04N 21/2393: {involving handling client requests (scheduling or organising the servicing of application requests H04L67/60)}
- 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)}
- H04N 21/25816: {involving client authentication (restricting access to computer systems by authenticating users using a predetermined code G06F21/33; cryptographic authentication protocols H04L9/32; networks authentication protocols H04L63/08; authentication in wireless network security H04W12/06)}
- H04N 21/25841: {involving the geographical location of the client (retrieval from the Internet by querying based on geographical locations G06F16/9537; arrangements for identifying locations of receiving stations in broadcast systems H04H60/51; location of the user terminal in data switching networks H04L67/52; services making use of the location of users or terminals in wireless networks H04W4/02; locating users or terminals in wireless networks H04W64/00)}
- H04N 21/26216: {involving the channel capacity, e.g. network bandwidth (admission control, resource allocation in open networks H04L12/5692; flow control in packet networks H04L47/10; establishing a schedule or organising the servicing of application requests taking into account QoS H04L67/61)}
- H04N 21/64707: {for transferring content from a first network to a second network, e.g. between IP and wireless}
- H04N 21/64723: {Monitoring of network processes or resources, e.g. monitoring of network load (traffic related reporting in data switching networks H04L43/062)}
- H04L 41/5019: Ensuring fulfilment of SLA
- 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 method (900) and system (150) for delivering media content to users is disclosed. A request for a playback URL in relation to a content title is received from an electronic device (104) associated with a user (102). At least a network Autonomous System Number (ASN), an IP address and a content ID are extracted from the request. A location of the user (102) is determined based on the network ASN and the IP address. Relevant Content Delivery Networks (CDNs) are identified based on the location and the content ID. An optimal CDN is selected based on at least one performance statistic and at least one predefined routing policy. The playback URL is provided to the electronic device (104) in response to the request for the playback URL. The playback URL is configured to facilitate display of content associated with the content title on the electronic device (104).

## Claims

### Claim 1

A computer-implemented method for delivering media content to users, the method comprising:
receiving, by a system, a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a user, the request for the playback URL received in relation to a content title;
extracting, by the system, at least an IP address and a content ID from the request for the playback URL, the content ID related to the content title;
determining, by the system, a location of the user based on the IP address;
identifying, by the system, relevant Content Delivery Networks (CDNs) from among a plurality of CDNs based, at least in part, on the location of the user and the content ID, wherein each relevant CDN from among the relevant CDNs is associated with an autonomous system number (ASN), is in proximity of the user, and stores content associated with the content title;
comparing, by the system, at least one performance statistic for the relevant CDNs to at least one threshold in at least one predefined routing policy to select qualified CDNs;
selecting, by the system, an optimal CDN from among the qualified CDNs based on respective weights assigned to the qualified CDNs in the at least one predefined routing policy; and
providing, by the system, the playback URL to the electronic device in response to the request for the playback URL, wherein the playback URL is configured to facilitate display of the content associated with the content title on the electronic device.

### Claim 2 (depends on 1)

The method as claimed in claim 1, further comprising:
performing, by the system, at least one of an authentication check and an entitlement check on receipt of the request for the playback URL, wherein the authentication check is performed to authenticate account credentials associated with the user and, wherein the entitlement check is performed to check whether the user is entitled to access the content based on the account credentials.

### Claim 3 (depends on 1)

The method as claimed in claim 1, wherein the identification of the relevant CDNs from among the plurality of CDNs further comprises performing a check for a presence of at least one attribute in relation to the content associated with the content title.

### Claim 4 (depends on 3)

The method as claimed in claim 3, wherein an attribute from among the at least one attribute corresponds to one of a high definition resolution of the content and multilingual versions of the content.

### Claim 5 (depends on 1)

The method as claimed in claim 1, wherein determining the location of the user comprises:
extracting, by the system, a network autonomous system number (ASN); and
comparing, by the system, the extracted network ASN and the IP address with information stored in a pre-populated database to determine a network associated with the electronic device and a current geolocation indicating at least one of a country, a region and a city of the user.

### Claim 6 (depends on 1)

The method as claimed in claim 1, wherein the at least one performance statistic is generated based on CDN related statistics and QoS statistics related to each relevant CDN from among the relevant CDNs, wherein a CDN related statistic in relation to a relevant CDN corresponds to one of a central processing unit (CPU) utilization, a memory utilization, a storage IO utilization, a network bandwidth utilization, a cache storage utilization and a peering bandwidth utilization.

### Claim 7 (depends on 6)

The method as claimed in claim 6, further comprising:
receiving, by the system, heartbeat information from electronic devices of a plurality of users associated with at least one of the location of the user and a relevant CDN from among the relevant CDNs, wherein the plurality of users comprises the user; and
analyzing the heartbeat information, by the system, to generate the QoS statistics related to each relevant CDN.

### Claim 8 (depends on 1)

The method as claimed in claim 1, further comprising:
assigning, by the system, weights and priorities to the plurality of CDNs, wherein each relevant CDN is associated with a respective weight and a respective priority and, wherein the assignment of weights to the relevant CDNs is configured to facilitate sharing of traffic if multiple CDNs from among the plurality of CDNs are identified as the relevant CDNs.

### Claim 9 (depends on 8)

The method as claimed in claim 8, wherein a predefined routing policy from among the at least one predefined routing policy comprises evaluating the relevant CDNs based on the associated weights.

### Claim 10 (depends on 9)

The method as claimed in claim 9, wherein the predefined routing policy further comprises evaluating the relevant CDNs based on associated priorities if multiple relevant CDNs are deemed equivalent subsequent to weight based evaluation of the relevant CDNs.

### Claim 11 (depends on 1)

The method as claimed in claim 1, further comprising:
generating the playback URL, by the system, subsequent to the selection of the optimal CDN, wherein an IP address associated with a CDN hostname of the optimal CDN is dynamically determined to facilitate generation of the playback URL at runtime.

### Claim 12 (depends on 1)

The method as claimed in claim 1, further comprising:
causing, by the system, a prefetching of the content from at least one content ingestion server into one or more CDNs from among the plurality of CDNs based on at least one of a network ASN and a location of a plurality of users anticipated to request the content.

### Claim 13

A system for delivering media content to users, the system comprising:
one or more computer processors; and
a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable to:
receive a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a user, the request for the playback URL received in relation to a content title;
extract at least, an IP address and a content ID from the request for the playback URL, the content ID related to the content title;
determine a location of the user based on the IP address;
identify relevant Content Delivery Networks (CDNs) from among a plurality of CDNs based, at least in part, on the location of the user and the content ID, wherein each relevant CDN from among the relevant CDNs is associated with an autonomous system number (ASN), is in proximity of the user, and stores content associated with the content title;
compare at least one performance statistic for the relevant CDNs to at least one threshold in at least one predefined routing policy to select qualified CDNs;
select an optimal CDN from among the qualified CDNs based on respective weights assigned to the qualified CDNs in the at least one predefined routing policy; and
provide the playback URL to the electronic device in response to the request for the playback URL, wherein the playback URL is configured to facilitate display of the content associated with the content title on the electronic device.

### Claim 14 (depends on 13)

The system as claimed in claim 13, wherein the system is further caused to:
perform at least one of an authentication check and an entitlement check on receipt of the request for the playback URL, wherein the authentication check is performed to authenticate account credentials associated with the user and, wherein the entitlement check is performed to check whether the user is entitled to access the content based on the account credentials.

### Claim 15 (depends on 13)

The system as claimed in claim 13, wherein for identification of the relevant CDNs from among the plurality of CDNs, the system is further caused to:
perform a check for a presence of at least one attribute in relation to the content associated with the content title.

### Claim 16 (depends on 15)

The system as claimed in claim 15, wherein an attribute from among the at least one attribute corresponds to one of a high definition resolution of the content and multilingual versions of the content.

### Claim 17 (depends on 13)

The system as claimed in claim 13, wherein for determining the location of the user, the system is further caused to:
extract a network autonomous system number (ASN); and
compare the extracted network ASN and the IP address with information stored in a pre-populated database to determine a network associated with the electronic device and a current geolocation indicating at least one of a country, a region and a city of the user.

### Claim 18 (depends on 13)

The system as claimed in claim 13, wherein the at least one performance statistic is generated based on CDN related statistics and QoS statistics related to each relevant CDN from among the relevant CDNs, wherein a CDN related statistic in relation to a relevant CDN corresponds to one of a central processing unit (CPU) utilization, a memory utilization, a storage IO utilization, a network bandwidth utilization, a cache storage utilization and a peering bandwidth utilization.

### Claim 19 (depends on 18)

The system as claimed in claim 18, wherein the system is further caused to:
receive heartbeat information from electronic devices of a plurality of users associated with at least one of the location of the user and a relevant CDN from among the relevant CDNs, wherein the plurality of users comprises the user; and
analyze the heartbeat information to generate the QoS statistics related to each relevant CDN.

### Claim 20

A computer-implemented method for delivering streaming content to users, the method comprising:
receiving, by a system, a request for a playback Uniform Resource Locator (URL) from an electronic device associated with a user, the request for the playback URL generated by the electronic device in response to a selection of a streaming content title from among a plurality of streaming content titles displayed on the electronic device;
extracting, by the system, at least an IP address and a content ID from the request for the playback URL, the content ID related to the streaming content title;
determining, by the system, a location of the user based on the IP address;
identifying, by the system, relevant Content Delivery Networks (CDNs) from among a plurality of CDNs based, at least in part, on the location of the user and the content ID, wherein each relevant CDN from among the relevant CDNs is associated with an autonomous system number (ASN), is in proximity of the user, and stores content associated with the content title;
generating, by the system, CDN related statistics and QoS statistics for the each relevant CDN from among the identified relevant CDNs;
comparing, by the system, CDN related statistics and QoS statistics for the relevant CDNs to at least one threshold in at least one predefined routing policy to select qualified CDNs;
selecting, by the system, an optimal CDN from among the qualified CDNs based on the CDN related statistics, the QoS statistics and respective weights assigned to the qualified CDNs in the at least one predefined routing policy;
generating the playback URL, by the system, based on an IP address associated with a CDN hostname of the selected optimal CDN; and
providing, by the system, the playback URL to the electronic device in response to the request for the playback URL, wherein the electronic device is configured to generate a hypertext transfer protocol (HTTP) request based on the playback URL and fetch the streaming content from the optimal CDN using the HTTP request.
