@mux/ai 0.1.1 → 0.1.2
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.
- package/dist/index.cjs +1773 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +164 -0
- package/dist/index.d.ts +164 -9
- package/dist/index.js +1757 -8
- package/dist/index.js.map +1 -1
- package/package.json +8 -6
- package/dist/audio-translation.d.ts +0 -21
- package/dist/audio-translation.d.ts.map +0 -1
- package/dist/audio-translation.js +0 -229
- package/dist/audio-translation.js.map +0 -1
- package/dist/burned-in-captions.d.ts +0 -19
- package/dist/burned-in-captions.d.ts.map +0 -1
- package/dist/burned-in-captions.js +0 -243
- package/dist/burned-in-captions.js.map +0 -1
- package/dist/chapters.d.ts +0 -18
- package/dist/chapters.d.ts.map +0 -1
- package/dist/chapters.js +0 -255
- package/dist/chapters.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/moderation.d.ts +0 -39
- package/dist/moderation.d.ts.map +0 -1
- package/dist/moderation.js +0 -341
- package/dist/moderation.js.map +0 -1
- package/dist/summarization.d.ts +0 -26
- package/dist/summarization.d.ts.map +0 -1
- package/dist/summarization.js +0 -337
- package/dist/summarization.js.map +0 -1
- package/dist/translation.d.ts +0 -22
- package/dist/translation.d.ts.map +0 -1
- package/dist/translation.js +0 -196
- package/dist/translation.js.map +0 -1
- package/dist/types.d.ts +0 -12
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/image-download.d.ts +0 -65
- package/dist/utils/image-download.d.ts.map +0 -1
- package/dist/utils/image-download.js +0 -150
- package/dist/utils/image-download.js.map +0 -1
- package/dist/utils/storyboard-processor.d.ts +0 -40
- package/dist/utils/storyboard-processor.d.ts.map +0 -1
- package/dist/utils/storyboard-processor.js +0 -202
- package/dist/utils/storyboard-processor.js.map +0 -1
- package/dist/utils/vtt-parser.d.ts +0 -8
- package/dist/utils/vtt-parser.d.ts.map +0 -1
- package/dist/utils/vtt-parser.js +0 -43
- package/dist/utils/vtt-parser.js.map +0 -1
package/dist/moderation.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"moderation.js","sourceRoot":"","sources":["../src/moderation.ts"],"names":[],"mappings":"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"}
|
package/dist/summarization.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { MuxAIOptions, ToneType } from './types';
|
|
2
|
-
import { ImageDownloadOptions } from './utils/image-download';
|
|
3
|
-
export interface SummaryAndTagsResult {
|
|
4
|
-
assetId: string;
|
|
5
|
-
title: string;
|
|
6
|
-
description: string;
|
|
7
|
-
tags: string[];
|
|
8
|
-
storyboardUrl?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface SummarizationOptions extends MuxAIOptions {
|
|
11
|
-
provider?: 'openai' | 'anthropic';
|
|
12
|
-
model?: string;
|
|
13
|
-
maxSummaryLength?: number;
|
|
14
|
-
maxTags?: number;
|
|
15
|
-
customPrompt?: string;
|
|
16
|
-
tone?: ToneType;
|
|
17
|
-
includeTranscript?: boolean;
|
|
18
|
-
/** Whether to clean VTT timestamps and formatting from transcript (default: true) */
|
|
19
|
-
cleanTranscript?: boolean;
|
|
20
|
-
/** Method for submitting storyboard to AI providers (default: 'url') */
|
|
21
|
-
imageSubmissionMode?: 'url' | 'base64';
|
|
22
|
-
/** Options for image download when using base64 submission mode */
|
|
23
|
-
imageDownloadOptions?: ImageDownloadOptions;
|
|
24
|
-
}
|
|
25
|
-
export declare function getSummaryAndTags(assetId: string, promptOrOptions?: string | SummarizationOptions, options?: SummarizationOptions): Promise<SummaryAndTagsResult>;
|
|
26
|
-
//# sourceMappingURL=summarization.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summarization.d.ts","sourceRoot":"","sources":["../src/summarization.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAsD,MAAM,wBAAwB,CAAC;AAGlH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qFAAqF;IACrF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACvC,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAmBD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,MAAM,GAAG,oBAAoB,EAC/C,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA+V/B"}
|
package/dist/summarization.js
DELETED
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
import Mux from '@mux/mux-node';
|
|
2
|
-
import OpenAI from 'openai';
|
|
3
|
-
import Anthropic from '@anthropic-ai/sdk';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
import { zodTextFormat } from 'openai/helpers/zod';
|
|
6
|
-
import { downloadImageAsBase64, uploadImageToAnthropicFiles } from './utils/image-download';
|
|
7
|
-
import { extractTextFromVTT } from './utils/vtt-parser';
|
|
8
|
-
const summarySchema = z.object({
|
|
9
|
-
keywords: z.array(z.string()).max(10),
|
|
10
|
-
title: z.string().max(100),
|
|
11
|
-
description: z.string().max(1000)
|
|
12
|
-
});
|
|
13
|
-
const DEFAULT_PROMPT = "Generate a short title (max 100 characters) and description (max 500 characters) for what happens. Start immediately with the action or subject - never reference that this is a video, content, or storyboard. Example: Title: 'Cooking Pasta Tutorial' Description: 'Someone cooks pasta by boiling water and adding noodles.'";
|
|
14
|
-
const ANTHROPIC_JSON_PROMPT = `You must respond with valid JSON in exactly this format:
|
|
15
|
-
{
|
|
16
|
-
"title": "Your title here (max 100 characters)",
|
|
17
|
-
"description": "Your description here (max 500 characters)",
|
|
18
|
-
"keywords": ["keyword1", "keyword2", "keyword3"]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
Do not include any text before or after the JSON. The JSON must be valid and parseable.`;
|
|
22
|
-
export async function getSummaryAndTags(assetId, promptOrOptions, options) {
|
|
23
|
-
// Handle overloaded parameters
|
|
24
|
-
let prompt;
|
|
25
|
-
let actualOptions;
|
|
26
|
-
if (typeof promptOrOptions === 'string') {
|
|
27
|
-
prompt = promptOrOptions;
|
|
28
|
-
actualOptions = options || {};
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
prompt = DEFAULT_PROMPT;
|
|
32
|
-
actualOptions = promptOrOptions || {};
|
|
33
|
-
}
|
|
34
|
-
const { provider = 'openai', model, tone = 'normal', includeTranscript = true, cleanTranscript = true, imageSubmissionMode = 'url', imageDownloadOptions, muxTokenId, muxTokenSecret, openaiApiKey, anthropicApiKey, ...config } = actualOptions;
|
|
35
|
-
// Set default models based on provider
|
|
36
|
-
const defaultModel = provider === 'anthropic' ? 'claude-3-5-haiku-20241022' : 'gpt-4o-mini';
|
|
37
|
-
const finalModel = model || defaultModel;
|
|
38
|
-
// Validate required credentials
|
|
39
|
-
const muxId = muxTokenId || process.env.MUX_TOKEN_ID;
|
|
40
|
-
const muxSecret = muxTokenSecret || process.env.MUX_TOKEN_SECRET;
|
|
41
|
-
const openaiKey = openaiApiKey || process.env.OPENAI_API_KEY;
|
|
42
|
-
const anthropicKey = anthropicApiKey || process.env.ANTHROPIC_API_KEY;
|
|
43
|
-
if (!muxId || !muxSecret) {
|
|
44
|
-
throw new Error('Mux credentials are required. Provide muxTokenId and muxTokenSecret in options or set MUX_TOKEN_ID and MUX_TOKEN_SECRET environment variables.');
|
|
45
|
-
}
|
|
46
|
-
if (provider === 'openai' && !openaiKey) {
|
|
47
|
-
throw new Error('OpenAI API key is required. Provide openaiApiKey in options or set OPENAI_API_KEY environment variable.');
|
|
48
|
-
}
|
|
49
|
-
if (provider === 'anthropic' && !anthropicKey) {
|
|
50
|
-
throw new Error('Anthropic API key is required. Provide anthropicApiKey in options or set ANTHROPIC_API_KEY environment variable.');
|
|
51
|
-
}
|
|
52
|
-
// Initialize clients
|
|
53
|
-
const mux = new Mux({
|
|
54
|
-
tokenId: muxId,
|
|
55
|
-
tokenSecret: muxSecret,
|
|
56
|
-
});
|
|
57
|
-
let openaiClient;
|
|
58
|
-
let anthropicClient;
|
|
59
|
-
if (provider === 'openai') {
|
|
60
|
-
openaiClient = new OpenAI({
|
|
61
|
-
apiKey: openaiKey,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
else if (provider === 'anthropic') {
|
|
65
|
-
anthropicClient = new Anthropic({
|
|
66
|
-
apiKey: anthropicKey,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
// Fetch asset data from Mux
|
|
70
|
-
let assetData;
|
|
71
|
-
try {
|
|
72
|
-
const asset = await mux.video.assets.retrieve(assetId);
|
|
73
|
-
assetData = asset;
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
throw new Error(`Failed to fetch asset from Mux: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
77
|
-
}
|
|
78
|
-
// Get playback ID for storyboard URL
|
|
79
|
-
const playbackId = assetData.playback_ids?.[0]?.id;
|
|
80
|
-
if (!playbackId) {
|
|
81
|
-
throw new Error('No playback ID found for this asset');
|
|
82
|
-
}
|
|
83
|
-
// Check for text tracks and fetch transcript if available
|
|
84
|
-
let transcriptText = '';
|
|
85
|
-
if (includeTranscript && assetData.tracks) {
|
|
86
|
-
const textTrack = assetData.tracks.find((track) => track.type === 'text' && track.status === 'ready');
|
|
87
|
-
if (textTrack) {
|
|
88
|
-
const transcriptUrl = `https://stream.mux.com/${playbackId}/text/${textTrack.id}.vtt`;
|
|
89
|
-
try {
|
|
90
|
-
const transcriptResponse = await fetch(transcriptUrl);
|
|
91
|
-
if (transcriptResponse.ok) {
|
|
92
|
-
const rawVttContent = await transcriptResponse.text();
|
|
93
|
-
// Use clean text or raw VTT based on user preference
|
|
94
|
-
transcriptText = cleanTranscript
|
|
95
|
-
? extractTextFromVTT(rawVttContent)
|
|
96
|
-
: rawVttContent;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
console.warn('Failed to fetch transcript:', error);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
// Create tone-informed prompt
|
|
105
|
-
let toneInstruction = '';
|
|
106
|
-
switch (tone) {
|
|
107
|
-
case 'sassy':
|
|
108
|
-
toneInstruction = ' Answer with a sassy, playful attitude and personality.';
|
|
109
|
-
break;
|
|
110
|
-
case 'professional':
|
|
111
|
-
toneInstruction = ' Provide a professional, executive-level analysis suitable for business reporting.';
|
|
112
|
-
break;
|
|
113
|
-
default: // normal
|
|
114
|
-
toneInstruction = ' Provide a clear, straightforward analysis.';
|
|
115
|
-
}
|
|
116
|
-
// Add transcript context to prompt if available
|
|
117
|
-
let contextualPrompt = prompt + toneInstruction;
|
|
118
|
-
if (transcriptText) {
|
|
119
|
-
const transcriptType = cleanTranscript ? 'transcript' : 'WebVTT transcript';
|
|
120
|
-
contextualPrompt += ` Use the following ${transcriptType} for additional context: "${transcriptText}"`;
|
|
121
|
-
}
|
|
122
|
-
// Analyze storyboard with AI provider
|
|
123
|
-
const imageUrl = `https://image.mux.com/${playbackId}/storyboard.png?width=640`;
|
|
124
|
-
let aiAnalysis = null;
|
|
125
|
-
let retryAttempt = 0;
|
|
126
|
-
const maxRetries = 3;
|
|
127
|
-
if (provider === 'openai') {
|
|
128
|
-
// Handle base64 vs URL submission modes
|
|
129
|
-
if (imageSubmissionMode === 'base64') {
|
|
130
|
-
try {
|
|
131
|
-
const downloadResult = await downloadImageAsBase64(imageUrl, imageDownloadOptions);
|
|
132
|
-
const response = await openaiClient.responses.parse({
|
|
133
|
-
model: finalModel,
|
|
134
|
-
input: [
|
|
135
|
-
{
|
|
136
|
-
role: "system",
|
|
137
|
-
content: "You are an image analysis tool. You will be given a storyboard image from a video showing multiple frames/scenes, and be expected to return structured data about the contents across all the frames.",
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
role: "user",
|
|
141
|
-
content: [
|
|
142
|
-
{
|
|
143
|
-
type: "input_text",
|
|
144
|
-
text: contextualPrompt,
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
type: "input_image",
|
|
148
|
-
image_url: downloadResult.base64Data, // Use base64 data URI
|
|
149
|
-
detail: "high",
|
|
150
|
-
},
|
|
151
|
-
],
|
|
152
|
-
},
|
|
153
|
-
],
|
|
154
|
-
text: {
|
|
155
|
-
format: zodTextFormat(summarySchema, "analysis"),
|
|
156
|
-
},
|
|
157
|
-
});
|
|
158
|
-
aiAnalysis = response.output_parsed;
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
throw new Error(`Failed to analyze video content with OpenAI in base64 mode: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
// Original URL-based submission with retry logic
|
|
166
|
-
while (retryAttempt <= maxRetries) {
|
|
167
|
-
try {
|
|
168
|
-
const response = await openaiClient.responses.parse({
|
|
169
|
-
model: finalModel,
|
|
170
|
-
input: [
|
|
171
|
-
{
|
|
172
|
-
role: "system",
|
|
173
|
-
content: "You are an image analysis tool. You will be given a storyboard image from a video showing multiple frames/scenes, and be expected to return structured data about the contents across all the frames.",
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
role: "user",
|
|
177
|
-
content: [
|
|
178
|
-
{
|
|
179
|
-
type: "input_text",
|
|
180
|
-
text: contextualPrompt,
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
type: "input_image",
|
|
184
|
-
image_url: imageUrl,
|
|
185
|
-
detail: "high",
|
|
186
|
-
},
|
|
187
|
-
],
|
|
188
|
-
},
|
|
189
|
-
],
|
|
190
|
-
text: {
|
|
191
|
-
format: zodTextFormat(summarySchema, "analysis"),
|
|
192
|
-
},
|
|
193
|
-
});
|
|
194
|
-
aiAnalysis = response.output_parsed;
|
|
195
|
-
break; // Success, exit retry loop
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
const isTimeoutError = error instanceof Error && error.message && error.message.includes('Timeout while downloading');
|
|
199
|
-
if (isTimeoutError && retryAttempt < maxRetries) {
|
|
200
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
201
|
-
retryAttempt++;
|
|
202
|
-
continue;
|
|
203
|
-
}
|
|
204
|
-
throw new Error(`Failed to analyze video content with OpenAI: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
else if (provider === 'anthropic') {
|
|
210
|
-
// Anthropic doesn't have structured outputs, so we use prompt engineering
|
|
211
|
-
const anthropicPrompt = `${contextualPrompt}
|
|
212
|
-
|
|
213
|
-
${ANTHROPIC_JSON_PROMPT}`;
|
|
214
|
-
// Handle base64 vs URL submission modes
|
|
215
|
-
if (imageSubmissionMode === 'base64') {
|
|
216
|
-
try {
|
|
217
|
-
// Upload to Files API instead of using base64 inline (no 5MB limit)
|
|
218
|
-
const fileUploadResult = await uploadImageToAnthropicFiles(imageUrl, anthropicKey, imageDownloadOptions);
|
|
219
|
-
const response = await anthropicClient.messages.create({
|
|
220
|
-
model: finalModel,
|
|
221
|
-
max_tokens: 1000,
|
|
222
|
-
messages: [
|
|
223
|
-
{
|
|
224
|
-
role: "user",
|
|
225
|
-
content: [
|
|
226
|
-
{
|
|
227
|
-
type: "image",
|
|
228
|
-
source: {
|
|
229
|
-
type: "file",
|
|
230
|
-
file_id: fileUploadResult.fileId,
|
|
231
|
-
}, // Type assertion for Files API support
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
type: "text",
|
|
235
|
-
text: anthropicPrompt,
|
|
236
|
-
},
|
|
237
|
-
],
|
|
238
|
-
},
|
|
239
|
-
],
|
|
240
|
-
}, {
|
|
241
|
-
headers: {
|
|
242
|
-
'anthropic-beta': 'files-api-2025-04-14'
|
|
243
|
-
}
|
|
244
|
-
});
|
|
245
|
-
const content = response.content[0];
|
|
246
|
-
if (content.type === 'text') {
|
|
247
|
-
const jsonText = content.text.trim();
|
|
248
|
-
try {
|
|
249
|
-
aiAnalysis = JSON.parse(jsonText);
|
|
250
|
-
}
|
|
251
|
-
catch (parseError) {
|
|
252
|
-
throw new Error(`Failed to parse JSON response from Anthropic: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
throw new Error('Unexpected response type from Anthropic');
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
catch (error) {
|
|
260
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
261
|
-
throw new Error(`Failed to analyze video content with Anthropic Files API: ${errorMessage}`);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
else {
|
|
265
|
-
// URL-based submission with retry logic
|
|
266
|
-
while (retryAttempt <= maxRetries) {
|
|
267
|
-
try {
|
|
268
|
-
const response = await anthropicClient.messages.create({
|
|
269
|
-
model: finalModel,
|
|
270
|
-
max_tokens: 1000,
|
|
271
|
-
messages: [
|
|
272
|
-
{
|
|
273
|
-
role: "user",
|
|
274
|
-
content: [
|
|
275
|
-
{
|
|
276
|
-
type: "image",
|
|
277
|
-
source: {
|
|
278
|
-
type: "url",
|
|
279
|
-
url: imageUrl,
|
|
280
|
-
}, // Type assertion to work around SDK type definitions
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
type: "text",
|
|
284
|
-
text: anthropicPrompt,
|
|
285
|
-
},
|
|
286
|
-
],
|
|
287
|
-
},
|
|
288
|
-
],
|
|
289
|
-
});
|
|
290
|
-
const content = response.content[0];
|
|
291
|
-
if (content.type === 'text') {
|
|
292
|
-
// Parse JSON from Anthropic response
|
|
293
|
-
const jsonText = content.text.trim();
|
|
294
|
-
try {
|
|
295
|
-
aiAnalysis = JSON.parse(jsonText);
|
|
296
|
-
break; // Success, exit retry loop
|
|
297
|
-
}
|
|
298
|
-
catch (parseError) {
|
|
299
|
-
if (retryAttempt < maxRetries) {
|
|
300
|
-
console.warn(`Failed to parse JSON from Anthropic (attempt ${retryAttempt + 1}):`, jsonText);
|
|
301
|
-
retryAttempt++;
|
|
302
|
-
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
303
|
-
continue;
|
|
304
|
-
}
|
|
305
|
-
throw new Error(`Failed to parse JSON response from Anthropic: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
else {
|
|
309
|
-
throw new Error('Unexpected response type from Anthropic');
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
catch (error) {
|
|
313
|
-
if (retryAttempt < maxRetries) {
|
|
314
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
315
|
-
retryAttempt++;
|
|
316
|
-
continue;
|
|
317
|
-
}
|
|
318
|
-
throw new Error(`Failed to analyze video content with Anthropic: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
throw new Error(`Unsupported provider: ${provider}`);
|
|
325
|
-
}
|
|
326
|
-
if (!aiAnalysis) {
|
|
327
|
-
throw new Error('No analysis result received from AI provider');
|
|
328
|
-
}
|
|
329
|
-
return {
|
|
330
|
-
assetId,
|
|
331
|
-
title: aiAnalysis.title || 'No title available',
|
|
332
|
-
description: aiAnalysis.description || 'No description available',
|
|
333
|
-
tags: aiAnalysis.keywords || [],
|
|
334
|
-
storyboardUrl: imageUrl,
|
|
335
|
-
};
|
|
336
|
-
}
|
|
337
|
-
//# sourceMappingURL=summarization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summarization.js","sourceRoot":"","sources":["../src/summarization.ts"],"names":[],"mappings":"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"}
|
package/dist/translation.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { MuxAIOptions } from './types';
|
|
2
|
-
export interface TranslationResult {
|
|
3
|
-
assetId: string;
|
|
4
|
-
sourceLanguageCode: string;
|
|
5
|
-
targetLanguageCode: string;
|
|
6
|
-
originalVtt: string;
|
|
7
|
-
translatedVtt: string;
|
|
8
|
-
uploadedTrackId?: string;
|
|
9
|
-
presignedUrl?: string;
|
|
10
|
-
}
|
|
11
|
-
export interface TranslationOptions extends MuxAIOptions {
|
|
12
|
-
provider?: 'anthropic';
|
|
13
|
-
model?: string;
|
|
14
|
-
s3Endpoint?: string;
|
|
15
|
-
s3Region?: string;
|
|
16
|
-
s3Bucket?: string;
|
|
17
|
-
s3AccessKeyId?: string;
|
|
18
|
-
s3SecretAccessKey?: string;
|
|
19
|
-
uploadToMux?: boolean;
|
|
20
|
-
}
|
|
21
|
-
export declare function translateCaptions(assetId: string, fromLanguageCode: string, toLanguageCode: string, options?: TranslationOptions): Promise<TranslationResult>;
|
|
22
|
-
//# sourceMappingURL=translation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../src/translation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAqO5B"}
|
package/dist/translation.js
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import Mux from '@mux/mux-node';
|
|
2
|
-
import Anthropic from '@anthropic-ai/sdk';
|
|
3
|
-
import { S3Client } from '@aws-sdk/client-s3';
|
|
4
|
-
import { Upload } from '@aws-sdk/lib-storage';
|
|
5
|
-
import { GetObjectCommand } from '@aws-sdk/client-s3';
|
|
6
|
-
import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
|
|
7
|
-
export async function translateCaptions(assetId, fromLanguageCode, toLanguageCode, options = {}) {
|
|
8
|
-
const { provider = 'anthropic', model = 'claude-sonnet-4-20250514', muxTokenId, muxTokenSecret, anthropicApiKey, ...config } = options;
|
|
9
|
-
if (provider !== 'anthropic') {
|
|
10
|
-
throw new Error('Only Anthropic provider is currently supported for translation');
|
|
11
|
-
}
|
|
12
|
-
// Validate required credentials
|
|
13
|
-
const muxId = muxTokenId || process.env.MUX_TOKEN_ID;
|
|
14
|
-
const muxSecret = muxTokenSecret || process.env.MUX_TOKEN_SECRET;
|
|
15
|
-
const anthropicKey = anthropicApiKey || process.env.ANTHROPIC_API_KEY;
|
|
16
|
-
// S3 configuration
|
|
17
|
-
const s3Endpoint = options.s3Endpoint || process.env.S3_ENDPOINT;
|
|
18
|
-
const s3Region = options.s3Region || process.env.S3_REGION || 'auto';
|
|
19
|
-
const s3Bucket = options.s3Bucket || process.env.S3_BUCKET;
|
|
20
|
-
const s3AccessKeyId = options.s3AccessKeyId || process.env.S3_ACCESS_KEY_ID;
|
|
21
|
-
const s3SecretAccessKey = options.s3SecretAccessKey || process.env.S3_SECRET_ACCESS_KEY;
|
|
22
|
-
const uploadToMux = options.uploadToMux !== false; // Default to true
|
|
23
|
-
if (!muxId || !muxSecret) {
|
|
24
|
-
throw new Error('Mux credentials are required. Provide muxTokenId and muxTokenSecret in options or set MUX_TOKEN_ID and MUX_TOKEN_SECRET environment variables.');
|
|
25
|
-
}
|
|
26
|
-
if (!anthropicKey) {
|
|
27
|
-
throw new Error('Anthropic API key is required. Provide anthropicApiKey in options or set ANTHROPIC_API_KEY environment variable.');
|
|
28
|
-
}
|
|
29
|
-
if (uploadToMux && (!s3Endpoint || !s3Bucket || !s3AccessKeyId || !s3SecretAccessKey)) {
|
|
30
|
-
throw new Error('S3 configuration is required for uploading to Mux. Provide s3Endpoint, s3Bucket, s3AccessKeyId, and s3SecretAccessKey in options or set S3_ENDPOINT, S3_BUCKET, S3_ACCESS_KEY_ID, and S3_SECRET_ACCESS_KEY environment variables.');
|
|
31
|
-
}
|
|
32
|
-
// Initialize clients
|
|
33
|
-
const mux = new Mux({
|
|
34
|
-
tokenId: muxId,
|
|
35
|
-
tokenSecret: muxSecret,
|
|
36
|
-
});
|
|
37
|
-
const anthropicClient = new Anthropic({
|
|
38
|
-
apiKey: anthropicKey,
|
|
39
|
-
});
|
|
40
|
-
// Fetch asset data from Mux
|
|
41
|
-
let assetData;
|
|
42
|
-
try {
|
|
43
|
-
const asset = await mux.video.assets.retrieve(assetId);
|
|
44
|
-
assetData = asset;
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
throw new Error(`Failed to fetch asset from Mux: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
48
|
-
}
|
|
49
|
-
// Get playback ID for caption URL
|
|
50
|
-
const playbackId = assetData.playback_ids?.[0]?.id;
|
|
51
|
-
if (!playbackId) {
|
|
52
|
-
throw new Error('No playback ID found for this asset');
|
|
53
|
-
}
|
|
54
|
-
// Find text track with the source language
|
|
55
|
-
if (!assetData.tracks) {
|
|
56
|
-
throw new Error('No tracks found for this asset');
|
|
57
|
-
}
|
|
58
|
-
const sourceTextTrack = assetData.tracks.find((track) => track.type === 'text' &&
|
|
59
|
-
track.status === 'ready' &&
|
|
60
|
-
track.language_code === fromLanguageCode);
|
|
61
|
-
if (!sourceTextTrack) {
|
|
62
|
-
throw new Error(`No ready text track found with language code '${fromLanguageCode}' for this asset`);
|
|
63
|
-
}
|
|
64
|
-
// Fetch the VTT file content
|
|
65
|
-
const vttUrl = `https://stream.mux.com/${playbackId}/text/${sourceTextTrack.id}.vtt`;
|
|
66
|
-
let vttContent;
|
|
67
|
-
try {
|
|
68
|
-
const vttResponse = await fetch(vttUrl);
|
|
69
|
-
if (!vttResponse.ok) {
|
|
70
|
-
throw new Error(`Failed to fetch VTT file: ${vttResponse.statusText}`);
|
|
71
|
-
}
|
|
72
|
-
vttContent = await vttResponse.text();
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
throw new Error(`Failed to fetch VTT content: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
76
|
-
}
|
|
77
|
-
console.log(`✅ Found VTT content for language '${fromLanguageCode}'`);
|
|
78
|
-
// Translate VTT content using Anthropic
|
|
79
|
-
let translatedVtt;
|
|
80
|
-
try {
|
|
81
|
-
const response = await anthropicClient.messages.create({
|
|
82
|
-
model,
|
|
83
|
-
max_tokens: 4000,
|
|
84
|
-
messages: [
|
|
85
|
-
{
|
|
86
|
-
role: 'user',
|
|
87
|
-
content: `Translate the following VTT subtitle file from ${fromLanguageCode} to ${toLanguageCode}. Return the translated VTT in JSON format with the key 'translation'. Preserve all timestamps and VTT formatting exactly as they appear.\n\n${vttContent}`
|
|
88
|
-
}
|
|
89
|
-
]
|
|
90
|
-
});
|
|
91
|
-
const content = response.content[0];
|
|
92
|
-
if (content.type === 'text') {
|
|
93
|
-
// Parse JSON from Anthropic response
|
|
94
|
-
const responseText = content.text.trim();
|
|
95
|
-
try {
|
|
96
|
-
// Remove code block markers if present
|
|
97
|
-
const cleanedResponse = responseText.replace(/```json/g, '').replace(/```/g, '').trim();
|
|
98
|
-
const parsed = JSON.parse(cleanedResponse);
|
|
99
|
-
translatedVtt = parsed.translation;
|
|
100
|
-
}
|
|
101
|
-
catch (parseError) {
|
|
102
|
-
throw new Error(`Failed to parse JSON response from Anthropic: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
throw new Error('Unexpected response type from Anthropic');
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
throw new Error(`Failed to translate VTT with Anthropic: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
111
|
-
}
|
|
112
|
-
console.log(`\n✅ Translation completed successfully!`);
|
|
113
|
-
// If uploadToMux is false, just return the translation
|
|
114
|
-
if (!uploadToMux) {
|
|
115
|
-
console.log(`✅ VTT translated to ${toLanguageCode} successfully!`);
|
|
116
|
-
return {
|
|
117
|
-
assetId,
|
|
118
|
-
sourceLanguageCode: fromLanguageCode,
|
|
119
|
-
targetLanguageCode: toLanguageCode,
|
|
120
|
-
originalVtt: vttContent,
|
|
121
|
-
translatedVtt: translatedVtt
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
// Upload translated VTT to S3-compatible storage
|
|
125
|
-
console.log('📤 Uploading translated VTT to S3-compatible storage...');
|
|
126
|
-
const s3Client = new S3Client({
|
|
127
|
-
region: s3Region,
|
|
128
|
-
endpoint: s3Endpoint,
|
|
129
|
-
credentials: {
|
|
130
|
-
accessKeyId: s3AccessKeyId,
|
|
131
|
-
secretAccessKey: s3SecretAccessKey
|
|
132
|
-
},
|
|
133
|
-
forcePathStyle: true // Often needed for non-AWS S3 services
|
|
134
|
-
});
|
|
135
|
-
// Create unique key for the VTT file
|
|
136
|
-
const vttKey = `translations/${assetId}/${fromLanguageCode}-to-${toLanguageCode}-${Date.now()}.vtt`;
|
|
137
|
-
let presignedUrl;
|
|
138
|
-
try {
|
|
139
|
-
// Upload VTT to S3
|
|
140
|
-
const upload = new Upload({
|
|
141
|
-
client: s3Client,
|
|
142
|
-
params: {
|
|
143
|
-
Bucket: s3Bucket,
|
|
144
|
-
Key: vttKey,
|
|
145
|
-
Body: translatedVtt,
|
|
146
|
-
ContentType: 'text/vtt'
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
await upload.done();
|
|
150
|
-
console.log(`✅ VTT uploaded successfully to: ${vttKey}`);
|
|
151
|
-
// Generate presigned URL (valid for 1 hour)
|
|
152
|
-
const getObjectCommand = new GetObjectCommand({
|
|
153
|
-
Bucket: s3Bucket,
|
|
154
|
-
Key: vttKey
|
|
155
|
-
});
|
|
156
|
-
presignedUrl = await getSignedUrl(s3Client, getObjectCommand, {
|
|
157
|
-
expiresIn: 3600 // 1 hour
|
|
158
|
-
});
|
|
159
|
-
console.log(`🔗 Generated presigned URL (expires in 1 hour)`);
|
|
160
|
-
}
|
|
161
|
-
catch (error) {
|
|
162
|
-
throw new Error(`Failed to upload VTT to S3: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
163
|
-
}
|
|
164
|
-
// Add translated track to Mux asset
|
|
165
|
-
console.log('📹 Adding translated track to Mux asset...');
|
|
166
|
-
let uploadedTrackId;
|
|
167
|
-
try {
|
|
168
|
-
const languageName = new Intl.DisplayNames(['en'], { type: 'language' }).of(toLanguageCode) || toLanguageCode.toUpperCase();
|
|
169
|
-
const trackName = `${languageName} (auto-translated)`;
|
|
170
|
-
const trackResponse = await mux.video.assets.createTrack(assetId, {
|
|
171
|
-
type: 'text',
|
|
172
|
-
text_type: 'subtitles',
|
|
173
|
-
language_code: toLanguageCode,
|
|
174
|
-
name: trackName,
|
|
175
|
-
url: presignedUrl
|
|
176
|
-
});
|
|
177
|
-
uploadedTrackId = trackResponse.id;
|
|
178
|
-
console.log(`✅ Track added to Mux asset with ID: ${uploadedTrackId}`);
|
|
179
|
-
console.log(`📋 Track name: "${trackName}"`);
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
console.warn(`⚠️ Failed to add track to Mux asset: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
183
|
-
console.log('🔗 You can manually add the track using this presigned URL:');
|
|
184
|
-
console.log(presignedUrl);
|
|
185
|
-
}
|
|
186
|
-
return {
|
|
187
|
-
assetId,
|
|
188
|
-
sourceLanguageCode: fromLanguageCode,
|
|
189
|
-
targetLanguageCode: toLanguageCode,
|
|
190
|
-
originalVtt: vttContent,
|
|
191
|
-
translatedVtt: translatedVtt,
|
|
192
|
-
uploadedTrackId,
|
|
193
|
-
presignedUrl
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
//# sourceMappingURL=translation.js.map
|
package/dist/translation.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"translation.js","sourceRoot":"","sources":["../src/translation.ts"],"names":[],"mappings":"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"}
|