in source/lambda/batchcomplete/batchcomplete.js [108:153]
async function generateCaptions(
videoId,
language,
translated,
destBucket,
destKeyPrefix,
videoName
) {
const transcribeBucket = process.env.TRANSCRIBE_BUCKET;
var captionsKey = "";
var srtCaptionsKey = destKeyPrefix + "/" + videoName + ".srt";
var vttCaptionsKey = destKeyPrefix + "/" + videoName + ".vtt";
if (translated == "true") {
captionsKey = "captions/" + videoId + "_" + language + ".json";
} else {
captionsKey = "captions/" + videoId + ".json";
}
var captionS3Params = {
Bucket: transcribeBucket,
Key: captionsKey,
};
var captionsObject = await s3.getObject(captionS3Params).promise();
captionsStr = captionsObject.Body.toString();
var captions = JSON.parse(captionsStr);
var srtCaptions = await exportCaptions("srt", captions, language);
var vttCaptions = await exportCaptions("webvtt", captions, language);
await s3
.putObject({
Bucket: destBucket,
Key: srtCaptionsKey,
ContentType: "binary/octet-stream",
Body: srtCaptions,
})
.promise();
await s3
.putObject({
Bucket: destBucket,
Key: vttCaptionsKey,
ContentType: "binary/octet-stream",
Body: vttCaptions,
})
.promise();
}