mulmocast 2.0.8 → 2.1.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.
Files changed (35) hide show
  1. package/lib/actions/movie.d.ts +29 -2
  2. package/lib/actions/movie.js +243 -91
  3. package/lib/methods/mulmo_presentation_style.d.ts +4 -3
  4. package/lib/methods/mulmo_presentation_style.js +7 -1
  5. package/lib/types/schema.d.ts +202 -31
  6. package/lib/types/schema.js +27 -13
  7. package/lib/types/schema_video_filter.d.ts +423 -0
  8. package/lib/types/schema_video_filter.js +253 -0
  9. package/lib/types/type.d.ts +2 -1
  10. package/lib/utils/context.d.ts +11 -3
  11. package/lib/utils/ffmpeg_utils.js +2 -2
  12. package/lib/utils/provider2agent.d.ts +4 -0
  13. package/lib/utils/provider2agent.js +5 -0
  14. package/lib/utils/utils.js +24 -55
  15. package/lib/utils/video_filter.d.ts +7 -0
  16. package/lib/utils/video_filter.js +149 -0
  17. package/package.json +7 -7
  18. package/scripts/test/README.md +48 -48
  19. package/scripts/test/test_transition2.json +460 -0
  20. package/scripts/test/test_transition2.json~ +62 -0
  21. package/scripts/test/test_transition3.json +70 -0
  22. package/scripts/test/test_transition3.json~ +76 -0
  23. package/scripts/test/test_transition_no_audio.json +16 -0
  24. package/scripts/test/test_video_filters.json~ +227 -0
  25. package/scripts/test/test_wipe_simple.json +37 -0
  26. package/scripts/test/test_all_image.json~ +0 -45
  27. package/scripts/test/test_all_movie.json~ +0 -37
  28. package/scripts/test/test_all_tts.json~ +0 -83
  29. package/scripts/test/test_audio_gemini.json~ +0 -67
  30. package/scripts/test/test_genai2.json~ +0 -84
  31. package/scripts/test/test_genai_movie.json~ +0 -22
  32. package/scripts/test/test_kotodama.json~ +0 -0
  33. package/scripts/test/test_lipsync2.json~ +0 -24
  34. package/scripts/test/test_movie2.json~ +0 -40
  35. package/scripts/test/test_play_to_end.json~ +0 -65
@@ -0,0 +1,460 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "lang": "en",
6
+ "title": "Transition Test",
7
+ "movieParams": {
8
+ "transition": {
9
+ "type": "fade",
10
+ "duration": 1.0
11
+ }
12
+ },
13
+ "beats": [
14
+ {
15
+ "speaker": "Presenter",
16
+ "text": "",
17
+ "image": {
18
+ "type": "image",
19
+ "source": {
20
+ "kind": "path",
21
+ "path": "../../assets/images/mulmocast_credit.png"
22
+ }
23
+ }
24
+ },
25
+ {
26
+ "speaker": "Presenter",
27
+ "image": {
28
+ "type": "textSlide",
29
+ "slide": {
30
+ "title": "1"
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "speaker": "Presenter",
36
+ "movieParams": {
37
+ "transition": {
38
+ "type": "slideout_left",
39
+ "duration": 1.0
40
+ }
41
+ },
42
+ "image": {
43
+ "type": "textSlide",
44
+ "slide": {
45
+ "title": "2"
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "speaker": "Presenter",
51
+ "image": {
52
+ "type": "movie",
53
+ "source": {
54
+ "kind": "url",
55
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/movies/tv.mov"
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "speaker": "Presenter",
61
+ "movieParams": {
62
+ "transition": {
63
+ "type": "slideout_left",
64
+ "duration": 1.0
65
+ }
66
+ },
67
+ "image": {
68
+ "type": "movie",
69
+ "source": {
70
+ "kind": "url",
71
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/test/pingpong.mov"
72
+ }
73
+ }
74
+ },
75
+ {
76
+ "speaker": "Presenter",
77
+ "movieParams": {
78
+ "transition": {
79
+ "type": "slideout_left",
80
+ "duration": 1.0
81
+ }
82
+ },
83
+ "duration": 1,
84
+ "image": {
85
+ "type": "html_tailwind",
86
+ "html": [
87
+ "<main class=\"bg-yellow-300 min-h-screen flex items-center justify-center\">",
88
+ "<div class=\"text-blue-900 text-6xl font-extrabold tracking-wide\">",
89
+ "slideout_left",
90
+ "</div>",
91
+ "</main>"
92
+ ]
93
+ }
94
+ },
95
+ {
96
+ "speaker": "Presenter",
97
+ "movieParams": {
98
+ "transition": {
99
+ "type": "slideout_right",
100
+ "duration": 1.0
101
+ }
102
+ },
103
+ "duration": 1,
104
+ "image": {
105
+ "type": "html_tailwind",
106
+ "html": [
107
+ "<main class=\"bg-red-600 min-h-screen flex items-center justify-center\">",
108
+ "<div class=\"text-white text-6xl font-extrabold tracking-wide\">",
109
+ "slideout_right",
110
+ "</div>",
111
+ "</main>"
112
+ ]
113
+ }
114
+ },
115
+ {
116
+ "speaker": "Presenter",
117
+ "movieParams": {
118
+ "transition": {
119
+ "type": "slideout_up",
120
+ "duration": 1.0
121
+ }
122
+ },
123
+ "duration": 1,
124
+ "image": {
125
+ "type": "html_tailwind",
126
+ "html": [
127
+ "<main class=\"bg-green-600 min-h-screen flex items-center justify-center\">",
128
+ "<div class=\"text-white text-6xl font-extrabold tracking-wide\">",
129
+ "slideout_up",
130
+ "</div>",
131
+ "</main>"
132
+ ]
133
+ }
134
+ },
135
+ {
136
+ "speaker": "Presenter",
137
+ "movieParams": {
138
+ "transition": {
139
+ "type": "slideout_down",
140
+ "duration": 1.0
141
+ }
142
+ },
143
+ "duration": 1,
144
+ "image": {
145
+ "type": "html_tailwind",
146
+ "html": [
147
+ "<main class=\"bg-blue-600 min-h-screen flex items-center justify-center\">",
148
+ "<div class=\"text-white text-6xl font-extrabold tracking-wide\">",
149
+ "slideout_down",
150
+ "</div>",
151
+ "</main>"
152
+ ]
153
+ }
154
+ },
155
+ {
156
+ "speaker": "Presenter",
157
+ "movieParams": {
158
+ "transition": {
159
+ "type": "slidein_left",
160
+ "duration": 1.0
161
+ }
162
+ },
163
+ "duration": 1,
164
+ "image": {
165
+ "type": "html_tailwind",
166
+ "html": [
167
+ "<main class=\"bg-purple-600 min-h-screen flex items-center justify-center\">",
168
+ "<div class=\"text-white text-6xl font-extrabold tracking-wide\">",
169
+ "slidein_left",
170
+ "</div>",
171
+ "</main>"
172
+ ]
173
+ }
174
+ },
175
+ {
176
+ "speaker": "Presenter",
177
+ "movieParams": {
178
+ "transition": {
179
+ "type": "slidein_right",
180
+ "duration": 1.0
181
+ }
182
+ },
183
+ "duration": 1,
184
+ "image": {
185
+ "type": "html_tailwind",
186
+ "html": [
187
+ "<main class=\"bg-orange-600 min-h-screen flex items-center justify-center\">",
188
+ "<div class=\"text-white text-6xl font-extrabold tracking-wide\">",
189
+ "slidein_right",
190
+ "</div>",
191
+ "</main>"
192
+ ]
193
+ }
194
+ },
195
+ {
196
+ "speaker": "Presenter",
197
+ "movieParams": {
198
+ "transition": {
199
+ "type": "slidein_up",
200
+ "duration": 1.0
201
+ }
202
+ },
203
+ "duration": 1,
204
+ "image": {
205
+ "type": "html_tailwind",
206
+ "html": [
207
+ "<main class=\"bg-pink-600 min-h-screen flex items-center justify-center\">",
208
+ "<div class=\"text-white text-6xl font-extrabold tracking-wide\">",
209
+ "slidein_up",
210
+ "</div>",
211
+ "</main>"
212
+ ]
213
+ }
214
+ },
215
+ {
216
+ "speaker": "Presenter",
217
+ "movieParams": {
218
+ "transition": {
219
+ "type": "slidein_down",
220
+ "duration": 1.0
221
+ }
222
+ },
223
+ "duration": 1,
224
+ "image": {
225
+ "type": "html_tailwind",
226
+ "html": [
227
+ "<main class=\"bg-cyan-600 min-h-screen flex items-center justify-center\">",
228
+ "<div class=\"text-white text-6xl font-extrabold tracking-wide\">",
229
+ "slidein_down",
230
+ "</div>",
231
+ "</main>"
232
+ ]
233
+ }
234
+ },
235
+ {
236
+ "speaker": "Presenter",
237
+ "movieParams": {
238
+ "transition": {
239
+ "type": "fade",
240
+ "duration": 1.0
241
+ }
242
+ },
243
+ "duration": 1,
244
+ "image": {
245
+ "type": "html_tailwind",
246
+ "html": [
247
+ "<main class=\"bg-gray-800 min-h-screen flex items-center justify-center\">",
248
+ "<div class=\"text-yellow-300 text-6xl font-extrabold tracking-wide\">",
249
+ "fade",
250
+ "</div>",
251
+ "</main>"
252
+ ]
253
+ }
254
+ },
255
+ {
256
+ "speaker": "Presenter",
257
+ "movieParams": {
258
+ "transition": {
259
+ "type": "fade",
260
+ "duration": 1.0
261
+ }
262
+ },
263
+ "duration": 1,
264
+ "image": {
265
+ "type": "html_tailwind",
266
+ "html": [
267
+ "<main class=\"bg-gray-200 min-h-screen flex items-center justify-center\">",
268
+ "<div class=\"text-yellow-300 text-6xl font-extrabold tracking-wide\">",
269
+ "fade",
270
+ "</div>",
271
+ "</main>"
272
+ ]
273
+ }
274
+ },
275
+ {
276
+ "speaker": "Presenter",
277
+ "movieParams": {
278
+ "transition": {
279
+ "type": "wipeleft",
280
+ "duration": 1.0
281
+ }
282
+ },
283
+ "duration": 1,
284
+ "image": {
285
+ "type": "html_tailwind",
286
+ "html": [
287
+ "<main class=\"min-h-screen flex items-center justify-center relative overflow-hidden\" style=\"background: repeating-linear-gradient(90deg, #4f46e5 0px, #4f46e5 80px, #6366f1 80px, #6366f1 160px);\">",
288
+ "<div class=\"text-center\">",
289
+ "<div class=\"text-yellow-300 text-[200px] font-black leading-none mb-4\">←</div>",
290
+ "<div class=\"text-white text-7xl font-extrabold tracking-wider bg-black bg-opacity-60 px-8 py-4 rounded-lg\">",
291
+ "WIPE LEFT",
292
+ "</div>",
293
+ "</div>",
294
+ "</main>"
295
+ ]
296
+ }
297
+ },
298
+ {
299
+ "speaker": "Presenter",
300
+ "movieParams": {
301
+ "transition": {
302
+ "type": "wiperight",
303
+ "duration": 1.0
304
+ }
305
+ },
306
+ "duration": 1,
307
+ "image": {
308
+ "type": "html_tailwind",
309
+ "html": [
310
+ "<main class=\"min-h-screen flex items-center justify-center relative overflow-hidden\" style=\"background: repeating-linear-gradient(90deg, #0d9488 0px, #0d9488 80px, #14b8a6 80px, #14b8a6 160px);\">",
311
+ "<div class=\"text-center\">",
312
+ "<div class=\"text-yellow-300 text-[200px] font-black leading-none mb-4\">→</div>",
313
+ "<div class=\"text-white text-7xl font-extrabold tracking-wider bg-black bg-opacity-60 px-8 py-4 rounded-lg\">",
314
+ "WIPE RIGHT",
315
+ "</div>",
316
+ "</div>",
317
+ "</main>"
318
+ ]
319
+ }
320
+ },
321
+ {
322
+ "speaker": "Presenter",
323
+ "movieParams": {
324
+ "transition": {
325
+ "type": "wipeup",
326
+ "duration": 1.0
327
+ }
328
+ },
329
+ "duration": 1,
330
+ "image": {
331
+ "type": "html_tailwind",
332
+ "html": [
333
+ "<main class=\"min-h-screen flex items-center justify-center relative overflow-hidden\" style=\"background: repeating-linear-gradient(0deg, #65a30d 0px, #65a30d 60px, #84cc16 60px, #84cc16 120px);\">",
334
+ "<div class=\"text-center\">",
335
+ "<div class=\"text-yellow-300 text-[200px] font-black leading-none mb-4\">↑</div>",
336
+ "<div class=\"text-white text-7xl font-extrabold tracking-wider bg-black bg-opacity-60 px-8 py-4 rounded-lg\">",
337
+ "WIPE UP",
338
+ "</div>",
339
+ "</div>",
340
+ "</main>"
341
+ ]
342
+ }
343
+ },
344
+ {
345
+ "speaker": "Presenter",
346
+ "movieParams": {
347
+ "transition": {
348
+ "type": "wipedown",
349
+ "duration": 1.0
350
+ }
351
+ },
352
+ "duration": 1,
353
+ "image": {
354
+ "type": "html_tailwind",
355
+ "html": [
356
+ "<main class=\"min-h-screen flex items-center justify-center relative overflow-hidden\" style=\"background: repeating-linear-gradient(0deg, #d97706 0px, #d97706 60px, #f59e0b 60px, #f59e0b 120px);\">",
357
+ "<div class=\"text-center\">",
358
+ "<div class=\"text-yellow-300 text-[200px] font-black leading-none mb-4\">↓</div>",
359
+ "<div class=\"text-white text-7xl font-extrabold tracking-wider bg-black bg-opacity-60 px-8 py-4 rounded-lg\">",
360
+ "WIPE DOWN",
361
+ "</div>",
362
+ "</div>",
363
+ "</main>"
364
+ ]
365
+ }
366
+ },
367
+ {
368
+ "speaker": "Presenter",
369
+ "movieParams": {
370
+ "transition": {
371
+ "type": "wipetl",
372
+ "duration": 1.0
373
+ }
374
+ },
375
+ "duration": 1,
376
+ "image": {
377
+ "type": "html_tailwind",
378
+ "html": [
379
+ "<main class=\"min-h-screen flex items-center justify-center relative overflow-hidden\" style=\"background: repeating-linear-gradient(45deg, #e11d48 0px, #e11d48 80px, #f43f5e 80px, #f43f5e 160px);\">",
380
+ "<div class=\"text-center\">",
381
+ "<div class=\"text-yellow-300 text-[200px] font-black leading-none mb-4\">↖</div>",
382
+ "<div class=\"text-white text-7xl font-extrabold tracking-wider bg-black bg-opacity-60 px-8 py-4 rounded-lg\">",
383
+ "WIPE TL",
384
+ "</div>",
385
+ "</div>",
386
+ "</main>"
387
+ ]
388
+ }
389
+ },
390
+ {
391
+ "speaker": "Presenter",
392
+ "movieParams": {
393
+ "transition": {
394
+ "type": "wipetr",
395
+ "duration": 1.0
396
+ }
397
+ },
398
+ "duration": 1,
399
+ "image": {
400
+ "type": "html_tailwind",
401
+ "html": [
402
+ "<main class=\"min-h-screen flex items-center justify-center relative overflow-hidden\" style=\"background: repeating-linear-gradient(-45deg, #7c3aed 0px, #7c3aed 80px, #8b5cf6 80px, #8b5cf6 160px);\">",
403
+ "<div class=\"text-center\">",
404
+ "<div class=\"text-yellow-300 text-[200px] font-black leading-none mb-4\">↗</div>",
405
+ "<div class=\"text-white text-7xl font-extrabold tracking-wider bg-black bg-opacity-60 px-8 py-4 rounded-lg\">",
406
+ "WIPE TR",
407
+ "</div>",
408
+ "</div>",
409
+ "</main>"
410
+ ]
411
+ }
412
+ },
413
+ {
414
+ "speaker": "Presenter",
415
+ "movieParams": {
416
+ "transition": {
417
+ "type": "wipebl",
418
+ "duration": 1.0
419
+ }
420
+ },
421
+ "duration": 1,
422
+ "image": {
423
+ "type": "html_tailwind",
424
+ "html": [
425
+ "<main class=\"min-h-screen flex items-center justify-center relative overflow-hidden\" style=\"background: repeating-linear-gradient(-45deg, #c026d3 0px, #c026d3 80px, #d946ef 80px, #d946ef 160px);\">",
426
+ "<div class=\"text-center\">",
427
+ "<div class=\"text-yellow-300 text-[200px] font-black leading-none mb-4\">↙</div>",
428
+ "<div class=\"text-white text-7xl font-extrabold tracking-wider bg-black bg-opacity-60 px-8 py-4 rounded-lg\">",
429
+ "WIPE BL",
430
+ "</div>",
431
+ "</div>",
432
+ "</main>"
433
+ ]
434
+ }
435
+ },
436
+ {
437
+ "speaker": "Presenter",
438
+ "movieParams": {
439
+ "transition": {
440
+ "type": "wipebr",
441
+ "duration": 1.0
442
+ }
443
+ },
444
+ "duration": 1,
445
+ "image": {
446
+ "type": "html_tailwind",
447
+ "html": [
448
+ "<main class=\"min-h-screen flex items-center justify-center relative overflow-hidden\" style=\"background: repeating-linear-gradient(45deg, #0284c7 0px, #0284c7 80px, #0ea5e9 80px, #0ea5e9 160px);\">",
449
+ "<div class=\"text-center\">",
450
+ "<div class=\"text-yellow-300 text-[200px] font-black leading-none mb-4\">↘</div>",
451
+ "<div class=\"text-white text-7xl font-extrabold tracking-wider bg-black bg-opacity-60 px-8 py-4 rounded-lg\">",
452
+ "WIPE BR",
453
+ "</div>",
454
+ "</div>",
455
+ "</main>"
456
+ ]
457
+ }
458
+ }
459
+ ]
460
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "lang": "en",
6
+ "title": "Transition Test",
7
+ "movieParams": {
8
+ "transition": {
9
+ "type": "fade",
10
+ "duration": 1.0
11
+ }
12
+ },
13
+ "beats": [
14
+ {
15
+ "speaker": "Presenter",
16
+ "text": "",
17
+ "image": {
18
+ "type": "image",
19
+ "source": {
20
+ "kind": "path",
21
+ "path": "../../assets/images/mulmocast_credit.png"
22
+ }
23
+ }
24
+ },
25
+ {
26
+ "speaker": "Presenter",
27
+ "duration": 3.0,
28
+ "image": {
29
+ "type": "textSlide",
30
+ "slide": {
31
+ "title": "3.0 second with no Audio"
32
+ }
33
+ }
34
+ },
35
+ {
36
+ "speaker": "Presenter",
37
+ "duration": 3.0,
38
+ "movieParams": {
39
+ "transition": {
40
+ "type": "slideout_left",
41
+ "duration": 1.0
42
+ }
43
+ },
44
+ "image": {
45
+ "type": "textSlide",
46
+ "slide": {
47
+ "title": "3.0 second with no Audio"
48
+ }
49
+ }
50
+ },
51
+ {
52
+ "speaker": "Presenter",
53
+ "image": {
54
+ "type": "movie",
55
+ "source": {
56
+ "kind": "url",
57
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/test/pingpong.mov"
58
+ }
59
+ }
60
+ }
61
+ ]
62
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "lang": "en",
6
+ "title": "Transition Test",
7
+ "beats": [
8
+ {
9
+ "speaker": "Presenter",
10
+ "text": "",
11
+ "image": {
12
+ "type": "image",
13
+ "source": {
14
+ "kind": "path",
15
+ "path": "../../assets/images/mulmocast_credit.png"
16
+ }
17
+ }
18
+ },
19
+ {
20
+ "speaker": "Presenter",
21
+ "image": {
22
+ "type": "textSlide",
23
+ "slide": {
24
+ "title": "1"
25
+ }
26
+ }
27
+ },
28
+ {
29
+ "speaker": "Presenter",
30
+ "movieParams": {
31
+ "transition": {
32
+ "type": "slideout_left",
33
+ "duration": 1.0
34
+ }
35
+ },
36
+ "image": {
37
+ "type": "textSlide",
38
+ "slide": {
39
+ "title": "2"
40
+ }
41
+ }
42
+ },
43
+ {
44
+ "speaker": "Presenter",
45
+ "movieParams": {
46
+ "transition": {
47
+ "type": "slideout_left",
48
+ "duration": 1.0
49
+ }
50
+ },
51
+ "image": {
52
+ "type": "movie",
53
+ "source": {
54
+ "kind": "url",
55
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/movies/tv.mov"
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "speaker": "Presenter",
61
+ "image": {
62
+ "type": "movie",
63
+ "source": {
64
+ "kind": "url",
65
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/test/pingpong.mov"
66
+ }
67
+ }
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "lang": "en",
6
+ "title": "Transition Test",
7
+ "movieParams": {
8
+ "transition": {
9
+ "type": "fade",
10
+ "duration": 1.0
11
+ }
12
+ },
13
+ "beats": [
14
+ {
15
+ "speaker": "Presenter",
16
+ "text": "",
17
+ "image": {
18
+ "type": "image",
19
+ "source": {
20
+ "kind": "path",
21
+ "path": "../../assets/images/mulmocast_credit.png"
22
+ }
23
+ }
24
+ },
25
+ {
26
+ "speaker": "Presenter",
27
+ "image": {
28
+ "type": "textSlide",
29
+ "slide": {
30
+ "title": "1"
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "speaker": "Presenter",
36
+ "movieParams": {
37
+ "transition": {
38
+ "type": "slideout_left",
39
+ "duration": 1.0
40
+ }
41
+ },
42
+ "image": {
43
+ "type": "textSlide",
44
+ "slide": {
45
+ "title": "2"
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "speaker": "Presenter",
51
+ "image": {
52
+ "type": "movie",
53
+ "source": {
54
+ "kind": "url",
55
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/movies/tv.mov"
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "speaker": "Presenter",
61
+ "movieParams": {
62
+ "transition": {
63
+ "type": "slideout_left",
64
+ "duration": 1.0
65
+ }
66
+ },
67
+ "image": {
68
+ "type": "movie",
69
+ "source": {
70
+ "kind": "url",
71
+ "url": "https://github.com/receptron/mulmocast-media/raw/refs/heads/main/test/pingpong.mov"
72
+ }
73
+ }
74
+ }
75
+ ]
76
+ }
@@ -32,6 +32,22 @@
32
32
  }
33
33
  }
34
34
  },
35
+ {
36
+ "speaker": "Presenter",
37
+ "duration": 3.0,
38
+ "movieParams": {
39
+ "transition": {
40
+ "type": "slideout_left",
41
+ "duration": 1.0
42
+ }
43
+ },
44
+ "image": {
45
+ "type": "textSlide",
46
+ "slide": {
47
+ "title": "3.0 second with no Audio"
48
+ }
49
+ }
50
+ },
35
51
  {
36
52
  "speaker": "Presenter",
37
53
  "image": {