@mux/ai 0.16.0 → 0.17.0

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.
@@ -1,3 +1,3 @@
1
- export { D as DEFAULT_STORYBOARD_WIDTH, H as HeatmapOptions, a as HeatmapResponse, T as ThumbnailOptions, b as TranscriptFetchOptions, c as TranscriptResult, V as VTTCue, d as VTTCueBudgetChunkingOptions, e as VTTDurationChunk, f as VTTDurationChunkingOptions, g as buildTranscriptUrl, h as buildVttFromCueBlocks, j as buildVttFromTranslatedCueBlocks, k as chunkByTokens, l as chunkText, m as chunkVTTCues, n as chunkVTTCuesByBudget, o as chunkVTTCuesByDuration, p as concatenateVttSegments, q as estimateTokenCount, r as extractTextFromVTT, s as extractTimestampedTranscript, t as fetchTranscriptForAsset, u as findCaptionTrack, v as getHeatmapForAsset, w as getHeatmapForPlaybackId, x as getHeatmapForVideo, y as getReadyTextTracks, z as getStoryboardUrl, A as getThumbnailUrls, B as parseVTTCues, C as replaceCueText, E as secondsToTimestamp, F as splitVttPreambleAndCueBlocks, G as vttTimestampToSeconds } from '../index-CuBu_u5-.js';
1
+ export { D as DEFAULT_STORYBOARD_WIDTH, H as HeatmapOptions, a as HeatmapResponse, L as LOW_CONFIDENCE_THRESHOLD, T as ThumbnailOptions, b as TranscriptFetchOptions, c as TranscriptResult, V as VTTCue, d as VTTCueBudgetChunkingOptions, e as VTTDurationChunk, f as VTTDurationChunkingOptions, g as buildTranscriptUrl, h as buildVttFromCueBlocks, j as buildVttFromTranslatedCueBlocks, k as chunkByTokens, l as chunkText, m as chunkVTTCues, n as chunkVTTCuesByBudget, o as chunkVTTCuesByDuration, p as concatenateVttSegments, q as estimateTokenCount, r as extractTextFromVTT, s as extractTimestampedTranscript, t as fetchTranscriptForAsset, u as findCaptionTrack, v as getHeatmapForAsset, w as getHeatmapForPlaybackId, x as getHeatmapForVideo, y as getReadyTextTracks, z as getReliableLanguageCode, A as getStoryboardUrl, B as getThumbnailUrls, C as parseVTTCues, E as replaceCueText, F as secondsToTimestamp, G as splitVttPreambleAndCueBlocks, I as vttTimestampToSeconds } from '../index-3G00N5QH.js';
2
2
  export { o as CompletedShotsResult, p as ErroredShotsResult, H as Hotspot, q as HotspotOptions, r as HotspotResponse, s as PendingShotsResult, t as Shot, u as ShotRequestOptions, v as ShotsResult, w as WaitForShotsOptions, x as getHotspotsForAsset, y as getHotspotsForPlaybackId, z as getHotspotsForVideo, B as getShotsForAsset, D as requestShotsForAsset, F as waitForShotsForAsset } from '../shots-BFYOfBgN.js';
3
3
  import '@mux/mux-node';
@@ -1108,6 +1108,127 @@ async function getThumbnailUrls(playbackId, duration, options = {}) {
1108
1108
  return Promise.all(urlPromises);
1109
1109
  }
1110
1110
 
1111
+ // src/lib/language-codes.ts
1112
+ var ISO639_1_TO_3 = {
1113
+ // Major world languages
1114
+ en: "eng",
1115
+ // English
1116
+ es: "spa",
1117
+ // Spanish
1118
+ fr: "fra",
1119
+ // French
1120
+ de: "deu",
1121
+ // German
1122
+ it: "ita",
1123
+ // Italian
1124
+ pt: "por",
1125
+ // Portuguese
1126
+ ru: "rus",
1127
+ // Russian
1128
+ zh: "zho",
1129
+ // Chinese
1130
+ ja: "jpn",
1131
+ // Japanese
1132
+ ko: "kor",
1133
+ // Korean
1134
+ ar: "ara",
1135
+ // Arabic
1136
+ hi: "hin",
1137
+ // Hindi
1138
+ // European languages
1139
+ nl: "nld",
1140
+ // Dutch
1141
+ pl: "pol",
1142
+ // Polish
1143
+ sv: "swe",
1144
+ // Swedish
1145
+ da: "dan",
1146
+ // Danish
1147
+ no: "nor",
1148
+ // Norwegian
1149
+ fi: "fin",
1150
+ // Finnish
1151
+ el: "ell",
1152
+ // Greek
1153
+ cs: "ces",
1154
+ // Czech
1155
+ hu: "hun",
1156
+ // Hungarian
1157
+ ro: "ron",
1158
+ // Romanian
1159
+ bg: "bul",
1160
+ // Bulgarian
1161
+ hr: "hrv",
1162
+ // Croatian
1163
+ sk: "slk",
1164
+ // Slovak
1165
+ sl: "slv",
1166
+ // Slovenian
1167
+ uk: "ukr",
1168
+ // Ukrainian
1169
+ tr: "tur",
1170
+ // Turkish
1171
+ // Asian languages
1172
+ th: "tha",
1173
+ // Thai
1174
+ vi: "vie",
1175
+ // Vietnamese
1176
+ id: "ind",
1177
+ // Indonesian
1178
+ ms: "msa",
1179
+ // Malay
1180
+ tl: "tgl",
1181
+ // Tagalog/Filipino
1182
+ // Other languages
1183
+ he: "heb",
1184
+ // Hebrew
1185
+ fa: "fas",
1186
+ // Persian/Farsi
1187
+ bn: "ben",
1188
+ // Bengali
1189
+ ta: "tam",
1190
+ // Tamil
1191
+ te: "tel",
1192
+ // Telugu
1193
+ mr: "mar",
1194
+ // Marathi
1195
+ gu: "guj",
1196
+ // Gujarati
1197
+ kn: "kan",
1198
+ // Kannada
1199
+ ml: "mal",
1200
+ // Malayalam
1201
+ pa: "pan",
1202
+ // Punjabi
1203
+ ur: "urd",
1204
+ // Urdu
1205
+ sw: "swa",
1206
+ // Swahili
1207
+ af: "afr",
1208
+ // Afrikaans
1209
+ ca: "cat",
1210
+ // Catalan
1211
+ eu: "eus",
1212
+ // Basque
1213
+ gl: "glg",
1214
+ // Galician
1215
+ is: "isl",
1216
+ // Icelandic
1217
+ et: "est",
1218
+ // Estonian
1219
+ lv: "lav",
1220
+ // Latvian
1221
+ lt: "lit"
1222
+ // Lithuanian
1223
+ };
1224
+ var ISO639_3_TO_1 = Object.fromEntries(
1225
+ Object.entries(ISO639_1_TO_3).map(([iso1, iso3]) => [iso3, iso1])
1226
+ );
1227
+ var UNDETERMINED_LANGUAGE_CODES = /* @__PURE__ */ new Set(["und", "mul", "mis", "zxx"]);
1228
+ function isUndeterminedLanguageCode(code) {
1229
+ return UNDETERMINED_LANGUAGE_CODES.has(code.toLowerCase().trim());
1230
+ }
1231
+
1111
1232
  // src/lib/mux-assets.ts
1112
1233
  function isAudioOnlyAsset(asset) {
1113
1234
  const hasAudioTrack = asset.tracks?.some((track) => track.type === "audio") ?? false;
@@ -1141,6 +1262,17 @@ function findCaptionTrack(asset, languageCode) {
1141
1262
  }
1142
1263
  return void 0;
1143
1264
  }
1265
+ var LOW_CONFIDENCE_THRESHOLD = 0.5;
1266
+ function getReliableLanguageCode(track, confidenceThreshold = LOW_CONFIDENCE_THRESHOLD) {
1267
+ if (!track?.language_code)
1268
+ return void 0;
1269
+ if (isUndeterminedLanguageCode(track.language_code))
1270
+ return void 0;
1271
+ if (track.auto_language_confidence !== void 0 && track.auto_language_confidence < confidenceThreshold) {
1272
+ return void 0;
1273
+ }
1274
+ return track.language_code;
1275
+ }
1144
1276
  function normalizeLineEndings(value) {
1145
1277
  return value.replace(/\r\n/g, "\n");
1146
1278
  }
@@ -1465,6 +1597,7 @@ async function fetchTranscriptForAsset(asset, playbackId, options = {}) {
1465
1597
  }
1466
1598
  export {
1467
1599
  DEFAULT_STORYBOARD_WIDTH,
1600
+ LOW_CONFIDENCE_THRESHOLD,
1468
1601
  buildTranscriptUrl,
1469
1602
  buildVttFromCueBlocks,
1470
1603
  buildVttFromTranslatedCueBlocks,
@@ -1486,6 +1619,7 @@ export {
1486
1619
  getHotspotsForPlaybackId,
1487
1620
  getHotspotsForVideo,
1488
1621
  getReadyTextTracks,
1622
+ getReliableLanguageCode,
1489
1623
  getShotsForAsset,
1490
1624
  getStoryboardUrl,
1491
1625
  getThumbnailUrls,