async function generateCaptions()

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();
}