# US 10,771,443 B2 · Method and apparatus for providing enhanced streaming content delivery with multi-archive support using secure download manager and content-indifferent decoding

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

- Number: US 10,771,443 B2
- Document ID: US10771443B2
- Status: Granted
- Kind: B2
- Application number: 15/369,491
- Filed: 2016-12-05
- Published: 2017-10-12
- Granted: 2020-09-08
- Earliest claimed: 2010-05-28
- Assignees: III Holdings 12, LLC
- Applicants: III Holdings 12, LLC
- Inventors: David Aldis; Kenneth Brown; Andrew Gallant
- Web page: https://patentgrep.com/patent/US10771443B2

## CPC

- H04L 63/062: {for key distribution, e.g. centrally by trusted party (cryptographic mechanisms or cryptographic arrangements for key distribution involving a central third party H04L9/0819)}
- H04L 65/60: Network streaming of media packets
- H04L 65/612: for unicast
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04N 21/26258: {for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list (retrieval of multimedia data based on playlists G06F16/40)}
- H04N 21/4405: involving video stream decryption
- H04N 21/472: End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content {(end-user interfaces for retrieving video data from a database G06F16/739; network services for supporting unicast streaming H04L65/612)}
- H04N 21/47202: {for requesting content on demand, e.g. video on demand}
- H04N 21/654: Transmission by server directed to the client
- H04N 21/6582: {Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number (arrangements where receivers interact with the broadcast H04H20/38)}
- H04N 21/8193: {dedicated tools, e.g. video decoder software or IPMP tool}
- G06Q 30/0225: {Avoiding frauds}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A system, apparatuses and methods are provided to download and process data and other content streamed over a wide area network using one or more dynamically fetched, material specific, data handlers (e.g., download assistants). A download assistant fetches a data stream from a remote location and processes the streamed data iteratively using buffers and multi-threaded processes through the decoder (e.g., codec), allowing source material-specific processing of the data as it is streamed from one or more download sources as well as content-indifferent and platform-indifferent decoding. To minimize versioning issues, payload construction for secure delivery is simplified to packing and encrypting a directory tree containing any number of files or other digital media into an archive and, when needed, dividing a payload into multiple files or archives with a descriptor that lists the archives.

## Claims

### Claim 1

A method comprising:
receiving a request from a user device for executing selected content;
identifying a download assistant service to facilitate the fulfillment of the request;
selecting a codec from among a plurality of codecs depending on a method of executing content employed at the user device and a designated content type of the selected content,
wherein the plurality of codecs comprise at least two different codecs to handle at least one of different types of content and different methods of executing content at the user device;
calling the selected codec to verify a license associated with the selected content;
generating, by the selected codec, an installation code;
sending, by the selected codec and to the download assistant, an activation code based on the installation code, the activation code indicating verification of the license associated with the selected content; and
providing to the user device the selected download assistant service and the selected codec for enabling execution of the selected content at the user device,
wherein the executing comprises performing multiple simultaneous or near simultaneous downloads of the selected content via the selected download assistant service, placing the selected content into buffers via the selected download assistant service, and decrypting and unpacking the buffers via the selected codec.

### Claim 2 (depends on 1)

The method of claim 1, wherein identifying the download assistant service depends on at least one of a platform employed by the user device, an operating system employed by the user device, the method of executing content employed by the user device, and the designated content type of the selected content.

### Claim 3 (depends on 1)

The method of claim 1, wherein the download assistant service comprise at least two different download assistant service for managing at least one of different platforms, different user devices, different operating systems, different methods of rendering content for the user, and different types of content.

### Claim 4 (depends on 1)

The method of claim 1, wherein the selected content is rendered by iteratively placing the selected content into buffers.

### Claim 5 (depends on 1)

The method of claim 1, wherein the rendering comprises employing separate threads for the selected download assistant service, and for the selected codec, respectively, to stream the selected content into buffers, and to decrypt and unpack the buffers.

### Claim 6 (depends on 1)

The method of claim 1, wherein the payload for the selected content is prepared for storage by packing and encrypting a directory structure containing at least one of a file and digital media into an archive.

### Claim 7 (depends on 6)

The method of claim 6, further comprising dividing the payload into multiple archives with a descriptor that lists the archives when the at least one of a file and digital media exceed a selected size limit.

### Claim 8 (depends on 7)

The method of claim 7, wherein the executing further comprises employing the descriptor to facilitate unpacking the buffers.

### Claim 9 (depends on 1)

The method of claim 1, further comprising associating a token corresponding to the selected download assistant service with an order number associated with the request, and providing the download assistant service with a link to the selected codec and a link to the selected content upon verification of the download assistant service using the token.

### Claim 10 (depends on 1)

The method of claim 1, wherein a secure API is used for the selected download assistant service.

### Claim 11

A method comprising:
identifying a download assistant from among a plurality of download assistants to fulfill an order for selected content, and selecting a codec from among a plurality of codecs;
providing, to a user device, the identified download assistant, the selected codec, multiple simultaneous or near simultaneous downloads of the selected content, and a serial number to identify the order, wherein the serial number is associated with a corresponding token of the selected download assistant;
verifying, by the selected codec, a license for the selected content using the serial number; and
upon verification of the license, decrypting the selected content using the selected codec;
wherein the selected codec is selected based on type of delivery of the selected content at the user device.

### Claim 12 (depends on 11)

The method of claim 11, wherein each of the plurality of download assistants are provided with a corresponding token.

### Claim 13 (depends on 11)

The method of claim 11, wherein decrypting further comprises streaming the selected content and iteratively placing the selected content into buffers via the selected download assistant and decrypting and unpacking the buffers via the selected codec while streaming to provide the selected content to the user device.

### Claim 14 (depends on 13)

The method of claim 13, wherein the streaming comprises employing separate threads for the selected download assistant and the selected codec, respectively, to stream the selected content into the buffers, and to decrypt and unpack the buffers.

### Claim 15 (depends on 13)

The method of claim 13, wherein the selected content is prepared by packing and encrypting a directory structure containing at least one of a file and digital media into an archive, and dividing the selected content into multiple archives with a descriptor that lists the archives when the at least one of a file and digital media exceed a selected size limit.

### Claim 16 (depends on 15)

The method of claim 15, wherein the streaming further comprises employing the descriptor to facilitate unpacking the buffers.

### Claim 17 (depends on 13)

The method of claim 13 wherein the plurality of download assistants comprises at least two different download assistants for managing at least one of different platforms, different user devices, different operating systems, different methods of rendering content for the user, and different types of content.

### Claim 18 (depends on 13)

The method of claim 13 wherein the plurality of codecs comprises at least two different codecs to handle at least one of different types of content, and different methods of rendering content for the user.

### Claim 19 (depends on 11)

The method of claim 11, wherein the selected download assistant is selected based on at least one of a type of system employed by the user device to receive the selected content and a type of the selected content.

### Claim 20 (depends on 11)

The method of claim 11, wherein selecting the download assistant depends on at least one of a platform employed by the user device, an operating system employed by the user device, the method of rendering content employed by the user device, and the designated content type of the selected content.

### Claim 21 (depends on 1)

The method of claim 1, wherein placing the selected content into buffers via the selected download assistant service comprises placing the selected content into buffers via the selected download assistant service, wherein the placed selected content comprises at least one complete packet of block-aligned encrypted data.

### Claim 22 (depends on 11)

The method of claim 11, further comprising placing the selected content into buffers via the identified download assistant service, wherein the placed selected content comprises at least one complete packet of block-aligned encrypted data.

### Claim 23

A method comprising:
identifying a download assistant from among a plurality of download assistants to fulfill an order for selected content, and selecting a codec from among a plurality of codecs;
providing, to a user device, the identified download assistant, the selected codec, multiple simultaneous or near simultaneous downloads of the selected content, and a serial number to identify the order, wherein the serial number is associated with a corresponding token of the selected download assistant;
verifying a license for the selected content using the serial number and the selected codec; and
upon verification of the license, decrypting the selected content using the selected codec;
wherein the selected codec is selected based on type of delivery of the selected content at the user device; and
wherein verifying the license comprises:
calling the selected codec to verify the license;
generating, by the selected codec, an installation code; and
sending, by the selected codec and to the download assistant, an activation code based on the installation code, the activation code indicating verification of the license associated with the selected content.
