import json import boto3 import os import urllib import requests BUCKET_NAME = os.environ['BUCKET_NAME'] s3 = boto3.resource('s3') transcribe = boto3.client('transcribe') def lambda_handler(event, context): job_name = event['detail']['TranscriptionJobName'] job = transcribe.get_transcription_job(TranscriptionJobName=job_name) uri = job['TranscriptionJob']['Transcript']['TranscriptFileUri'] print(uri) job_name = job_name.split('input-')[1] content = urllib.request.urlopen(uri).read().decode('utf-8') #write content to cloudwatch logs print(json.dumps(content)) data = json.loads(content) transcribed_text = data['results']['transcripts'][0]['transcript'] print(job_name) file_name = "output/" + job_name.replace('-', '/', 1).rsplit('.wav',1)[0] + ".txt" object = s3.Object(BUCKET_NAME, file_name) object.put(Body=transcribed_text)