@lee-jisoo/n8n-nodes-mediafx 1.6.0 → 1.6.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/fonts/DejaVuSans.ttf +0 -0
- package/dist/fonts/Inter-Regular.ttf +0 -0
- package/dist/fonts/NanumGothic-Regular.ttf +0 -0
- package/dist/fonts/NotoSansKR-Regular.ttf +0 -0
- package/dist/fonts/Pretendard-Regular.otf +0 -0
- package/dist/fonts/Roboto-Regular.ttf +0 -0
- package/dist/nodes/MediaFX/MediaFX.node.d.ts +12 -0
- package/dist/nodes/MediaFX/MediaFX.node.js +559 -0
- package/dist/nodes/MediaFX/mediafx.png +0 -0
- package/dist/nodes/MediaFX/operations/addSubtitle.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/addSubtitle.js +202 -0
- package/dist/nodes/MediaFX/operations/addText.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/addText.js +108 -0
- package/dist/nodes/MediaFX/operations/extractAudio.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/extractAudio.js +57 -0
- package/dist/nodes/MediaFX/operations/imageToVideo.d.ts +5 -0
- package/dist/nodes/MediaFX/operations/imageToVideo.js +65 -0
- package/dist/nodes/MediaFX/operations/index.d.ts +13 -0
- package/dist/nodes/MediaFX/operations/index.js +29 -0
- package/dist/nodes/MediaFX/operations/merge.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/merge.js +121 -0
- package/dist/nodes/MediaFX/operations/mixAudio.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/mixAudio.js +141 -0
- package/dist/nodes/MediaFX/operations/multiVideoTransition.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/multiVideoTransition.js +245 -0
- package/dist/nodes/MediaFX/operations/overlayVideo.d.ts +16 -0
- package/dist/nodes/MediaFX/operations/overlayVideo.js +240 -0
- package/dist/nodes/MediaFX/operations/separateAudio.d.ts +17 -0
- package/dist/nodes/MediaFX/operations/separateAudio.js +78 -0
- package/dist/nodes/MediaFX/operations/singleVideoFade.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/singleVideoFade.js +60 -0
- package/dist/nodes/MediaFX/operations/speed.d.ts +12 -0
- package/dist/nodes/MediaFX/operations/speed.js +110 -0
- package/dist/nodes/MediaFX/operations/stampImage.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/stampImage.js +146 -0
- package/dist/nodes/MediaFX/operations/trim.d.ts +2 -0
- package/dist/nodes/MediaFX/operations/trim.js +49 -0
- package/dist/nodes/MediaFX/properties/audio.properties.d.ts +2 -0
- package/dist/nodes/MediaFX/properties/audio.properties.js +394 -0
- package/dist/nodes/MediaFX/properties/font.properties.d.ts +2 -0
- package/dist/nodes/MediaFX/properties/font.properties.js +186 -0
- package/dist/nodes/MediaFX/properties/image.properties.d.ts +2 -0
- package/dist/nodes/MediaFX/properties/image.properties.js +333 -0
- package/dist/nodes/MediaFX/properties/resources.properties.d.ts +2 -0
- package/dist/nodes/MediaFX/properties/resources.properties.js +34 -0
- package/dist/nodes/MediaFX/properties/subtitle.properties.d.ts +2 -0
- package/dist/nodes/MediaFX/properties/subtitle.properties.js +361 -0
- package/dist/nodes/MediaFX/properties/video.properties.d.ts +2 -0
- package/dist/nodes/MediaFX/properties/video.properties.js +1135 -0
- package/dist/nodes/MediaFX/utils/ffmpegVersion.d.ts +14 -0
- package/dist/nodes/MediaFX/utils/ffmpegVersion.js +97 -0
- package/dist/nodes/MediaFX/utils.d.ts +43 -0
- package/dist/nodes/MediaFX/utils.js +410 -0
- package/package.json +1 -1
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.subtitleProperties = void 0;
|
|
4
|
+
exports.subtitleProperties = [
|
|
5
|
+
// Subtitle Operations
|
|
6
|
+
{
|
|
7
|
+
displayName: 'Operation',
|
|
8
|
+
name: 'operation',
|
|
9
|
+
type: 'options',
|
|
10
|
+
noDataExpression: true,
|
|
11
|
+
displayOptions: {
|
|
12
|
+
show: {
|
|
13
|
+
resource: ['subtitle'],
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
options: [
|
|
17
|
+
{
|
|
18
|
+
name: 'Add Subtitle',
|
|
19
|
+
value: 'addSubtitle',
|
|
20
|
+
description: 'Add SRT subtitle file to video',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Add String',
|
|
24
|
+
value: 'addText',
|
|
25
|
+
description: 'Add custom text overlay to video',
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
default: 'addText',
|
|
29
|
+
},
|
|
30
|
+
// ===================
|
|
31
|
+
// COMMON SOURCE FIELDS
|
|
32
|
+
// ===================
|
|
33
|
+
{
|
|
34
|
+
displayName: 'Video Source',
|
|
35
|
+
name: 'source',
|
|
36
|
+
type: 'fixedCollection',
|
|
37
|
+
placeholder: 'Add Video Source',
|
|
38
|
+
displayOptions: { show: { resource: ['subtitle'] } },
|
|
39
|
+
default: {},
|
|
40
|
+
options: [{
|
|
41
|
+
displayName: 'Source',
|
|
42
|
+
name: 'source',
|
|
43
|
+
values: [
|
|
44
|
+
{
|
|
45
|
+
displayName: 'Source Type', name: 'sourceType', type: 'options',
|
|
46
|
+
options: [{ name: 'URL', value: 'url' }, { name: 'Binary Data', value: 'binary' }],
|
|
47
|
+
default: 'url',
|
|
48
|
+
},
|
|
49
|
+
{ displayName: 'Value', name: 'value', type: 'string', default: '', placeholder: 'https://example.com/video.mp4', displayOptions: { show: { sourceType: ['url'] } } },
|
|
50
|
+
{ displayName: 'Binary Property', name: 'binaryProperty', type: 'string', default: 'data', displayOptions: { show: { sourceType: ['binary'] } } },
|
|
51
|
+
],
|
|
52
|
+
}],
|
|
53
|
+
},
|
|
54
|
+
// ===================
|
|
55
|
+
// SUBTITLE FILE SOURCE (only for addSubtitle)
|
|
56
|
+
// ===================
|
|
57
|
+
{
|
|
58
|
+
displayName: 'Subtitle File Source',
|
|
59
|
+
name: 'subtitleFileSource',
|
|
60
|
+
type: 'fixedCollection',
|
|
61
|
+
placeholder: 'Add Subtitle File Source',
|
|
62
|
+
displayOptions: {
|
|
63
|
+
show: {
|
|
64
|
+
resource: ['subtitle'],
|
|
65
|
+
operation: ['addSubtitle'],
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
default: {},
|
|
69
|
+
options: [
|
|
70
|
+
{
|
|
71
|
+
displayName: 'Source',
|
|
72
|
+
name: 'source',
|
|
73
|
+
values: [
|
|
74
|
+
{
|
|
75
|
+
displayName: 'Source Type',
|
|
76
|
+
name: 'sourceType',
|
|
77
|
+
type: 'options',
|
|
78
|
+
options: [{ name: 'URL', value: 'url' }, { name: 'Binary Data', value: 'binary' }],
|
|
79
|
+
default: 'url',
|
|
80
|
+
},
|
|
81
|
+
{ displayName: 'Value', name: 'value', type: 'string', default: '', placeholder: 'https://example.com/sub.srt', displayOptions: { show: { sourceType: ['url'] } } },
|
|
82
|
+
{ displayName: 'Binary Property', name: 'binaryProperty', type: 'string', default: 'data', displayOptions: { show: { sourceType: ['binary'] } } },
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
// ===================
|
|
88
|
+
// TEXT CONTENT (only for addText)
|
|
89
|
+
// ===================
|
|
90
|
+
{
|
|
91
|
+
displayName: 'Text',
|
|
92
|
+
name: 'text',
|
|
93
|
+
type: 'string',
|
|
94
|
+
default: 'Hello, n8n!',
|
|
95
|
+
displayOptions: {
|
|
96
|
+
show: {
|
|
97
|
+
resource: ['subtitle'],
|
|
98
|
+
operation: ['addText'],
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
description: 'Text content to display',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
displayName: 'Start Time (seconds)',
|
|
105
|
+
name: 'startTime',
|
|
106
|
+
type: 'number',
|
|
107
|
+
default: 0,
|
|
108
|
+
displayOptions: {
|
|
109
|
+
show: {
|
|
110
|
+
resource: ['subtitle'],
|
|
111
|
+
operation: ['addText'],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
description: 'When the text should start appearing',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
displayName: 'End Time (seconds)',
|
|
118
|
+
name: 'endTime',
|
|
119
|
+
type: 'number',
|
|
120
|
+
default: 5,
|
|
121
|
+
displayOptions: {
|
|
122
|
+
show: {
|
|
123
|
+
resource: ['subtitle'],
|
|
124
|
+
operation: ['addText'],
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
description: 'When the text should stop appearing',
|
|
128
|
+
},
|
|
129
|
+
// ===================
|
|
130
|
+
// COMMON FONT & STYLE OPTIONS
|
|
131
|
+
// ===================
|
|
132
|
+
{
|
|
133
|
+
displayName: 'Font Key',
|
|
134
|
+
name: 'fontKey',
|
|
135
|
+
type: 'options',
|
|
136
|
+
typeOptions: { loadOptionsMethod: 'getFonts' },
|
|
137
|
+
default: 'noto-sans-kr',
|
|
138
|
+
displayOptions: {
|
|
139
|
+
show: {
|
|
140
|
+
resource: ['subtitle'],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
description: 'Font to use for the text',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
displayName: 'Font Size',
|
|
147
|
+
name: 'size',
|
|
148
|
+
type: 'number',
|
|
149
|
+
default: 48,
|
|
150
|
+
displayOptions: {
|
|
151
|
+
show: {
|
|
152
|
+
resource: ['subtitle'],
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
description: 'Size of the text in pixels',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
displayName: 'Color',
|
|
159
|
+
name: 'color',
|
|
160
|
+
type: 'string',
|
|
161
|
+
default: 'white',
|
|
162
|
+
displayOptions: {
|
|
163
|
+
show: {
|
|
164
|
+
resource: ['subtitle'],
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
description: 'Text color (e.g., white, #FF0000, red)',
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
displayName: 'Outline Width',
|
|
171
|
+
name: 'outlineWidth',
|
|
172
|
+
type: 'number',
|
|
173
|
+
default: 1,
|
|
174
|
+
displayOptions: {
|
|
175
|
+
show: {
|
|
176
|
+
resource: ['subtitle'],
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
description: 'Width of the text border/outline',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
displayName: 'Outline Color',
|
|
183
|
+
name: 'outlineColor',
|
|
184
|
+
type: 'string',
|
|
185
|
+
default: 'black',
|
|
186
|
+
displayOptions: {
|
|
187
|
+
show: {
|
|
188
|
+
resource: ['subtitle'],
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
description: 'Color of the text outline (e.g., black, #000000)',
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
displayName: 'Enable Background Box',
|
|
195
|
+
name: 'enableBackground',
|
|
196
|
+
type: 'boolean',
|
|
197
|
+
default: false,
|
|
198
|
+
displayOptions: {
|
|
199
|
+
show: {
|
|
200
|
+
resource: ['subtitle'],
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
description: 'Whether to show a background box behind the text',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
displayName: 'Background Color',
|
|
207
|
+
name: 'backgroundColor',
|
|
208
|
+
type: 'string',
|
|
209
|
+
default: 'black',
|
|
210
|
+
displayOptions: {
|
|
211
|
+
show: {
|
|
212
|
+
resource: ['subtitle'],
|
|
213
|
+
enableBackground: [true],
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
description: 'Color of the background box (e.g., black, #000000)',
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
displayName: 'Background Opacity',
|
|
220
|
+
name: 'backgroundOpacity',
|
|
221
|
+
type: 'number',
|
|
222
|
+
typeOptions: {
|
|
223
|
+
minValue: 0,
|
|
224
|
+
maxValue: 1,
|
|
225
|
+
numberStepSize: 0.1,
|
|
226
|
+
},
|
|
227
|
+
default: 0.5,
|
|
228
|
+
displayOptions: {
|
|
229
|
+
show: {
|
|
230
|
+
resource: ['subtitle'],
|
|
231
|
+
enableBackground: [true],
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
description: 'Opacity of the background box (0 = transparent, 1 = solid)',
|
|
235
|
+
},
|
|
236
|
+
// ===================
|
|
237
|
+
// POSITION OPTIONS
|
|
238
|
+
// ===================
|
|
239
|
+
{
|
|
240
|
+
displayName: 'Position Type',
|
|
241
|
+
name: 'positionType',
|
|
242
|
+
type: 'options',
|
|
243
|
+
options: [
|
|
244
|
+
{ name: 'Alignment', value: 'alignment', description: 'Use preset alignment positions' },
|
|
245
|
+
{ name: 'Custom', value: 'custom', description: 'Set custom X/Y coordinates' },
|
|
246
|
+
],
|
|
247
|
+
default: 'alignment',
|
|
248
|
+
displayOptions: {
|
|
249
|
+
show: {
|
|
250
|
+
resource: ['subtitle'],
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
description: 'How to position the text',
|
|
254
|
+
},
|
|
255
|
+
// --- ALIGNMENT POSITION OPTIONS ---
|
|
256
|
+
{
|
|
257
|
+
displayName: 'Horizontal Alignment',
|
|
258
|
+
name: 'horizontalAlign',
|
|
259
|
+
type: 'options',
|
|
260
|
+
options: [
|
|
261
|
+
{ name: 'Left', value: 'left' },
|
|
262
|
+
{ name: 'Center', value: 'center' },
|
|
263
|
+
{ name: 'Right', value: 'right' },
|
|
264
|
+
],
|
|
265
|
+
default: 'center',
|
|
266
|
+
displayOptions: {
|
|
267
|
+
show: {
|
|
268
|
+
resource: ['subtitle'],
|
|
269
|
+
positionType: ['alignment']
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
description: 'Horizontal alignment of the text',
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
displayName: 'Vertical Alignment',
|
|
276
|
+
name: 'verticalAlign',
|
|
277
|
+
type: 'options',
|
|
278
|
+
options: [
|
|
279
|
+
{ name: 'Top', value: 'top' },
|
|
280
|
+
{ name: 'Middle', value: 'middle' },
|
|
281
|
+
{ name: 'Bottom', value: 'bottom' },
|
|
282
|
+
],
|
|
283
|
+
default: 'bottom',
|
|
284
|
+
displayOptions: {
|
|
285
|
+
show: {
|
|
286
|
+
resource: ['subtitle'],
|
|
287
|
+
positionType: ['alignment']
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
description: 'Vertical alignment of the text',
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
displayName: 'Horizontal Padding',
|
|
294
|
+
name: 'paddingX',
|
|
295
|
+
type: 'number',
|
|
296
|
+
default: 20,
|
|
297
|
+
displayOptions: {
|
|
298
|
+
show: {
|
|
299
|
+
resource: ['subtitle'],
|
|
300
|
+
positionType: ['alignment']
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
description: 'Horizontal padding in pixels from left/right edges',
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
displayName: 'Vertical Padding',
|
|
307
|
+
name: 'paddingY',
|
|
308
|
+
type: 'number',
|
|
309
|
+
default: 20,
|
|
310
|
+
displayOptions: {
|
|
311
|
+
show: {
|
|
312
|
+
resource: ['subtitle'],
|
|
313
|
+
positionType: ['alignment']
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
description: 'Vertical padding in pixels from top/bottom edges',
|
|
317
|
+
},
|
|
318
|
+
// --- CUSTOM POSITION OPTIONS ---
|
|
319
|
+
{
|
|
320
|
+
displayName: 'Position X',
|
|
321
|
+
name: 'x',
|
|
322
|
+
type: 'string',
|
|
323
|
+
default: '(w-text_w)/2',
|
|
324
|
+
displayOptions: {
|
|
325
|
+
show: {
|
|
326
|
+
resource: ['subtitle'],
|
|
327
|
+
positionType: ['custom']
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
description: "Custom X position. Use ffmpeg expressions (e.g., '100' or '(w-text_w)/2')",
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
displayName: 'Position Y',
|
|
334
|
+
name: 'y',
|
|
335
|
+
type: 'string',
|
|
336
|
+
default: 'h-th-50',
|
|
337
|
+
displayOptions: {
|
|
338
|
+
show: {
|
|
339
|
+
resource: ['subtitle'],
|
|
340
|
+
positionType: ['custom']
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
description: "Custom Y position. Use ffmpeg expressions (e.g., '100' or 'h-th-50')",
|
|
344
|
+
},
|
|
345
|
+
// ===================
|
|
346
|
+
// OUTPUT FIELD NAME
|
|
347
|
+
// ===================
|
|
348
|
+
{
|
|
349
|
+
displayName: 'Output Field Name',
|
|
350
|
+
name: 'outputFieldName',
|
|
351
|
+
type: 'string',
|
|
352
|
+
displayOptions: {
|
|
353
|
+
show: {
|
|
354
|
+
resource: ['subtitle'],
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
default: 'data',
|
|
358
|
+
description: 'Name of the binary property where the output video will be stored',
|
|
359
|
+
placeholder: 'data',
|
|
360
|
+
},
|
|
361
|
+
];
|