# ExAws.Transcribe

[AWS Transcribe]( service module for [ex_aws](

## Installation

The package can be installed by adding `ex_aws_transcribe` to your list of dependencies
in `mix.exs` along with a specific fork of `ex_aws` and your preferred JSON codec / http client:

def deps do
    {:ex_aws, git: "", branch: "transcribe", override: true},
    {:ex_aws_transcribe, "~> 0.2.1"},
    {:poison, "~> 3.0"},
    {:hackney, "~> 1.9"},

Notice this uses a specific fork of `ex_aws` which adds the AWS Transcribe endpoints. If this works for
you please vote / comment on [PR #611]( so this can use
a published version of ex_aws.

## Alternative Installation

If you'd prefer to use a published version of ex_aws you'll need to use `ExAws.perform/2`
with a config patched together from S3 (S3 and Transcribe have simlar ExAws.Configs).

def deps do
    {:ex_aws, "~> 2.1.0", override: true},

config =, host: "", region: "us-east-1")

Transcribe.list_transaction_jobs() |> ExAws.Operation.perform(config)

## Basic Usage

alias ExAws.Transcribe

# Submit a transcription job
Transcribe.start_transcription_job("MyJob", "s3://bucket/file.mp3", "mp3", "en-US") |> ExAws.request!

# List jobs
Transcribe.list_transaction_jobs() |> ExAws.request!

# Get a job and retrieve the transcript if complete
job = Transcribe.get_transaction_job("MyJob") |> ExAws.request!
transcript_url = get_in(job, ["TranscriptionJob", "Transcript", "TranscriptFileUri"])
{:ok, {_, _, body}} = :httpc.request(:get, {transcript_url, []}, [], [])

Full documentation can be found at <>

## AWS Transcribe API Reference


All options are handled as snake_case_atoms instead of CamelCase binaries as specified
in the Transcribe API. For example, `:media_format` would be `MediaFormat`.