-
Notifications
You must be signed in to change notification settings - Fork 1
/
transcribe.py
30 lines (24 loc) · 1.03 KB
/
transcribe.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import boto3
import os
import uuid
def handler(event, context):
bucket = os.environ.get('BUCKET_NAME')
ssm = boto3.client('ssm')
mediaconvert_video_filename_response = ssm.get_parameter(Name='input_video_file')
mediaconvert_video_filename = mediaconvert_video_filename_response['Parameter']['Value']
media_format = mediaconvert_video_filename.rsplit('/', 1)[-1]
media_format = media_format.rsplit('.', 1)[-1]
transcribe = boto3.client('transcribe')
uid = str(uuid.uuid4())
jobName = f"transcribe_{uid}"
outputKey = f"{uid}/transcribeOutput/"
# Start the transcription job with uploaded video as input
response = transcribe.start_transcription_job(
TranscriptionJobName = jobName,
MediaFormat=media_format,
Media = {"MediaFileUri": "s3://"+bucket+"/"+mediaconvert_video_filename},
OutputBucketName=bucket,
OutputKey=outputKey,
IdentifyLanguage=True
)
return {'transcribe_job_name':response['TranscriptionJob']['TranscriptionJobName'],'uid':uid}