Examples

Complete Workflow

FTR → M4A → Transcription

#!/bin/bash
API_KEY="sk_case_your_api_key_here"

# 1. Upload FTR to S3 and get presigned URL
aws s3 cp hearing.ftr s3://your-bucket/hearing.ftr
FTR_URL=$(aws s3 presign s3://your-bucket/hearing.ftr --expires-in 3600)

# 2. Start conversion
JOB=$(curl -s -X POST https://api.case.dev/convert/v1/process \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"input_url\":\"$FTR_URL\"}")

JOB_ID=$(echo $JOB | jq -r '.job_id')
echo "Converting: $JOB_ID"

# 3. Wait for completion
while true; do
  STATUS=$(curl -s https://api.case.dev/convert/v1/jobs/$JOB_ID \
    -H "Authorization: Bearer $API_KEY" | jq -r '.status')

  if [ "$STATUS" = "completed" ]; then
    echo "✓ Conversion complete!"
    break
  fi

  echo "Status: $STATUS"
  sleep 10
done

# 4. Download M4A
curl https://api.case.dev/convert/v1/download/$JOB_ID \
  -H "Authorization: Bearer $API_KEY" \
  -o hearing.m4a

echo "✓ Downloaded: hearing.m4a"

# 5. Upload M4A to S3 for transcription
aws s3 cp hearing.m4a s3://your-bucket/hearing.m4a
M4A_URL=$(aws s3 presign s3://your-bucket/hearing.m4a --expires-in 7200)

# 6. Transcribe with Voice API
TRANSCRIPT=$(curl -s -X POST https://api.case.dev/voice/transcription \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"audio_url\":\"$M4A_URL\",
    \"speaker_labels\":true,
    \"punctuate\":true,
    \"word_boost\":[\"your honor\",\"counsel\",\"witness\",\"objection\"]
  }")

TRANSCRIPT_ID=$(echo $TRANSCRIPT | jq -r '.id')
echo "✓ Transcription started: $TRANSCRIPT_ID"

Integration Examples

Store in Vault

# After converting FTR to M4A...

# Get vault upload URL
UPLOAD=$(curl -s -X POST https://api.case.dev/vault/your-vault-id/upload \
  -H "Authorization: Bearer sk_case_..." \
  -H "Content-Type: application/json" \
  -d '{
    "filename":"hearing-audio.m4a",
    "contentType":"audio/mp4",
    "metadata":{
      "source":"ftr_conversion",
      "hearing_date":"2024-11-04",
      "case_id":"2024-1234"
    }
  }')

UPLOAD_URL=$(echo $UPLOAD | jq -r '.uploadUrl')

# Upload M4A to vault
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: audio/mp4" \
  --data-binary "@hearing.m4a"

echo "Audio stored in vault!"

Batch Convert Multiple FTR Files

#!/bin/bash
API_KEY="sk_case_your_api_key_here"

for FTR_FILE in ftr-files/*.ftr; do
  echo "Processing: $FTR_FILE"

  # Upload to S3
  aws s3 cp "$FTR_FILE" "s3://your-bucket/$(basename $FTR_FILE)"

  # Get presigned URL
  PRESIGNED=$(aws s3 presign "s3://your-bucket/$(basename $FTR_FILE)" --expires-in 3600)

  # Start conversion
  JOB=$(curl -s -X POST https://api.case.dev/convert/v1/process \
    -H "Authorization: Bearer $API_KEY" \
    -H "Content-Type: application/json" \
    -d "{\"input_url\":\"$PRESIGNED\"}")

  JOB_ID=$(echo $JOB | jq -r '.job_id')
  echo "  Job ID: $JOB_ID"

  # Store job ID for later polling
  echo "$JOB_ID|$FTR_FILE" >> conversion-jobs.txt
done

echo "Started $(wc -l < conversion-jobs.txt) conversion jobs"