@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.
Files changed (54) hide show
  1. package/dist/fonts/DejaVuSans.ttf +0 -0
  2. package/dist/fonts/Inter-Regular.ttf +0 -0
  3. package/dist/fonts/NanumGothic-Regular.ttf +0 -0
  4. package/dist/fonts/NotoSansKR-Regular.ttf +0 -0
  5. package/dist/fonts/Pretendard-Regular.otf +0 -0
  6. package/dist/fonts/Roboto-Regular.ttf +0 -0
  7. package/dist/nodes/MediaFX/MediaFX.node.d.ts +12 -0
  8. package/dist/nodes/MediaFX/MediaFX.node.js +559 -0
  9. package/dist/nodes/MediaFX/mediafx.png +0 -0
  10. package/dist/nodes/MediaFX/operations/addSubtitle.d.ts +2 -0
  11. package/dist/nodes/MediaFX/operations/addSubtitle.js +202 -0
  12. package/dist/nodes/MediaFX/operations/addText.d.ts +2 -0
  13. package/dist/nodes/MediaFX/operations/addText.js +108 -0
  14. package/dist/nodes/MediaFX/operations/extractAudio.d.ts +2 -0
  15. package/dist/nodes/MediaFX/operations/extractAudio.js +57 -0
  16. package/dist/nodes/MediaFX/operations/imageToVideo.d.ts +5 -0
  17. package/dist/nodes/MediaFX/operations/imageToVideo.js +65 -0
  18. package/dist/nodes/MediaFX/operations/index.d.ts +13 -0
  19. package/dist/nodes/MediaFX/operations/index.js +29 -0
  20. package/dist/nodes/MediaFX/operations/merge.d.ts +2 -0
  21. package/dist/nodes/MediaFX/operations/merge.js +121 -0
  22. package/dist/nodes/MediaFX/operations/mixAudio.d.ts +2 -0
  23. package/dist/nodes/MediaFX/operations/mixAudio.js +141 -0
  24. package/dist/nodes/MediaFX/operations/multiVideoTransition.d.ts +2 -0
  25. package/dist/nodes/MediaFX/operations/multiVideoTransition.js +245 -0
  26. package/dist/nodes/MediaFX/operations/overlayVideo.d.ts +16 -0
  27. package/dist/nodes/MediaFX/operations/overlayVideo.js +240 -0
  28. package/dist/nodes/MediaFX/operations/separateAudio.d.ts +17 -0
  29. package/dist/nodes/MediaFX/operations/separateAudio.js +78 -0
  30. package/dist/nodes/MediaFX/operations/singleVideoFade.d.ts +2 -0
  31. package/dist/nodes/MediaFX/operations/singleVideoFade.js +60 -0
  32. package/dist/nodes/MediaFX/operations/speed.d.ts +12 -0
  33. package/dist/nodes/MediaFX/operations/speed.js +110 -0
  34. package/dist/nodes/MediaFX/operations/stampImage.d.ts +2 -0
  35. package/dist/nodes/MediaFX/operations/stampImage.js +146 -0
  36. package/dist/nodes/MediaFX/operations/trim.d.ts +2 -0
  37. package/dist/nodes/MediaFX/operations/trim.js +49 -0
  38. package/dist/nodes/MediaFX/properties/audio.properties.d.ts +2 -0
  39. package/dist/nodes/MediaFX/properties/audio.properties.js +394 -0
  40. package/dist/nodes/MediaFX/properties/font.properties.d.ts +2 -0
  41. package/dist/nodes/MediaFX/properties/font.properties.js +186 -0
  42. package/dist/nodes/MediaFX/properties/image.properties.d.ts +2 -0
  43. package/dist/nodes/MediaFX/properties/image.properties.js +333 -0
  44. package/dist/nodes/MediaFX/properties/resources.properties.d.ts +2 -0
  45. package/dist/nodes/MediaFX/properties/resources.properties.js +34 -0
  46. package/dist/nodes/MediaFX/properties/subtitle.properties.d.ts +2 -0
  47. package/dist/nodes/MediaFX/properties/subtitle.properties.js +361 -0
  48. package/dist/nodes/MediaFX/properties/video.properties.d.ts +2 -0
  49. package/dist/nodes/MediaFX/properties/video.properties.js +1135 -0
  50. package/dist/nodes/MediaFX/utils/ffmpegVersion.d.ts +14 -0
  51. package/dist/nodes/MediaFX/utils/ffmpegVersion.js +97 -0
  52. package/dist/nodes/MediaFX/utils.d.ts +43 -0
  53. package/dist/nodes/MediaFX/utils.js +410 -0
  54. 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
+ ];
@@ -0,0 +1,2 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const videoProperties: INodeProperties[];