in sam-app/lambda_functions/sfSubmitTranscribeJob.py [0:0]
def lambda_handler(event, context):
try:
job_name = event["jobName"]
media_format = event["mediaFormat"]
file_uri = event["fileUri"]
language_code = event["languageCode"]
transcriptDestination = event["transcriptDestination"]
outputEncryptionKMSKeyId = event["outputEncryptionKMSKeyId"]
settings = event["settings"]
logger.info('OutputBucketName: ' + transcriptDestination + ' > jobName: ' + job_name)
response = client.start_transcription_job(
TranscriptionJobName=job_name,
LanguageCode=language_code,
MediaFormat=media_format,
Media={
'MediaFileUri': file_uri
},
OutputBucketName = transcriptDestination,
#OutputEncryptionKMSKeyId = outputEncryptionKMSKeyId,
Settings = settings
)
# BELOW IS THE CODE TO FIX SERIALIZATION ON DATETIME OBJECTS
if "CreationTime" in response["TranscriptionJob"]:
val = response["TranscriptionJob"]["CreationTime"]
response["TranscriptionJob"]["CreationTime"] = val.strftime("%Y-%m-%dT%H:%M:%S.%f%z") if isinstance(val, datetime.datetime) else str(val)
if "StartTime" in response["TranscriptionJob"]:
val = response["TranscriptionJob"]["StartTime"]
response["TranscriptionJob"]["StartTime"] = val.strftime("%Y-%m-%dT%H:%M:%S.%f%z") if isinstance(val, datetime.datetime) else str(val)
if "CompletionTime" in response["TranscriptionJob"]:
val = response["TranscriptionJob"]["CompletionTime"]
response["TranscriptionJob"]["CompletionTime"] = val.strftime("%Y-%m-%dT%H:%M:%S.%f%z") if isinstance(val, datetime.datetime) else str(val)
return response["TranscriptionJob"]
except Exception as e:
raise(e)