Amazon Elastic Transcoder · Arazzo Workflow

Amazon Elastic Transcoder Create Pipeline, Submit Job, and Poll to Completion

Version 1.0.0

Stand up a transcoding pipeline, submit a job to it, then poll the job until it reaches a terminal status.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Amazon Web ServicesMediaTranscodingVideoArazzoWorkflows

Provider

amazon-elastic-transcoder

Workflows

create-pipeline-submit-job-poll
Create a pipeline, submit a transcoding job, and poll it until it finishes.
Creates a transcoding pipeline from the supplied buckets and role, submits a single job referencing the input and output keys, and polls ReadJob until the job status is no longer Submitted or Progressing.
3 steps inputs: inputBucket, inputKey, outputBucket, outputKey, pipelineName, presetId, role outputs: finalJobStatus, jobId, pipelineId
1
createPipeline
Create the pipeline that ties the input bucket, output bucket, and IAM role together for subsequent jobs.
2
submitJob
Submit a transcoding job into the new pipeline using the supplied input and output keys and preset.
3
pollJob
Read the job and branch on its status, looping back while it is still Submitted or Progressing and ending once it reaches a terminal status.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Elastic Transcoder Create Pipeline, Submit Job, and Poll to Completion
  summary: Stand up a transcoding pipeline, submit a job to it, then poll the job until it reaches a terminal status.
  description: >-
    The end-to-end media transcoding flow. The workflow creates a pipeline that
    wires an input bucket, output bucket, and IAM role together, submits a
    transcoding job into that pipeline, and then repeatedly reads the job until
    Elastic Transcoder reports a terminal status of Complete, Canceled, or
    Error. Every step spells out its request inline so the flow can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-3710.40
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-3710.40
      capability_name: Transcoding & Format Conversion
      spec: amazon-elastic-transcoder-pipelines-api-openapi.yml
      confidence: 0.8
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: jobsApi
  url: ../openapi/amazon-elastic-transcoder-jobs-api-openapi.yml
  type: openapi
- name: pipelinesApi
  url: ../openapi/amazon-elastic-transcoder-pipelines-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-pipeline-submit-job-poll
  summary: Create a pipeline, submit a transcoding job, and poll it until it finishes.
  description: >-
    Creates a transcoding pipeline from the supplied buckets and role, submits a
    single job referencing the input and output keys, and polls ReadJob until
    the job status is no longer Submitted or Progressing.
  inputs:
    type: object
    required:
    - pipelineName
    - inputBucket
    - outputBucket
    - role
    - inputKey
    - outputKey
    - presetId
    properties:
      pipelineName:
        type: string
        description: The name to assign to the new pipeline (maximum 40 characters).
      inputBucket:
        type: string
        description: The Amazon S3 bucket holding the media files to transcode.
      outputBucket:
        type: string
        description: The Amazon S3 bucket where transcoded files are written.
      role:
        type: string
        description: The IAM role ARN Elastic Transcoder uses to transcode jobs.
      inputKey:
        type: string
        description: The S3 key of the input file to transcode.
      outputKey:
        type: string
        description: The S3 key to assign to the transcoded output file.
      presetId:
        type: string
        description: The Id of the preset that defines the output settings.
  steps:
  - stepId: createPipeline
    description: >-
      Create the pipeline that ties the input bucket, output bucket, and IAM
      role together for subsequent jobs.
    operationId: CreatePipeline
    requestBody:
      contentType: application/json
      payload:
        Name: $inputs.pipelineName
        InputBucket: $inputs.inputBucket
        OutputBucket: $inputs.outputBucket
        Role: $inputs.role
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      pipelineId: $response.body#/Pipeline/Id
      pipelineStatus: $response.body#/Pipeline/Status
  - stepId: submitJob
    description: >-
      Submit a transcoding job into the new pipeline using the supplied input
      and output keys and preset.
    operationId: CreateJob
    requestBody:
      contentType: application/json
      payload:
        PipelineId: $steps.createPipeline.outputs.pipelineId
        Input:
          Key: $inputs.inputKey
        Output:
          Key: $inputs.outputKey
          PresetId: $inputs.presetId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      jobId: $response.body#/Job/Id
      jobStatus: $response.body#/Job/Status
  - stepId: pollJob
    description: >-
      Read the job and branch on its status, looping back while it is still
      Submitted or Progressing and ending once it reaches a terminal status.
    operationId: ReadJob
    parameters:
    - name: Id
      in: path
      value: $steps.submitJob.outputs.jobId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jobStatus: $response.body#/Job/Status
    onSuccess:
    - name: stillRunning
      type: goto
      stepId: pollJob
      criteria:
      - context: $response.body
        condition: $.Job.Status == 'Submitted' || $.Job.Status == 'Progressing'
        type: jsonpath
    - name: finished
      type: end
      criteria:
      - context: $response.body
        condition: $.Job.Status == 'Complete' || $.Job.Status == 'Canceled' || $.Job.Status == 'Error'
        type: jsonpath
  outputs:
    pipelineId: $steps.createPipeline.outputs.pipelineId
    jobId: $steps.submitJob.outputs.jobId
    finalJobStatus: $steps.pollJob.outputs.jobStatus

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/amazon-elastic-transcoder-pipeline-job-poll-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.