# US 2017/0286162 A1 · Extensible workflows for processing content

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

- Number: US 2017/0286162 A1
- Document ID: US20170286162A1
- Status: Published application
- Kind: A1
- Application number: 15/627,137
- Filed: 2017-06-19
- Published: 2017-10-05
- Earliest claimed: 2012-05-07
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Jonathan B. Corley; Tal Saraf; Bradley E. Marshall
- Web page: https://patentgrep.com/patent/US20170286162A1

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method is described for enabling a user to add extensions to one or more of the preconfigured workflows for processing media content. The extensions can comprise a custom task that is injected at a specified entry point in the preconfigured workflow, such as after completion of a particular task. The custom task injected into the workflow can perform a variety of processing jobs, such as adding digital rights management (DRM), allowing access to the media content by third parties, injecting advertisements or other content into the media, checking the media content for errors or viruses, and the like. The custom task may also instruct the workflow to delegate access to the media content to external third party services. When the preconfigured workflow reaches the specified entry point, the workflow may be suspended until the custom task is completed, at which point the preconfigured workflow may resume.

## Claims

### Claim 1

A computer implemented method, comprising:
enabling access to a plurality of workflows for processing media content, a workflow of the plurality of the workflows including a sequence of processing jobs to be performed on the media content, the sequence of processing jobs including transcoding the media content;
selecting, based on attributes of the media content, the workflow for processing the media content;
providing processing parameters for the workflow to process the media content, the processing parameters associated with the attributes of the media content or custom processing tasks to be included into the sequence of processing jobs;
uploading the media content for processing; and
executing the at least one of the plurality of workflows to process the media content.

### Claim 2 (depends on 1)

The method of claim 1, wherein preparing to process media content for distribution further comprises:
transmitting the processed media content to a service provider computing system comprising a processor and a non-transitory storage medium, wherein the processed media content is stored on the non-transitory storage medium of the service provider computing system.

### Claim 3 (depends on 1)

The method of claim 1, wherein the custom processing tasks further include one or more of the following: attaching a watermark to the media content, the watermark used to uniquely identify the media content, applying digital rights management (DRM) security information to the media content, inserting at least one advertisement into the media content, inspecting the media content for one or more errors, or scanning the media content for potential viruses.

### Claim 4 (depends on 1)

The method of claim 1, wherein uploading the media content further includes:
providing the media content or a portion of the media content to a third party capable of executing the custom processing tasks; and
receiving the media content from the third party after the custom processing tasks have been performed on the media content by the third party.

### Claim 5 (depends on 1)

The method of claim 1, wherein preparing the processed media content for distribution further includes:
providing, via a content delivery network, the processed media content or a portion of the processed media content to a service provider computing system, wherein the service provider computing system distributes the processed media content to a plurality of users via the content delivery network.

### Claim 6

A non-transitory computer readable storage medium storing one or more sequences of instructions executable by one or more processors to perform a set of operations comprising:
enabling access to a plurality of workflows for processing media content, a workflow of the plurality of the workflows including a sequence of processing jobs to be performed on the media content, the sequence of processing jobs including transcoding the media content;
selecting, based on attributes of the media content, the workflow for processing the media content;
providing processing parameters for the workflow to process the media content, the processing parameters associated with the attributes of the media content or custom processing tasks to be included into the sequence of processing jobs;
uploading the media content for processing; and
executing the at least one of the plurality of workflows to process the media content.

### Claim 7 (depends on 6)

The non-transitory computer readable storage medium of claim 6, further comprising instructions executed by the one or more processors to perform the operations of:
determining the custom processing tasks to be injected;
suspending the workflow to inject and execute the custom processing tasks; and
resuming the workflow upon receiving an indication that the custom processing task have been executed.

### Claim 8 (depends on 6)

The non-transitory computer readable storage medium of claim 6, wherein the custom processing tasks further include performing one or more of the following: attaching a watermark to an instance of the media content, the watermark used to uniquely identify the media content, applying digital rights management (DRM) security information to the instance of media content, inserting at least one advertisement into the instance of media content, inspecting the instance of media content for one or more errors, or scanning the instance of media content for potential viruses.

### Claim 9 (depends on 6)

The non-transitory computer readable storage medium of claim 6, further comprising instructions executed by the one or more processors to perform the operations of:
exposing an application programming interface (API), the API used to specify the custom processing tasks and an entry point in the workflow.

### Claim 10 (depends on 6)

The non-transitory computer readable storage medium of claim 6, further comprising instructions executed by the one or more processors to perform the operations of:
storing the processed media content, wherein the processed media content is stored locally on a non-transitory storage medium.

### Claim 11 (depends on 6)

The non-transitory computer readable storage medium of claim 6, further comprising instructions executed by the one or more processors to perform the operations of:
caching the media content at a network edge; and
processing the media content or at least a portion of the media content on a per-request basis based at least in part on the attributes of the media content or the processing parameters.

### Claim 12 (depends on 6)

The non-transitory computer readable storage medium of claim 6, wherein the instructions executed by the one or more processors to perform the operations of processing the media content includes:
determining computing devices for viewing the media content; and
at least transcoding the media content into formats viewable on the computing devices.

### Claim 13 (depends on 6)

The non-transitory computer readable storage medium of claim 6, further comprising instructions executed by the one or more processors to perform the operations of:
determining usage of compute instances to execute the workflow to process the media content;
calculating an appraisal for processing the media content based at least in part on the usage; and
notifying a user of the appraisal for processing the media content.

### Claim 14

A computing system, comprising:
at least one processor; and
memory including instructions that, when executed by the processor, cause the computing system to:
enable access to a plurality of workflows for processing media content, a workflow of the plurality of the workflows including a sequence of processing jobs to be performed on the media content, the sequence of processing jobs including transcoding the media content;
select, based on attributes of the media content, the workflow for processing the media content;
provide processing parameters for the workflow to process the media content, the processing parameters associated with the attributes of the media content or custom processing tasks to be included into the sequence of processing jobs;
upload the media content for processing; and
execute the at least one of the plurality of workflows to process the media content.

### Claim 15 (depends on 14)

The computing system of claim 14, wherein the memory includes instructions that, when executed by the processor, further cause the computing system to:
determine the custom processing tasks to be injected;
suspend the sequence of processing jobs to inject and execute the custom processing tasks; and
resume the sequence of processing jobs upon receiving an indication that the custom processing tasks have been executed.

### Claim 16 (depends on 14)

The computing system of claim 14, wherein the custom processing tasks further include performing one or more of the following: attaching a watermark to an instance of the media content, the watermark used to uniquely identify the media content, applying digital rights management (DRM) security information to the instance of media content, inserting at least one advertisement into the instance of media content, inspecting the instance of media content for one or more errors, or scanning the instance of media content for potential viruses.

### Claim 17 (depends on 14)

The computing system of claim 14, wherein the memory includes instructions that, when executed by the processor, further cause the computing system to:
expose an application programming interface (API), the API used to specify the custom processing tasks and an entry point in the sequence of processing jobs.

### Claim 18 (depends on 14)

The computing system of claim 14, wherein the memory includes instructions that, when executed by the processor, further cause the computing system to:
store the processed media content, wherein the processed media content is stored locally on a non-transitory storage medium.

### Claim 19 (depends on 14)

The computing system of claim 14, wherein the memory includes instructions that, when executed by the processor, further cause the computing system to:
cache the media content at a network edge; and
process the media content or at least a portion of the media content on a per-request basis based at least in part on the attributes of the media content or the processing parameters.

### Claim 20 (depends on 14)

The computing system of claim 14, wherein the memory includes instructions that, when executed by the processor, further cause the computing system to:
monitor usage of compute instances to processing the media content;
calculate an appraisal for processing the media content based at least in part on the usage; and
transmit a notification of the appraisal for processing the media content.
