# US 12,003,562 B2 · System and method for streaming content from multiple servers

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

- Number: US 12,003,562 B2
- Document ID: US12003562B2
- Status: Granted
- Kind: B2
- Application number: 18/099,958
- Filed: 2023-01-22
- Published: 2023-05-18
- Granted: 2024-06-04
- Earliest claimed: 2015-05-14
- Assignees: Bright Data Ltd.
- Applicants: Bright Data Ltd.
- Inventors: Derry Shribman; Ofer Vilenski
- Web page: https://patentgrep.com/patent/US12003562B2

## 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/752: adapting media to network capabilities
- H04L 65/80: Responding to QoS
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04N 21/4622: {Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet (web site content organization and management for information retrieval from the Internet G06F16/958; transmission by internet of broadcast information H04H60/82; stock exchange data over packet-switching network H04L12/1804; push services including data channel over packet-switching network H04L12/1859)}
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- 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 system and a method for media streaming from multiple sources are disclosed. A content requesting client device accesses a server to receive a list of available sources that may include multiple Content Delivery Networks (CDNs) and independent servers. Based on a pre-set criteria, such as the source delivery performance and cost, the client device partitions the content into parts, allocates a source to each part, and simultaneously receives media streams of the content parts from the allocated sources. The server may be a Video-on-Demand (VOD) server, and the content may be a single file of a video data, such as a movie. The delivery performance of the used sources is measured during the streaming for updating the partition or the allocation. The updated measured performance may be stored locally at the client device, or at a server for use by other clients. The client actions may be implemented as a client-side script.

## Claims

### Claim 1

A method for use with first, second, and third identical copies of a content, the first copy is identified by a first content identifier and stored in a first web server, the second copy is identified by a second content identifier and stored in a second web server, and the third copy is identified by a third content identifier and stored in a third web server, wherein the content comprises at least a first part identified by a first Uniform Resource Locator (URL), a second part identified by a second URL, and a third part identified by a third URL, the method comprising:
operating, by a client device, a web browser;
identifying, by the client device, the first, second, and third content parts;
sending, using the web browser in the client device to the first web server over the Internet, a first Hypertext Transfer Protocol (HTTP) request that includes the first URL;
receiving, by the client device from the first web server over the Internet, in response to the sending of the first HTTP request, the first content part of the first copy;
sending, using the web browser in the client device to the second web server over the Internet, a second HTTP request that includes the second URL;
receiving, by the client device from the second web server over the Internet, in response to the sending of the second HTTP request, the second content part of the second copy;
sending, using the web browser in the client device to the third web server over the Internet, a third HTTP request that includes the third URL;
receiving, by the client device from the third web server over the Internet, in response to the sending of the third HTTP request, the third content part of the third copy; and
combining, by the web browser in the client device, the received first, second, and third content parts to form at least part of the content.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the content comprises a streaming media data.

### Claim 3 (depends on 2)

The method according to claim 2, further comprising playing, by a media player in the web browser at the client device, the formed at least part of the content.

### Claim 4 (depends on 2)

The method according to claim 2, wherein the receiving each of the respective first, second, and third content part by the client device, comprises streaming, from the respective web server to the client device over the Internet, the respective first, second, and third content part.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the streaming is based on, using, or according to, a Hypertext Transfer Protocol (HTTP), Real-time Transport Protocol (RTP), Real Time Streaming Protocol (RTSP), Real-Time Transport Control Protocol (RTCP), User Datagram Protocol (UDP), Transmission Control Protocol (TCP), or any combination thereof.

### Claim 6 (depends on 4)

The method according to claim 4, wherein the streaming is based on, uses, or is according to, a progressive download.

### Claim 7 (depends on 4)

The method according to claim 4, wherein the streaming is based on, uses, or is according to, an adaptive bit-rate streaming.

### Claim 8 (depends on 7)

The method according to claim 7, wherein the streaming is based on, uses, or is according to, a Dynamic Adaptive Streaming over HTTP (DASH), HTTP Live Streaming (HLS), HTTP Dynamic Streaming (HDS), or any combination thereof.

### Claim 9 (depends on 4)

The method according to claim 4, wherein each of the web servers responds to HTTP requests received over the Internet.

### Claim 10 (depends on 9)

The method according to claim 9, wherein a communication of the client device with each of the web servers is based on, or uses, a respective HTTP persistent connection.

### Claim 11 (depends on 9)

The method according to claim 9, wherein a communication of the client device with each of the web servers is based on, or uses, a respective TCP/IP protocol or connection.

### Claim 12 (depends on 1)

The method according to claim 1, wherein the first, second, and third content parts are non-overlapping.

### Claim 13 (depends on 1)

The method according to claim 1, wherein the web browser consists of, comprises, or is based on, Microsoft Internet Explorer, Google Chrome, Opera™, or Mozilla Firefox®.

### Claim 14 (depends on 1)

The method according to claim 1, wherein the web browser is a mobile web browser.

### Claim 15 (depends on 14)

The method according to claim 14, wherein the mobile web browser consists of, comprises, or is based on, Safari, Opera Mini™, or Android web browser.

### Claim 16 (depends on 1)

The method according to claim 1, wherein the content comprises a streaming media data, the method further comprising playing, by a media player that is part of the web browser, the formed at least part of the content.

### Claim 17 (depends on 1)

The method according to claim 1, wherein the client device executes instructions that include, or are based on, a client-side scripting.

### Claim 18 (depends on 17)

The method according to claim 17, wherein the scripting uses a dynamic programming language that supports dynamic typing, first-class functions, functional programming, or any combination thereof.

### Claim 19 (depends on 1)

The method according to claim 1, wherein each of the first, second, and third web servers is identified in the Internet using a respective Internet Protocol (IP) address.

### Claim 20 (depends on 1)

The method according to claim 1, wherein each of the first, second, and third web servers is a replica server that is part of a first Content Distribution Network (CDN) that is operated, controlled, or managed by a first CDN operator.

### Claim 21 (depends on 1)

The method according to claim 1, wherein the sending of the second HTTP request is performed during the receiving of the first content part, and wherein the sending of the third HTTP request is performed during the receiving of the second content part.

### Claim 22 (depends on 1)

The method according to claim 1, wherein each of the URLs is in a format of XXX.YYY.com/ZZZ/UUU.mmm, wherein the XXX identifies the respective web server, the ZZZ identifies a directory including the requested content, and the UUU.mmm identifies a requested file in a directory.

### Claim 23 (depends on 1)

The method according to claim 1, further comprising, by the client device, partitioning the content into at least the distinct first, second, and third content parts.

### Claim 24 (depends on 23)

The method according to claim 23, wherein the partitioning is into 3, 4, 5, 6, 7, 8, 9 or 10 distinct content parts.

### Claim 25 (depends on 24)

The method according to claim 24, wherein any byte of the content is included in at least one of the distinct content parts.

### Claim 26 (depends on 24)

The method according to claim 24, wherein any byte of the content is included in only one of the distinct content parts.

### Claim 27 (depends on 24)

The method according to claim 24, wherein the partitioning is sequential in the content.

### Claim 28 (depends on 24)

The method according to claim 24, wherein the partitioning is non-sequential in the content.

### Claim 29 (depends on 24)

The method according to claim 24, wherein at least two of the content parts are of equal size.
