@mux/ai 0.28.0 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6407,9 +6407,16 @@ async function checkElevenLabsDubbingStatus({
6407
6407
  targetLanguages: statusData.target_languages ?? []
6408
6408
  };
6409
6409
  }
6410
- async function downloadDubbedAudioFromElevenLabs({
6410
+ async function downloadAndUploadDubbedAudio({
6411
6411
  dubbingId,
6412
6412
  languageCode,
6413
+ assetId,
6414
+ toLanguageCode,
6415
+ s3Endpoint,
6416
+ s3Region,
6417
+ s3Bucket,
6418
+ storageAdapter,
6419
+ s3SignedUrlExpirySeconds,
6413
6420
  credentials
6414
6421
  }) {
6415
6422
  "use step";
@@ -6423,19 +6430,7 @@ async function downloadDubbedAudioFromElevenLabs({
6423
6430
  if (!audioResponse.ok) {
6424
6431
  throw new Error(`Failed to fetch dubbed audio: ${audioResponse.statusText}`);
6425
6432
  }
6426
- return audioResponse.arrayBuffer();
6427
- }
6428
- async function uploadDubbedAudioToS3({
6429
- dubbedAudioBuffer,
6430
- assetId,
6431
- toLanguageCode,
6432
- s3Endpoint,
6433
- s3Region,
6434
- s3Bucket,
6435
- storageAdapter,
6436
- s3SignedUrlExpirySeconds
6437
- }) {
6438
- "use step";
6433
+ const dubbedAudio = new Uint8Array(await audioResponse.arrayBuffer());
6439
6434
  const s3AccessKeyId = env_default.S3_ACCESS_KEY_ID;
6440
6435
  const s3SecretAccessKey = env_default.S3_SECRET_ACCESS_KEY;
6441
6436
  const audioKey = `audio-translations/${assetId}/auto-to-${toLanguageCode}-${Date.now()}.m4a`;
@@ -6446,7 +6441,7 @@ async function uploadDubbedAudioToS3({
6446
6441
  region: s3Region,
6447
6442
  bucket: s3Bucket,
6448
6443
  key: audioKey,
6449
- body: new Uint8Array(dubbedAudioBuffer),
6444
+ body: dubbedAudio,
6450
6445
  contentType: "audio/mp4"
6451
6446
  }, storageAdapter);
6452
6447
  const presignedUrl = await createPresignedGetUrlWithStorageAdapter({
@@ -6580,46 +6575,24 @@ async function translateAudio(assetId, toLanguageCode, options = {}) {
6580
6575
  let presignedUrl;
6581
6576
  let uploadedTrackId;
6582
6577
  if (uploadToS3) {
6583
- console.warn("\u{1F4E5} Downloading dubbed audio from ElevenLabs...");
6584
- let dubbedAudioBuffer;
6578
+ console.warn("\u{1F4E5} Downloading dubbed audio from ElevenLabs and staging to S3...");
6585
6579
  try {
6586
- const requestedLangCode = toISO639_3(toLanguageCode);
6587
- let downloadLangCode = targetLanguages.find(
6588
- (lang) => lang === requestedLangCode
6589
- ) ?? targetLanguages.find(
6590
- (lang) => lang.toLowerCase() === requestedLangCode.toLowerCase()
6591
- );
6592
- if (!downloadLangCode && targetLanguages.length > 0) {
6593
- downloadLangCode = targetLanguages[0];
6594
- console.warn(`\u26A0\uFE0F Requested language "${requestedLangCode}" not found in target_languages. Using "${downloadLangCode}" instead.`);
6595
- }
6596
- if (!downloadLangCode) {
6597
- downloadLangCode = requestedLangCode;
6598
- console.warn(`\u26A0\uFE0F No target_languages available from ElevenLabs status. Using requested language code: ${requestedLangCode}`);
6599
- }
6600
- dubbedAudioBuffer = await downloadDubbedAudioFromElevenLabs({
6580
+ const downloadLangCode = targetLanguages[0] ?? toISO639_1(toLanguageCode);
6581
+ presignedUrl = await downloadAndUploadDubbedAudio({
6601
6582
  dubbingId,
6602
6583
  languageCode: downloadLangCode,
6603
- credentials
6604
- });
6605
- console.warn("\u2705 Dubbed audio downloaded successfully!");
6606
- } catch (error) {
6607
- wrapError(error, "Failed to download dubbed audio");
6608
- }
6609
- console.warn("\u{1F4E4} Uploading dubbed audio to S3-compatible storage...");
6610
- try {
6611
- presignedUrl = await uploadDubbedAudioToS3({
6612
- dubbedAudioBuffer,
6613
6584
  assetId,
6614
6585
  toLanguageCode,
6615
6586
  s3Endpoint,
6616
6587
  s3Region,
6617
6588
  s3Bucket,
6618
6589
  storageAdapter: effectiveStorageAdapter,
6619
- s3SignedUrlExpirySeconds: options.s3SignedUrlExpirySeconds
6590
+ s3SignedUrlExpirySeconds: options.s3SignedUrlExpirySeconds,
6591
+ credentials
6620
6592
  });
6593
+ console.warn("\u2705 Dubbed audio staged to S3 successfully!");
6621
6594
  } catch (error) {
6622
- wrapError(error, "Failed to upload audio to S3");
6595
+ wrapError(error, "Failed to download and upload dubbed audio");
6623
6596
  }
6624
6597
  if (uploadToMux) {
6625
6598
  console.warn("\u{1F4F9} Adding dubbed audio track to Mux asset...");