cutsdk 0.0.1 → 1.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 (439) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +130 -0
  3. package/dist/api/audios/add-audios.d.ts +3 -0
  4. package/dist/api/audios/add-audios.d.ts.map +1 -0
  5. package/dist/api/audios/add-audios.js +33 -0
  6. package/dist/api/audios/add-audios.js.map +1 -0
  7. package/dist/api/audios/get-audios.d.ts +5 -0
  8. package/dist/api/audios/get-audios.d.ts.map +1 -0
  9. package/dist/api/audios/get-audios.js +27 -0
  10. package/dist/api/audios/get-audios.js.map +1 -0
  11. package/dist/api/captions/add-captions.d.ts +3 -0
  12. package/dist/api/captions/add-captions.d.ts.map +1 -0
  13. package/dist/api/captions/add-captions.js +220 -0
  14. package/dist/api/captions/add-captions.js.map +1 -0
  15. package/dist/api/captions/get-captions.d.ts +5 -0
  16. package/dist/api/captions/get-captions.d.ts.map +1 -0
  17. package/dist/api/captions/get-captions.js +36 -0
  18. package/dist/api/captions/get-captions.js.map +1 -0
  19. package/dist/api/cloud/render-draft.d.ts +11 -0
  20. package/dist/api/cloud/render-draft.d.ts.map +1 -0
  21. package/dist/api/cloud/render-draft.js +203 -0
  22. package/dist/api/cloud/render-draft.js.map +1 -0
  23. package/dist/api/cloud/submit-video-render-task.d.ts +4 -0
  24. package/dist/api/cloud/submit-video-render-task.d.ts.map +1 -0
  25. package/dist/api/cloud/submit-video-render-task.js +54 -0
  26. package/dist/api/cloud/submit-video-render-task.js.map +1 -0
  27. package/dist/api/cloud/upload-draft.d.ts +4 -0
  28. package/dist/api/cloud/upload-draft.d.ts.map +1 -0
  29. package/dist/api/cloud/upload-draft.js +89 -0
  30. package/dist/api/cloud/upload-draft.js.map +1 -0
  31. package/dist/api/draft/create-draft.d.ts +3 -0
  32. package/dist/api/draft/create-draft.d.ts.map +1 -0
  33. package/dist/api/draft/create-draft.js +11 -0
  34. package/dist/api/draft/create-draft.js.map +1 -0
  35. package/dist/api/draft/easy-create-material.d.ts +3 -0
  36. package/dist/api/draft/easy-create-material.d.ts.map +1 -0
  37. package/dist/api/draft/easy-create-material.js +64 -0
  38. package/dist/api/draft/easy-create-material.js.map +1 -0
  39. package/dist/api/draft/get-draft-info.d.ts +5 -0
  40. package/dist/api/draft/get-draft-info.d.ts.map +1 -0
  41. package/dist/api/draft/get-draft-info.js +35 -0
  42. package/dist/api/draft/get-draft-info.js.map +1 -0
  43. package/dist/api/draft/list-drafts.d.ts +3 -0
  44. package/dist/api/draft/list-drafts.d.ts.map +1 -0
  45. package/dist/api/draft/list-drafts.js +51 -0
  46. package/dist/api/draft/list-drafts.js.map +1 -0
  47. package/dist/api/draft-spec/create-and-render-draft.d.ts +3 -0
  48. package/dist/api/draft-spec/create-and-render-draft.d.ts.map +1 -0
  49. package/dist/api/draft-spec/create-and-render-draft.js +70 -0
  50. package/dist/api/draft-spec/create-and-render-draft.js.map +1 -0
  51. package/dist/api/draft-spec/create-draft-from-spec.d.ts +4 -0
  52. package/dist/api/draft-spec/create-draft-from-spec.d.ts.map +1 -0
  53. package/dist/api/draft-spec/create-draft-from-spec.js +96 -0
  54. package/dist/api/draft-spec/create-draft-from-spec.js.map +1 -0
  55. package/dist/api/draft-spec/resolve.d.ts +21 -0
  56. package/dist/api/draft-spec/resolve.d.ts.map +1 -0
  57. package/dist/api/draft-spec/resolve.js +279 -0
  58. package/dist/api/draft-spec/resolve.js.map +1 -0
  59. package/dist/api/draft-spec/time.d.ts +17 -0
  60. package/dist/api/draft-spec/time.d.ts.map +1 -0
  61. package/dist/api/draft-spec/time.js +56 -0
  62. package/dist/api/draft-spec/time.js.map +1 -0
  63. package/dist/api/draft-spec/validation.d.ts +3 -0
  64. package/dist/api/draft-spec/validation.d.ts.map +1 -0
  65. package/dist/api/draft-spec/validation.js +179 -0
  66. package/dist/api/draft-spec/validation.js.map +1 -0
  67. package/dist/api/effects/add-effects.d.ts +3 -0
  68. package/dist/api/effects/add-effects.d.ts.map +1 -0
  69. package/dist/api/effects/add-effects.js +24 -0
  70. package/dist/api/effects/add-effects.js.map +1 -0
  71. package/dist/api/effects/get-effects.d.ts +5 -0
  72. package/dist/api/effects/get-effects.d.ts.map +1 -0
  73. package/dist/api/effects/get-effects.js +23 -0
  74. package/dist/api/effects/get-effects.js.map +1 -0
  75. package/dist/api/images/add-images.d.ts +3 -0
  76. package/dist/api/images/add-images.d.ts.map +1 -0
  77. package/dist/api/images/add-images.js +67 -0
  78. package/dist/api/images/add-images.js.map +1 -0
  79. package/dist/api/images/get-images.d.ts +5 -0
  80. package/dist/api/images/get-images.d.ts.map +1 -0
  81. package/dist/api/images/get-images.js +30 -0
  82. package/dist/api/images/get-images.js.map +1 -0
  83. package/dist/api/keyframes/add-keyframes.d.ts +3 -0
  84. package/dist/api/keyframes/add-keyframes.d.ts.map +1 -0
  85. package/dist/api/keyframes/add-keyframes.js +21 -0
  86. package/dist/api/keyframes/add-keyframes.js.map +1 -0
  87. package/dist/api/keyframes/get-keyframes.d.ts +6 -0
  88. package/dist/api/keyframes/get-keyframes.d.ts.map +1 -0
  89. package/dist/api/keyframes/get-keyframes.js +41 -0
  90. package/dist/api/keyframes/get-keyframes.js.map +1 -0
  91. package/dist/api/masks/add-masks.d.ts +3 -0
  92. package/dist/api/masks/add-masks.d.ts.map +1 -0
  93. package/dist/api/masks/add-masks.js +63 -0
  94. package/dist/api/masks/add-masks.js.map +1 -0
  95. package/dist/api/masks/get-masks.d.ts +6 -0
  96. package/dist/api/masks/get-masks.d.ts.map +1 -0
  97. package/dist/api/masks/get-masks.js +44 -0
  98. package/dist/api/masks/get-masks.js.map +1 -0
  99. package/dist/api/query/get-audio-duration.d.ts +3 -0
  100. package/dist/api/query/get-audio-duration.d.ts.map +1 -0
  101. package/dist/api/query/get-audio-duration.js +12 -0
  102. package/dist/api/query/get-audio-duration.js.map +1 -0
  103. package/dist/api/query/get-image-animations.d.ts +3 -0
  104. package/dist/api/query/get-image-animations.d.ts.map +1 -0
  105. package/dist/api/query/get-image-animations.js +21 -0
  106. package/dist/api/query/get-image-animations.js.map +1 -0
  107. package/dist/api/query/get-text-effects.d.ts +4 -0
  108. package/dist/api/query/get-text-effects.d.ts.map +1 -0
  109. package/dist/api/query/get-text-effects.js +36 -0
  110. package/dist/api/query/get-text-effects.js.map +1 -0
  111. package/dist/api/setup/templates/project/.agents/skills/cut-draft/SKILL.md +92 -0
  112. package/dist/api/setup/templates/project/cutcli-docs/.env.example +6 -0
  113. package/dist/api/setup/templates/project/cutcli-docs/README.md +95 -0
  114. package/dist/api/setup/templates/project/cutcli-docs/api-cheatsheet.md +156 -0
  115. package/dist/api/setup/templates/project/cutcli-docs/examples/01-create-draft.ts +43 -0
  116. package/dist/api/setup/templates/project/cutcli-docs/examples/02-draft-spec.ts +73 -0
  117. package/dist/api/setup/templates/project/cutcli-docs/examples/03-create-and-render.ts +66 -0
  118. package/dist/api/setup/templates/project/cutcli-docs/examples/04-cli-examples.md +109 -0
  119. package/dist/api/setup/templates/project/cutcli-docs/quickstart.md +130 -0
  120. package/dist/api/sticker/add-sticker.d.ts +3 -0
  121. package/dist/api/sticker/add-sticker.d.ts.map +1 -0
  122. package/dist/api/sticker/add-sticker.js +22 -0
  123. package/dist/api/sticker/add-sticker.js.map +1 -0
  124. package/dist/api/sticker/get-stickers.d.ts +5 -0
  125. package/dist/api/sticker/get-stickers.d.ts.map +1 -0
  126. package/dist/api/sticker/get-stickers.js +23 -0
  127. package/dist/api/sticker/get-stickers.js.map +1 -0
  128. package/dist/api/text-style/add-text-style.d.ts +3 -0
  129. package/dist/api/text-style/add-text-style.d.ts.map +1 -0
  130. package/dist/api/text-style/add-text-style.js +25 -0
  131. package/dist/api/text-style/add-text-style.js.map +1 -0
  132. package/dist/api/videos/add-videos.d.ts +3 -0
  133. package/dist/api/videos/add-videos.d.ts.map +1 -0
  134. package/dist/api/videos/add-videos.js +84 -0
  135. package/dist/api/videos/add-videos.js.map +1 -0
  136. package/dist/api/videos/get-videos.d.ts +5 -0
  137. package/dist/api/videos/get-videos.d.ts.map +1 -0
  138. package/dist/api/videos/get-videos.js +30 -0
  139. package/dist/api/videos/get-videos.js.map +1 -0
  140. package/dist/config/index.d.ts +11 -0
  141. package/dist/config/index.d.ts.map +1 -0
  142. package/dist/config/index.js +27 -0
  143. package/dist/config/index.js.map +1 -0
  144. package/dist/draft/drafts/AudioMaterial.d.ts +41 -0
  145. package/dist/draft/drafts/AudioMaterial.d.ts.map +1 -0
  146. package/dist/draft/drafts/AudioMaterial.js +45 -0
  147. package/dist/draft/drafts/AudioMaterial.js.map +1 -0
  148. package/dist/draft/drafts/Draft.d.ts +272 -0
  149. package/dist/draft/drafts/Draft.d.ts.map +1 -0
  150. package/dist/draft/drafts/Draft.js +374 -0
  151. package/dist/draft/drafts/Draft.js.map +1 -0
  152. package/dist/draft/drafts/Effects.d.ts +32 -0
  153. package/dist/draft/drafts/Effects.d.ts.map +1 -0
  154. package/dist/draft/drafts/Effects.js +77 -0
  155. package/dist/draft/drafts/Effects.js.map +1 -0
  156. package/dist/draft/drafts/Huazi.d.ts +47 -0
  157. package/dist/draft/drafts/Huazi.d.ts.map +1 -0
  158. package/dist/draft/drafts/Huazi.js +71 -0
  159. package/dist/draft/drafts/Huazi.js.map +1 -0
  160. package/dist/draft/drafts/Keyframe.d.ts +57 -0
  161. package/dist/draft/drafts/Keyframe.d.ts.map +1 -0
  162. package/dist/draft/drafts/Keyframe.js +66 -0
  163. package/dist/draft/drafts/Keyframe.js.map +1 -0
  164. package/dist/draft/drafts/Mask.d.ts +74 -0
  165. package/dist/draft/drafts/Mask.d.ts.map +1 -0
  166. package/dist/draft/drafts/Mask.js +93 -0
  167. package/dist/draft/drafts/Mask.js.map +1 -0
  168. package/dist/draft/drafts/MediaUtil.d.ts +18 -0
  169. package/dist/draft/drafts/MediaUtil.d.ts.map +1 -0
  170. package/dist/draft/drafts/MediaUtil.js +101 -0
  171. package/dist/draft/drafts/MediaUtil.js.map +1 -0
  172. package/dist/draft/drafts/Qipaos.d.ts +35 -0
  173. package/dist/draft/drafts/Qipaos.d.ts.map +1 -0
  174. package/dist/draft/drafts/Qipaos.js +41 -0
  175. package/dist/draft/drafts/Qipaos.js.map +1 -0
  176. package/dist/draft/drafts/Segments.d.ts +74 -0
  177. package/dist/draft/drafts/Segments.d.ts.map +1 -0
  178. package/dist/draft/drafts/Segments.js +112 -0
  179. package/dist/draft/drafts/Segments.js.map +1 -0
  180. package/dist/draft/drafts/Stickers.d.ts +58 -0
  181. package/dist/draft/drafts/Stickers.d.ts.map +1 -0
  182. package/dist/draft/drafts/Stickers.js +64 -0
  183. package/dist/draft/drafts/Stickers.js.map +1 -0
  184. package/dist/draft/drafts/TextMaterial.d.ts +119 -0
  185. package/dist/draft/drafts/TextMaterial.d.ts.map +1 -0
  186. package/dist/draft/drafts/TextMaterial.js +182 -0
  187. package/dist/draft/drafts/TextMaterial.js.map +1 -0
  188. package/dist/draft/drafts/Track.d.ts +18 -0
  189. package/dist/draft/drafts/Track.d.ts.map +1 -0
  190. package/dist/draft/drafts/Track.js +30 -0
  191. package/dist/draft/drafts/Track.js.map +1 -0
  192. package/dist/draft/drafts/Transitions.d.ts +14 -0
  193. package/dist/draft/drafts/Transitions.d.ts.map +1 -0
  194. package/dist/draft/drafts/Transitions.js +21 -0
  195. package/dist/draft/drafts/Transitions.js.map +1 -0
  196. package/dist/draft/drafts/VideoMaterial.d.ts +87 -0
  197. package/dist/draft/drafts/VideoMaterial.d.ts.map +1 -0
  198. package/dist/draft/drafts/VideoMaterial.js +92 -0
  199. package/dist/draft/drafts/VideoMaterial.js.map +1 -0
  200. package/dist/draft/drafts/add_keyframes_v2.d.ts +2 -0
  201. package/dist/draft/drafts/add_keyframes_v2.d.ts.map +1 -0
  202. package/dist/draft/drafts/add_keyframes_v2.js +281 -0
  203. package/dist/draft/drafts/add_keyframes_v2.js.map +1 -0
  204. package/dist/draft/drafts/add_text_animations.d.ts +7 -0
  205. package/dist/draft/drafts/add_text_animations.d.ts.map +1 -0
  206. package/dist/draft/drafts/add_text_animations.js +29 -0
  207. package/dist/draft/drafts/add_text_animations.js.map +1 -0
  208. package/dist/draft/drafts/add_video_animations.d.ts +7 -0
  209. package/dist/draft/drafts/add_video_animations.d.ts.map +1 -0
  210. package/dist/draft/drafts/add_video_animations.js +29 -0
  211. package/dist/draft/drafts/add_video_animations.js.map +1 -0
  212. package/dist/draft/drafts/add_video_effects.d.ts +27 -0
  213. package/dist/draft/drafts/add_video_effects.d.ts.map +1 -0
  214. package/dist/draft/drafts/add_video_effects.js +11 -0
  215. package/dist/draft/drafts/add_video_effects.js.map +1 -0
  216. package/dist/draft/drafts/data/audio/audio_effect.d.ts +35 -0
  217. package/dist/draft/drafts/data/audio/audio_effect.d.ts.map +1 -0
  218. package/dist/draft/drafts/data/audio/audio_effect.js +98 -0
  219. package/dist/draft/drafts/data/audio/audio_effect.js.map +1 -0
  220. package/dist/draft/drafts/data/audio//346/250/241/346/213/237.json +4275 -0
  221. package/dist/draft/drafts/data/audio//347/216/257/345/242/203.json +1673 -0
  222. package/dist/draft/drafts/data/audio//347/276/216/345/214/226.json +860 -0
  223. package/dist/draft/drafts/data/effect/cn/effect.d.ts +29 -0
  224. package/dist/draft/drafts/data/effect/cn/effect.d.ts.map +1 -0
  225. package/dist/draft/drafts/data/effect/cn/effect.js +122 -0
  226. package/dist/draft/drafts/data/effect/cn/effect.js.map +1 -0
  227. package/dist/draft/drafts/data/effect/cn/huamian/aixing.json +3097 -0
  228. package/dist/draft/drafts/data/effect/cn/huamian/anhei.json +3456 -0
  229. package/dist/draft/drafts/data/effect/cn/huamian/biankuang.json +8201 -0
  230. package/dist/draft/drafts/data/effect/cn/huamian/bling.json +5836 -0
  231. package/dist/draft/drafts/data/effect/cn/huamian/chaoku.json +3554 -0
  232. package/dist/draft/drafts/data/effect/cn/huamian/dianyin.json +624 -0
  233. package/dist/draft/drafts/data/effect/cn/huamian/donggan.json +11193 -0
  234. package/dist/draft/drafts/data/effect/cn/huamian/dv.json +3305 -0
  235. package/dist/draft/drafts/data/effect/cn/huamian/fanwei.json +10631 -0
  236. package/dist/draft/drafts/data/effect/cn/huamian/fenpin.json +1016 -0
  237. package/dist/draft/drafts/data/effect/cn/huamian/fugu.json +7592 -0
  238. package/dist/draft/drafts/data/effect/cn/huamian/guang.json +5614 -0
  239. package/dist/draft/drafts/data/effect/cn/huamian/hot.json +16202 -0
  240. package/dist/draft/drafts/data/effect/cn/huamian/jichu.json +10017 -0
  241. package/dist/draft/drafts/data/effect/cn/huamian/jinfen.json +2545 -0
  242. package/dist/draft/drafts/data/effect/cn/huamian/manhua.json +1897 -0
  243. package/dist/draft/drafts/data/effect/cn/huamian/niuqu.json +2037 -0
  244. package/dist/draft/drafts/data/effect/cn/huamian/touyin.json +1013 -0
  245. package/dist/draft/drafts/data/effect/cn/huamian/wenlin.json +2942 -0
  246. package/dist/draft/drafts/data/effect/cn/huamian/xinnian.json +4627 -0
  247. package/dist/draft/drafts/data/effect/cn/huamian/zhongyi.json +3063 -0
  248. package/dist/draft/drafts/data/effect/cn/huamian/ziran.json +4791 -0
  249. package/dist/draft/drafts/data/effect/cn/huamian/zuixin.json +5677 -0
  250. package/dist/draft/drafts/data/effect/cn/renwu/anhei.json +900 -0
  251. package/dist/draft/drafts/data/effect/cn/renwu/danglian.json +1518 -0
  252. package/dist/draft/drafts/data/effect/cn/renwu/hot.json +20280 -0
  253. package/dist/draft/drafts/data/effect/cn/renwu/huanrao.json +1447 -0
  254. package/dist/draft/drafts/data/effect/cn/renwu/kelong.json +1857 -0
  255. package/dist/draft/drafts/data/effect/cn/renwu/qingxu.json +5641 -0
  256. package/dist/draft/drafts/data/effect/cn/renwu/shenti.json +2827 -0
  257. package/dist/draft/drafts/data/effect/cn/renwu/shoubu.json +742 -0
  258. package/dist/draft/drafts/data/effect/cn/renwu/tousi.json +3129 -0
  259. package/dist/draft/drafts/data/effect/cn/renwu/xingxiang.json +1397 -0
  260. package/dist/draft/drafts/data/effect/cn/renwu/zhuangshi.json +5017 -0
  261. package/dist/draft/drafts/data/font/font.d.ts +11 -0
  262. package/dist/draft/drafts/data/font/font.d.ts.map +1 -0
  263. package/dist/draft/drafts/data/font/font.js +9303 -0
  264. package/dist/draft/drafts/data/font/font.js.map +1 -0
  265. package/dist/draft/drafts/data/font/font_0427.d.ts +3 -0
  266. package/dist/draft/drafts/data/font/font_0427.d.ts.map +1 -0
  267. package/dist/draft/drafts/data/font/font_0427.js +57922 -0
  268. package/dist/draft/drafts/data/font/font_0427.js.map +1 -0
  269. package/dist/draft/drafts/data/font/online_font.d.ts +7 -0
  270. package/dist/draft/drafts/data/font/online_font.d.ts.map +1 -0
  271. package/dist/draft/drafts/data/font/online_font.js +78 -0
  272. package/dist/draft/drafts/data/font/online_font.js.map +1 -0
  273. package/dist/draft/drafts/data/huazi/all_huazi_data.json +94057 -0
  274. package/dist/draft/drafts/data/huazi/online_huazi.d.ts +9 -0
  275. package/dist/draft/drafts/data/huazi/online_huazi.d.ts.map +1 -0
  276. package/dist/draft/drafts/data/huazi/online_huazi.js +163 -0
  277. package/dist/draft/drafts/data/huazi/online_huazi.js.map +1 -0
  278. package/dist/draft/drafts/data/texiao/aixin.json +2555 -0
  279. package/dist/draft/drafts/data/texiao/anhei.json +2909 -0
  280. package/dist/draft/drafts/data/texiao/biankuang.json +5906 -0
  281. package/dist/draft/drafts/data/texiao/bling.json +4171 -0
  282. package/dist/draft/drafts/data/texiao/chaoku.json +1560 -0
  283. package/dist/draft/drafts/data/texiao/dianyin.json +522 -0
  284. package/dist/draft/drafts/data/texiao/donggan.json +6157 -0
  285. package/dist/draft/drafts/data/texiao/dv.json +1796 -0
  286. package/dist/draft/drafts/data/texiao/fenpin.json +712 -0
  287. package/dist/draft/drafts/data/texiao/fenwei.json +4405 -0
  288. package/dist/draft/drafts/data/texiao/fugu.json +4472 -0
  289. package/dist/draft/drafts/data/texiao/guang.json +2297 -0
  290. package/dist/draft/drafts/data/texiao/jichu.json +4929 -0
  291. package/dist/draft/drafts/data/texiao/jinfen.json +1712 -0
  292. package/dist/draft/drafts/data/texiao/manhua.json +1700 -0
  293. package/dist/draft/drafts/data/texiao/niuqu.json +708 -0
  294. package/dist/draft/drafts/data/texiao/remen.json +7147 -0
  295. package/dist/draft/drafts/data/texiao/texiao.d.ts +53 -0
  296. package/dist/draft/drafts/data/texiao/texiao.d.ts.map +1 -0
  297. package/dist/draft/drafts/data/texiao/texiao.js +102 -0
  298. package/dist/draft/drafts/data/texiao/texiao.js.map +1 -0
  299. package/dist/draft/drafts/data/texiao/touyin.json +2354 -0
  300. package/dist/draft/drafts/data/texiao/wenli.json +2118 -0
  301. package/dist/draft/drafts/data/texiao/ziran.json +2882 -0
  302. package/dist/draft/drafts/data/texiao/zongyi.json +2287 -0
  303. package/dist/draft/drafts/data/text/chuchang.d.ts +35 -0
  304. package/dist/draft/drafts/data/text/chuchang.d.ts.map +1 -0
  305. package/dist/draft/drafts/data/text/chuchang.js +4547 -0
  306. package/dist/draft/drafts/data/text/chuchang.js.map +1 -0
  307. package/dist/draft/drafts/data/text/qipao.d.ts +87 -0
  308. package/dist/draft/drafts/data/text/qipao.d.ts.map +1 -0
  309. package/dist/draft/drafts/data/text/qipao.js +17773 -0
  310. package/dist/draft/drafts/data/text/qipao.js.map +1 -0
  311. package/dist/draft/drafts/data/text/ruchang.d.ts +35 -0
  312. package/dist/draft/drafts/data/text/ruchang.d.ts.map +1 -0
  313. package/dist/draft/drafts/data/text/ruchang.js +5363 -0
  314. package/dist/draft/drafts/data/text/ruchang.js.map +1 -0
  315. package/dist/draft/drafts/data/text/text_animations.d.ts +7 -0
  316. package/dist/draft/drafts/data/text/text_animations.d.ts.map +1 -0
  317. package/dist/draft/drafts/data/text/text_animations.js +147 -0
  318. package/dist/draft/drafts/data/text/text_animations.js.map +1 -0
  319. package/dist/draft/drafts/data/text/text_animations.json +26179 -0
  320. package/dist/draft/drafts/data/text/xunhuan.d.ts +35 -0
  321. package/dist/draft/drafts/data/text/xunhuan.d.ts.map +1 -0
  322. package/dist/draft/drafts/data/text/xunhuan.js +3435 -0
  323. package/dist/draft/drafts/data/text/xunhuan.js.map +1 -0
  324. package/dist/draft/drafts/data/tezhi/cn/aixin.json +3625 -0
  325. package/dist/draft/drafts/data/tezhi/cn/biaoqing.json +3269 -0
  326. package/dist/draft/drafts/data/tezhi/cn/bohemanbo.json +3270 -0
  327. package/dist/draft/drafts/data/tezhi/cn/dianshang.json +3269 -0
  328. package/dist/draft/drafts/data/tezhi/cn/dongri.json +3267 -0
  329. package/dist/draft/drafts/data/tezhi/cn/hot.json +3379 -0
  330. package/dist/draft/drafts/data/tezhi/cn/hudie.json +3490 -0
  331. package/dist/draft/drafts/data/tezhi/cn/hudong.json +3328 -0
  332. package/dist/draft/drafts/data/tezhi/cn/hunli.json +3290 -0
  333. package/dist/draft/drafts/data/tezhi/cn/jiari.json +3276 -0
  334. package/dist/draft/drafts/data/tezhi/cn/keai.json +3269 -0
  335. package/dist/draft/drafts/data/tezhi/cn/langman.json +3290 -0
  336. package/dist/draft/drafts/data/tezhi/cn/lvxing.json +3350 -0
  337. package/dist/draft/drafts/data/tezhi/cn/meishi.json +3294 -0
  338. package/dist/draft/drafts/data/tezhi/cn/meizhuang.json +3279 -0
  339. package/dist/draft/drafts/data/tezhi/cn/qingxu1.json +3421 -0
  340. package/dist/draft/drafts/data/tezhi/cn/qingxu2.json +3368 -0
  341. package/dist/draft/drafts/data/tezhi/cn/qingxu3.json +3358 -0
  342. package/dist/draft/drafts/data/tezhi/cn/qingxu4.json +3361 -0
  343. package/dist/draft/drafts/data/tezhi/cn/regeng.json +3292 -0
  344. package/dist/draft/drafts/data/tezhi/cn/vip.json +3336 -0
  345. package/dist/draft/drafts/data/tezhi/cn/vlog.json +3295 -0
  346. package/dist/draft/drafts/data/tezhi/cn/xiari.json +3411 -0
  347. package/dist/draft/drafts/data/tezhi/cn/xinnian.json +3274 -0
  348. package/dist/draft/drafts/data/tezhi/cn/yinyuejie.json +3285 -0
  349. package/dist/draft/drafts/data/tezhi/cn/yundong.json +3267 -0
  350. package/dist/draft/drafts/data/tezhi/cn/zhakai.json +3399 -0
  351. package/dist/draft/drafts/data/tezhi/cn/zhisi.json +3385 -0
  352. package/dist/draft/drafts/data/tezhi/cn_sticker.d.ts +2 -0
  353. package/dist/draft/drafts/data/tezhi/cn_sticker.d.ts.map +1 -0
  354. package/dist/draft/drafts/data/tezhi/cn_sticker.js +41 -0
  355. package/dist/draft/drafts/data/tezhi/cn_sticker.js.map +1 -0
  356. package/dist/draft/drafts/data/transitions/cn/MG/345/212/250/347/224/273.json +880 -0
  357. package/dist/draft/drafts/data/transitions/cn/hot.json +20419 -0
  358. package/dist/draft/drafts/data/transitions/cn//344/272/222/345/212/250emoji.json +820 -0
  359. package/dist/draft/drafts/data/transitions/cn//345/205/211/346/225/210.json +3355 -0
  360. package/dist/draft/drafts/data/transitions/cn//345/210/206/345/211/262.json +2255 -0
  361. package/dist/draft/drafts/data/transitions/cn//345/217/240/345/214/226.json +2206 -0
  362. package/dist/draft/drafts/data/transitions/cn//345/271/273/347/201/257/347/211/207.json +4175 -0
  363. package/dist/draft/drafts/data/transitions/cn//346/211/255/346/233/262.json +2388 -0
  364. package/dist/draft/drafts/data/transitions/cn//346/213/215/346/221/204.json +1546 -0
  365. package/dist/draft/drafts/data/transitions/cn//346/225/205/351/232/234.json +1616 -0
  366. package/dist/draft/drafts/data/transitions/cn//346/226/260/345/271/264.json +2935 -0
  367. package/dist/draft/drafts/data/transitions/cn//346/234/200/346/226/260.json +3167 -0
  368. package/dist/draft/drafts/data/transitions/cn//346/250/241/347/263/212.json +1535 -0
  369. package/dist/draft/drafts/data/transitions/cn//347/273/274/350/211/272.json +904 -0
  370. package/dist/draft/drafts/data/transitions/cn//350/207/252/347/204/266.json +657 -0
  371. package/dist/draft/drafts/data/transitions/cn//350/277/220/351/225/234.json +5283 -0
  372. package/dist/draft/drafts/data/transitions/cn_transitions.d.ts +3 -0
  373. package/dist/draft/drafts/data/transitions/cn_transitions.d.ts.map +1 -0
  374. package/dist/draft/drafts/data/transitions/cn_transitions.js +52 -0
  375. package/dist/draft/drafts/data/transitions/cn_transitions.js.map +1 -0
  376. package/dist/draft/drafts/data/video/group.d.ts +35 -0
  377. package/dist/draft/drafts/data/video/group.d.ts.map +1 -0
  378. package/dist/draft/drafts/data/video/group.js +7496 -0
  379. package/dist/draft/drafts/data/video/group.js.map +1 -0
  380. package/dist/draft/drafts/data/video/ins.d.ts +19 -0
  381. package/dist/draft/drafts/data/video/ins.d.ts.map +1 -0
  382. package/dist/draft/drafts/data/video/ins.js +3046 -0
  383. package/dist/draft/drafts/data/video/ins.js.map +1 -0
  384. package/dist/draft/drafts/data/video/out.d.ts +35 -0
  385. package/dist/draft/drafts/data/video/out.d.ts.map +1 -0
  386. package/dist/draft/drafts/data/video/out.js +1640 -0
  387. package/dist/draft/drafts/data/video/out.js.map +1 -0
  388. package/dist/draft/drafts/data/video/video_animations.d.ts +7 -0
  389. package/dist/draft/drafts/data/video/video_animations.d.ts.map +1 -0
  390. package/dist/draft/drafts/data/video/video_animations.js +138 -0
  391. package/dist/draft/drafts/data/video/video_animations.js.map +1 -0
  392. package/dist/draft/drafts/data/video/video_animations.json +22380 -0
  393. package/dist/draft/drafts/online_effects.d.ts +3 -0
  394. package/dist/draft/drafts/online_effects.d.ts.map +1 -0
  395. package/dist/draft/drafts/online_effects.js +57 -0
  396. package/dist/draft/drafts/online_effects.js.map +1 -0
  397. package/dist/draft/index.d.ts +23 -0
  398. package/dist/draft/index.d.ts.map +1 -0
  399. package/dist/draft/index.js +20 -0
  400. package/dist/draft/index.js.map +1 -0
  401. package/dist/index.d.ts +62 -0
  402. package/dist/index.d.ts.map +1 -0
  403. package/dist/index.js +90 -0
  404. package/dist/index.js.map +1 -0
  405. package/dist/shared/cloud-client.d.ts +59 -0
  406. package/dist/shared/cloud-client.d.ts.map +1 -0
  407. package/dist/shared/cloud-client.js +121 -0
  408. package/dist/shared/cloud-client.js.map +1 -0
  409. package/dist/shared/draft-service.d.ts +9 -0
  410. package/dist/shared/draft-service.d.ts.map +1 -0
  411. package/dist/shared/draft-service.js +91 -0
  412. package/dist/shared/draft-service.js.map +1 -0
  413. package/dist/shared/errors.d.ts +28 -0
  414. package/dist/shared/errors.d.ts.map +1 -0
  415. package/dist/shared/errors.js +138 -0
  416. package/dist/shared/errors.js.map +1 -0
  417. package/dist/shared/logger.d.ts +6 -0
  418. package/dist/shared/logger.d.ts.map +1 -0
  419. package/dist/shared/logger.js +9 -0
  420. package/dist/shared/logger.js.map +1 -0
  421. package/dist/shared/media-downloader.d.ts +14 -0
  422. package/dist/shared/media-downloader.d.ts.map +1 -0
  423. package/dist/shared/media-downloader.js +94 -0
  424. package/dist/shared/media-downloader.js.map +1 -0
  425. package/dist/shared/media.d.ts +6 -0
  426. package/dist/shared/media.d.ts.map +1 -0
  427. package/dist/shared/media.js +117 -0
  428. package/dist/shared/media.js.map +1 -0
  429. package/dist/template/attachment_pc_common.json +1 -0
  430. package/dist/template/draft_agency_config.json +1 -0
  431. package/dist/template/draft_content.json +132 -0
  432. package/dist/template/draft_meta_info.json +59 -0
  433. package/dist/template/template.tmp +1 -0
  434. package/dist/types/index.d.ts +637 -0
  435. package/dist/types/index.d.ts.map +1 -0
  436. package/dist/types/index.js +4 -0
  437. package/dist/types/index.js.map +1 -0
  438. package/package.json +64 -4
  439. package/index.js +0 -1
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 m007
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,130 @@
1
+ # cutsdk
2
+
3
+ CapCut / 剪映草稿 Node.js SDK。用于代码化、批量化创建剪映标准草稿,可直接被剪映桌面端打开,也可提交云渲染。
4
+
5
+ - npm 包名:`cutsdk`
6
+ - 当前发布版本:`1.1.0`(SDK 和 CLI 统一版本)
7
+ - 版本迭代记录:[CHANGELOG.md](./CHANGELOG.md)
8
+
9
+ - Node.js SDK,用于服务端、脚本和批量生成视频
10
+ - 支持字幕、图片、视频、音频、特效、贴纸、关键帧、遮罩
11
+ - 媒体 URL 自动下载到草稿目录
12
+ - 出入场动画、转场效果、关键词高亮
13
+ - CLI 已拆到 `@cutcli/cutcli`,命令名是 `cutcli`,版本号跟随 `cutsdk`
14
+
15
+ ## 安装
16
+
17
+ ```bash
18
+ npm install cutsdk
19
+ ```
20
+
21
+ AI / 命令行实时调用请安装 CLI:
22
+
23
+ ```bash
24
+ npm install -g @cutcli/cutcli
25
+ cutcli draft create
26
+ ```
27
+
28
+ ## 快速上手
29
+
30
+ ### CLI
31
+
32
+ ```bash
33
+ # 创建草稿
34
+ cutcli draft create --width 1080 --height 1920
35
+
36
+ # 本地拼接优先使用单素材命令,--src 支持本地路径或 URL
37
+ cutcli query text-effects --keyword 火焰 --limit 5
38
+ cutcli text add <draftId> --text "你好世界" --start 0s --duration 3s --font-size 8 --text-effect "红黄火焰综艺花字" --shadow
39
+ cutcli image add <draftId> --src ./素材/bg.png --start 0s --duration 5s --width 1080 --height 1920
40
+ cutcli audio add <draftId> --src ./素材/bgm.mp3 --start 0s --duration 5s
41
+ cutcli video add <draftId> --src ./素材/clip.mp4 --start 5s --duration 3s --width 1080 --height 1920 --mask 圆形
42
+ ```
43
+
44
+ ### Node.js SDK
45
+
46
+ ```typescript
47
+ import { createDraft, addCaptions, addImages, addAudios } from 'cutsdk';
48
+
49
+ const draft = await createDraft({ width: 1080, height: 1920 });
50
+
51
+ await addCaptions({
52
+ draftId: draft.draftId,
53
+ captions: [{ text: '第一句话', start: 0, end: 3000000 }],
54
+ fontSize: 8,
55
+ bold: true,
56
+ });
57
+ ```
58
+
59
+ ### AI Draft Spec
60
+
61
+ 面向 AI 自动生成草稿时,推荐使用单一 JSON Spec:
62
+
63
+ ```typescript
64
+ import { createDraftFromSpec } from 'cutsdk';
65
+
66
+ await createDraftFromSpec({
67
+ version: '1.0',
68
+ canvas: { width: 1080, height: 1920 },
69
+ duration: '3s',
70
+ tracks: [
71
+ {
72
+ type: 'text',
73
+ clips: [{ type: 'caption', text: '你好世界', start: '0s', duration: '3s' }],
74
+ },
75
+ ],
76
+ });
77
+ ```
78
+
79
+ Spec 只是编排层,底层仍复用现有草稿创建和素材添加方法,保证导出的草稿格式不变。
80
+ 顶层 `duration` 可选;不传时会按时间线 clips 自动计算草稿总时长。
81
+
82
+ 需要创建后直接提交云渲染时,可以使用一站式 SDK:
83
+
84
+ ```typescript
85
+ import { createAndRenderDraft } from 'cutsdk';
86
+
87
+ const result = await createAndRenderDraft({
88
+ draft: {
89
+ version: '1.0',
90
+ canvas: { width: 1080, height: 1920 },
91
+ duration: '5s',
92
+ assets: {
93
+ bg: { type: 'image', src: '/tmp/bg.png', width: 1080, height: 1920 },
94
+ },
95
+ tracks: [
96
+ { type: 'visual', clips: [{ type: 'image', asset: 'bg', start: '0s', duration: '5s' }] },
97
+ ],
98
+ },
99
+ output: { draftsDir: '/Users/x013/jy_draft/JianyingPro Drafts', name: '测试草稿' },
100
+ render: { cloud: true },
101
+ });
102
+
103
+ console.log(result.render?.videoUrl);
104
+ ```
105
+
106
+ ## AI Agent 接入
107
+
108
+ CLI 可把项目级 AI 使用说明安装到业务项目:
109
+
110
+ ```bash
111
+ cutcli agents install
112
+ ```
113
+
114
+ 模板位于 `src/api/setup/templates/project/`,包含 `.agents/skills/cut-draft/SKILL.md`、SDK 快速开始、API 速查和示例代码。
115
+
116
+ ## 文档
117
+
118
+ | 文档 | 说明 |
119
+ |------|------|
120
+ | [CLI 命令参考](docs/cli.md) | 所有命令行命令的完整用法 |
121
+ | [API 参考](docs/api.md) | Node.js SDK 所有方法的接口文档 |
122
+ | [完整文档](docs/README.md) | 草稿存储、时间单位、JSON 参数等详细说明 |
123
+
124
+ ## 时间单位
125
+
126
+ 所有时间参数使用 **微秒(μs)**:`1秒 = 1,000,000`
127
+
128
+ ## License
129
+
130
+ [MIT](LICENSE)
@@ -0,0 +1,3 @@
1
+ import type { AddAudiosInput, AddAudiosOutput } from '../../types';
2
+ export declare function addAudios(params: AddAudiosInput): Promise<AddAudiosOutput>;
3
+ //# sourceMappingURL=add-audios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-audios.d.ts","sourceRoot":"","sources":["../../../src/api/audios/add-audios.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAa,MAAM,aAAa,CAAC;AAI9E,wBAAsB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA4BhF"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addAudios = addAudios;
4
+ const draft_service_1 = require("../../shared/draft-service");
5
+ const errors_1 = require("../../shared/errors");
6
+ const media_downloader_1 = require("../../shared/media-downloader");
7
+ const { Draft, TrackTypes } = require('../../draft');
8
+ async function addAudios(params) {
9
+ const audioInfos = typeof params.audioInfos === 'string'
10
+ ? (0, errors_1.parseSdkJson)(params.audioInfos, 'audioInfos', 'addAudios')
11
+ : params.audioInfos;
12
+ const draft = await (0, draft_service_1.loadDraft)(params.draftId);
13
+ const track = draft.add_tracks(TrackTypes.AUDIO);
14
+ const audioIds = [];
15
+ const resourceDir = (0, media_downloader_1.getResourceDir)(params.draftId);
16
+ for (const ai of audioInfos) {
17
+ const { fileName } = await (0, media_downloader_1.downloadFile)(ai.audioUrl, resourceDir, '.mp3');
18
+ const localPath = (0, media_downloader_1.toPlaceholderPath)(fileName);
19
+ const material = draft.create_materials_audio(localPath, ai.duration);
20
+ const segment = track.addSegments(material.id, ai.start, ai.end - ai.start);
21
+ if (ai.audioEffect) {
22
+ const effect = draft.create_materials_audio_effects(ai.audioEffect);
23
+ segment.extra_material_refs.push(effect.id);
24
+ material.check_flag = 3;
25
+ }
26
+ if (ai.volume != null)
27
+ segment.volume = ai.volume;
28
+ audioIds.push(material.id);
29
+ }
30
+ const result = await (0, draft_service_1.saveDraft)(draft, params.draftId);
31
+ return { draftId: result.draftId, trackId: track.id, audioIds };
32
+ }
33
+ //# sourceMappingURL=add-audios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-audios.js","sourceRoot":"","sources":["../../../src/api/audios/add-audios.ts"],"names":[],"mappings":";;AAOA,8BA4BC;AAnCD,8DAAkE;AAClE,gDAAmD;AACnD,oEAAgG;AAGhG,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9C,KAAK,UAAU,SAAS,CAAC,MAAsB;IACpD,MAAM,UAAU,GAAgB,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACnE,CAAC,CAAC,IAAA,qBAAY,EAAc,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC;QACzE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;IACtB,MAAM,KAAK,GAAG,MAAM,IAAA,yBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,IAAA,iCAAc,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,+BAAY,EAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAA,oCAAiB,EAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAE5E,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YACpE,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,IAAI,IAAI;YAAE,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QAElD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAS,EAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;AAClE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AudioInfo } from '../../types';
2
+ export declare function getAudios(params: {
3
+ draftId: string;
4
+ }): Promise<AudioInfo[]>;
5
+ //# sourceMappingURL=get-audios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-audios.d.ts","sourceRoot":"","sources":["../../../src/api/audios/get-audios.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAsB,SAAS,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAqBjF"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAudios = getAudios;
4
+ const draft_service_1 = require("../../shared/draft-service");
5
+ async function getAudios(params) {
6
+ const draft = await (0, draft_service_1.loadDraft)(params.draftId);
7
+ const results = [];
8
+ const audioMaterials = draft.materials?.audios || [];
9
+ for (const track of draft.tracks || []) {
10
+ if (track.type !== 'audio')
11
+ continue;
12
+ for (const seg of track.segments || []) {
13
+ const mat = audioMaterials.find((m) => m.id === seg.material_id);
14
+ results.push({
15
+ segmentId: seg.id,
16
+ trackId: track.id,
17
+ materialUrl: mat?.path || '',
18
+ start: seg.target_timerange?.start || 0,
19
+ duration: seg.target_timerange?.duration || 0,
20
+ volume: seg.volume ?? 1,
21
+ materialId: seg.material_id,
22
+ });
23
+ }
24
+ }
25
+ return results;
26
+ }
27
+ //# sourceMappingURL=get-audios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-audios.js","sourceRoot":"","sources":["../../../src/api/audios/get-audios.ts"],"names":[],"mappings":";;AAGA,8BAqBC;AAxBD,8DAAuD;AAGhD,KAAK,UAAU,SAAS,CAAC,MAA2B;IACzD,MAAM,KAAK,GAAG,MAAM,IAAA,yBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC;IAErD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACrC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,WAAW,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;gBAC5B,KAAK,EAAE,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC;gBACvC,QAAQ,EAAE,GAAG,CAAC,gBAAgB,EAAE,QAAQ,IAAI,CAAC;gBAC7C,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC;gBACvB,UAAU,EAAE,GAAG,CAAC,WAAW;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AddCaptionsInput, AddCaptionsOutput } from '../../types';
2
+ export declare function addCaptions(params: AddCaptionsInput): Promise<AddCaptionsOutput>;
3
+ //# sourceMappingURL=add-captions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-captions.d.ts","sourceRoot":"","sources":["../../../src/api/captions/add-captions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAIpF,wBAAsB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6KtF"}
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addCaptions = addCaptions;
4
+ const uuid_1 = require("uuid");
5
+ const draft_service_1 = require("../../shared/draft-service");
6
+ const errors_1 = require("../../shared/errors");
7
+ const { Draft, TrackTypes, TextStyleGenerator } = require('../../draft');
8
+ async function addCaptions(params) {
9
+ const captions = typeof params.captions === 'string'
10
+ ? (0, errors_1.parseSdkJson)(params.captions, 'captions', 'addCaptions')
11
+ : params.captions;
12
+ const draft = await (0, draft_service_1.loadDraft)(params.draftId);
13
+ const font = params.font || '';
14
+ const alpha = (params.alpha != null && params.alpha >= 0 && params.alpha <= 1) ? params.alpha : 1;
15
+ const alignment = [0, 1, 2, 3, 4, 5].includes(params.alignment || 1) ? (params.alignment || 1) : 1;
16
+ const track = draft.add_tracks(TrackTypes.TEXT);
17
+ const textIds = [];
18
+ const segIds = [];
19
+ const segmentInfos = [];
20
+ for (let i = 0; i < captions.length; i++) {
21
+ const cap = captions[i];
22
+ const textMat = draft.create_materials_subtitle(cap.text, font);
23
+ const effectId = (0, uuid_1.v4)();
24
+ textMat.alignment = alignment;
25
+ if (alignment === 3) {
26
+ textMat.alignment = 3;
27
+ textMat.typesetting = 1;
28
+ }
29
+ if (alignment === 4) {
30
+ textMat.alignment = 1;
31
+ textMat.typesetting = 1;
32
+ }
33
+ if (alignment === 5) {
34
+ textMat.alignment = 4;
35
+ textMat.typesetting = 1;
36
+ }
37
+ textMat.global_alpha = alpha;
38
+ if (params.textColor || params.fontSize || params.underline || params.bold || params.italic || params.textEffect) {
39
+ const fontSize = params.fontSize || 15;
40
+ const textColor = params.textColor || '#ffffff';
41
+ textMat.text_color = textColor;
42
+ const gen = new TextStyleGenerator(cap.text);
43
+ gen.addStyle(0, cap.text.length, textColor, fontSize);
44
+ if (font) {
45
+ const fontInfo = draft.find_font_by_name(font);
46
+ if (fontInfo) {
47
+ for (const style of gen.styles) {
48
+ style.font.id = fontInfo.id;
49
+ style.font.path = `${fontInfo.name}.ttf`;
50
+ }
51
+ }
52
+ }
53
+ let content = gen.generateJson();
54
+ if (params.underline) {
55
+ const parsed = JSON.parse(content);
56
+ for (const s of parsed.styles)
57
+ s.underline = true;
58
+ content = JSON.stringify(parsed);
59
+ }
60
+ if (params.bold) {
61
+ const parsed = JSON.parse(content);
62
+ for (const s of parsed.styles)
63
+ s.bold = true;
64
+ content = JSON.stringify(parsed);
65
+ }
66
+ if (params.italic) {
67
+ const parsed = JSON.parse(content);
68
+ for (const s of parsed.styles)
69
+ s.italic = true;
70
+ content = JSON.stringify(parsed);
71
+ }
72
+ if (params.textEffect) {
73
+ const info = await draft.fetch_huazi_by_title(params.textEffect);
74
+ if (info) {
75
+ draft.materials.effects.push({
76
+ id: effectId, type: 'text_effect', apply_target_type: 0,
77
+ effect_id: info.common_attr.effect_id,
78
+ resource_id: info.common_attr.effect_id,
79
+ value: 1.0, source_platform: 1,
80
+ });
81
+ const parsed = JSON.parse(content);
82
+ applyEffectStyle(parsed, info.common_attr.effect_id);
83
+ content = JSON.stringify(parsed);
84
+ }
85
+ }
86
+ textMat.content = content;
87
+ }
88
+ if (cap.keyword) {
89
+ const keywordContent = generateKeywordStyle(cap.text, cap.keyword, cap.keywordColor, cap.fontSize, cap.keywordFontSize, params.textColor || '#ffffff');
90
+ const parsed = JSON.parse(keywordContent);
91
+ if (font) {
92
+ const fontInfo = draft.find_font_by_name(font);
93
+ if (fontInfo) {
94
+ for (const s of parsed.styles) {
95
+ s.font.id = fontInfo.id;
96
+ s.font.path = `${fontInfo.name}.ttf`;
97
+ }
98
+ }
99
+ }
100
+ const effect = draft.materials.effects.find((item) => item.id === effectId && item.type === 'text_effect');
101
+ if (effect?.effect_id)
102
+ applyEffectStyle(parsed, effect.effect_id);
103
+ textMat.content = JSON.stringify(parsed);
104
+ }
105
+ if (params.underline || params.bold || params.italic) {
106
+ const parsed = JSON.parse(textMat.content);
107
+ for (const s of parsed.styles) {
108
+ if (params.underline)
109
+ s.underline = true;
110
+ if (params.bold)
111
+ s.bold = true;
112
+ if (params.italic)
113
+ s.italic = true;
114
+ }
115
+ textMat.content = JSON.stringify(parsed);
116
+ }
117
+ if (params.letterSpacing)
118
+ textMat.letter_spacing = params.letterSpacing / 20;
119
+ if (params.lineSpacing)
120
+ textMat.line_spacing = params.lineSpacing / 20;
121
+ if (params.borderColor) {
122
+ const gen2 = new TextStyleGenerator(cap.text);
123
+ textMat.border_color = params.borderColor;
124
+ textMat.border_width = 0.08018936216831207;
125
+ textMat.check_flag = 15;
126
+ const parsed = JSON.parse(textMat.content);
127
+ for (const s of parsed.styles) {
128
+ s.strokes = [{ alpha: 1, content: { render_type: 'solid', solid: { alpha: 1, color: gen2.hexToRgbArray(params.borderColor) } }, width: 0.07999999821186066 }];
129
+ }
130
+ textMat.content = JSON.stringify(parsed);
131
+ }
132
+ if (params.styleText)
133
+ textMat.content = cap.text;
134
+ if (params.hasShadow) {
135
+ textMat.has_shadow = true;
136
+ const si = params.shadowInfo || {};
137
+ textMat.shadow_color = si.shadowColor || '#000000';
138
+ textMat.shadow_alpha = si.shadowAlpha ?? 0.9;
139
+ textMat.shadow_diffuse = (si.shadowDiffuse ?? 15) / 100 / 6;
140
+ textMat.shadow_distance = si.shadowDistance ?? 5;
141
+ textMat.shadow_angle = si.shadowAngle ?? -45;
142
+ const parsed = JSON.parse(textMat.content);
143
+ let shadowColor = [0, 0, 0];
144
+ if (si.shadowColor) {
145
+ let hex = si.shadowColor.replace(/^#/, '');
146
+ if (hex.length === 3)
147
+ hex = hex.split('').map((c) => c + c).join('');
148
+ const b = parseInt(hex, 16);
149
+ shadowColor = [(b >> 16) & 255, (b >> 8) & 255, b & 255];
150
+ }
151
+ parsed.styles[0].shadows = [{
152
+ diffuse: textMat.shadow_diffuse, angle: textMat.shadow_angle,
153
+ content: { solid: { color: shadowColor } },
154
+ distance: textMat.shadow_distance, alpha: textMat.shadow_alpha,
155
+ }];
156
+ textMat.content = JSON.stringify(parsed);
157
+ }
158
+ const segment = track.addSegments(textMat.id, cap.start, cap.end - cap.start);
159
+ segment.extra_material_refs.push(effectId);
160
+ if (params.scaleX)
161
+ segment.clip.scale.x = params.scaleX;
162
+ if (params.scaleY)
163
+ segment.clip.scale.y = params.scaleY;
164
+ if (params.transformX != null)
165
+ segment.clip.transform.x = params.transformX;
166
+ if (params.transformY != null)
167
+ segment.clip.transform.y = params.transformY;
168
+ const inAnim = cap.inAnimation || '';
169
+ const outAnim = cap.outAnimation || '';
170
+ const loopAnim = cap.loopAnimation || '';
171
+ if (inAnim || outAnim || loopAnim) {
172
+ const anims = draft.create_materials_text_animations(inAnim, outAnim, loopAnim);
173
+ segment.extra_material_refs.push(anims.id);
174
+ if (cap.inAnimationDuration)
175
+ for (const a of anims.animations)
176
+ if (a?.type === 'in')
177
+ a.duration = cap.inAnimationDuration;
178
+ if (cap.outAnimationDuration)
179
+ for (const a of anims.animations)
180
+ if (a?.type === 'out')
181
+ a.duration = cap.outAnimationDuration;
182
+ if (cap.loopAnimationDuration)
183
+ for (const a of anims.animations)
184
+ if (a?.type === 'loop')
185
+ a.duration = cap.loopAnimationDuration;
186
+ }
187
+ textIds.push(textMat.id);
188
+ segIds.push(segment.id);
189
+ segmentInfos.push({ id: segment.id, start: cap.start, end: cap.end });
190
+ }
191
+ const result = await (0, draft_service_1.saveDraft)(draft, params.draftId);
192
+ return { draftId: result.draftId, trackId: track.id, textIds: textIds, segmentIds: segIds, segmentInfos };
193
+ }
194
+ function generateKeywordStyle(text, keyword, kwColor, fontSize, kwFontSize, textColor = '#ffffff') {
195
+ const keywords = keyword.split('|');
196
+ const keywordColor = kwColor || '#ff7100';
197
+ const defaultFontSize = fontSize || 15;
198
+ const keywordFontSize = kwFontSize || 15;
199
+ const gen = new TextStyleGenerator(text);
200
+ let idx = 0;
201
+ keywords.forEach(kw => {
202
+ const ki = text.indexOf(kw, idx);
203
+ if (ki !== -1) {
204
+ gen.addStyle(idx, ki, textColor, defaultFontSize);
205
+ gen.addStyle(ki, ki + kw.length, keywordColor, keywordFontSize, true);
206
+ idx = ki + kw.length;
207
+ }
208
+ });
209
+ if (idx < text.length)
210
+ gen.addStyle(idx, text.length, textColor, defaultFontSize);
211
+ return gen.generateJson();
212
+ }
213
+ function applyEffectStyle(content, effectId) {
214
+ if (!Array.isArray(content.styles))
215
+ return;
216
+ for (const style of content.styles) {
217
+ style.effectStyle = { id: effectId };
218
+ }
219
+ }
220
+ //# sourceMappingURL=add-captions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-captions.js","sourceRoot":"","sources":["../../../src/api/captions/add-captions.ts"],"names":[],"mappings":";;AAQA,kCA6KC;AArLD,+BAAoC;AACpC,8DAAkE;AAClE,gDAAmD;AAInD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAElE,KAAK,UAAU,WAAW,CAAC,MAAwB;IACxD,MAAM,QAAQ,GAAkB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACjE,CAAC,CAAC,IAAA,qBAAY,EAAgB,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;QACzE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IACpB,MAAM,KAAK,GAAG,MAAM,IAAA,yBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnG,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAiD,EAAE,CAAC;IAEtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAA,SAAM,GAAE,CAAC;QAE1B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QAAC,CAAC;QACxE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QAAC,CAAC;QACxE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QAAC,CAAC;QACxE,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;QAE7B,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACjH,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;YAChD,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;YAE/B,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEtD,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;wBAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,MAAM,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;YAEjC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;oBAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;gBAClD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;oBAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC7C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM;oBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC/C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACjE,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;wBAC3B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;wBACvD,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;wBACrC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;wBACvC,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;qBAC/B,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBACrD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC5B,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,oBAAoB,CACzC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS,CAC1G,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;wBAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,MAAM,CAAC;oBAAC,CAAC;gBACnG,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YAChH,IAAI,MAAM,EAAE,SAAS;gBAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAClE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9B,IAAI,MAAM,CAAC,SAAS;oBAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzC,IAAI,MAAM,CAAC,IAAI;oBAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC/B,IAAI,MAAM,CAAC,MAAM;oBAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,aAAa;YAAE,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC;QAC7E,IAAI,MAAM,CAAC,WAAW;YAAE,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QAEvE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;YAC1C,OAAO,CAAC,YAAY,GAAG,mBAAmB,CAAC;YAC3C,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC9B,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAChK,CAAC;YACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,SAAS;YAAE,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QAEjD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;YAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YACnC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,WAAW,IAAI,SAAS,CAAC;YACnD,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,WAAW,IAAI,GAAG,CAAC;YAC7C,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC5D,OAAO,CAAC,eAAe,GAAG,EAAE,CAAC,cAAc,IAAI,CAAC,CAAC;YACjD,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;oBAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7E,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC5B,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC;oBAC1B,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY;oBAC5D,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;oBAC1C,QAAQ,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY;iBAC/D,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxD,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxD,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5E,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;QAE5E,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;QACzC,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,KAAK,CAAC,gCAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChF,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,mBAAmB;gBAAE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU;oBAAE,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI;wBAAE,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,mBAAmB,CAAC;YAC1H,IAAI,GAAG,CAAC,oBAAoB;gBAAE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU;oBAAE,IAAI,CAAC,EAAE,IAAI,KAAK,KAAK;wBAAE,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC;YAC7H,IAAI,GAAG,CAAC,qBAAqB;gBAAE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU;oBAAE,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM;wBAAE,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,qBAAqB,CAAC;QAClI,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxB,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAS,EAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAC5G,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,OAAe,EAAE,OAAgB,EAAE,QAAiB,EAAE,UAAmB,EAAE,SAAS,GAAG,SAAS;IAC1I,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,OAAO,IAAI,SAAS,CAAC;IAC1C,MAAM,eAAe,GAAG,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,eAAe,GAAG,UAAU,IAAI,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACd,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YAClD,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YACtE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM;QAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAClF,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAY,EAAE,QAAgB;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO;IAC3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IACvC,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { CaptionInfo } from '../../types';
2
+ export declare function getCaptions(params: {
3
+ draftId: string;
4
+ }): Promise<CaptionInfo[]>;
5
+ //# sourceMappingURL=get-captions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-captions.d.ts","sourceRoot":"","sources":["../../../src/api/captions/get-captions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAsB,WAAW,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA6BrF"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCaptions = getCaptions;
4
+ const draft_service_1 = require("../../shared/draft-service");
5
+ async function getCaptions(params) {
6
+ const draft = await (0, draft_service_1.loadDraft)(params.draftId);
7
+ const results = [];
8
+ const textMaterials = draft.materials?.texts || [];
9
+ for (const track of draft.tracks || []) {
10
+ if (track.type !== 'text')
11
+ continue;
12
+ for (const seg of track.segments || []) {
13
+ const mat = textMaterials.find((m) => m.id === seg.material_id);
14
+ let text = '';
15
+ if (mat) {
16
+ try {
17
+ const parsed = JSON.parse(mat.content);
18
+ text = parsed.text || mat.content;
19
+ }
20
+ catch {
21
+ text = mat.content || '';
22
+ }
23
+ }
24
+ results.push({
25
+ segmentId: seg.id,
26
+ trackId: track.id,
27
+ text,
28
+ start: seg.target_timerange?.start || 0,
29
+ duration: seg.target_timerange?.duration || 0,
30
+ materialId: seg.material_id,
31
+ });
32
+ }
33
+ }
34
+ return results;
35
+ }
36
+ //# sourceMappingURL=get-captions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-captions.js","sourceRoot":"","sources":["../../../src/api/captions/get-captions.ts"],"names":[],"mappings":";;AAGA,kCA6BC;AAhCD,8DAAuD;AAGhD,KAAK,UAAU,WAAW,CAAC,MAA2B;IAC3D,MAAM,KAAK,GAAG,MAAM,IAAA,yBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC;IAEnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACpC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC;gBACpC,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,IAAI;gBACJ,KAAK,EAAE,GAAG,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC;gBACvC,QAAQ,EAAE,GAAG,CAAC,gBAAgB,EAAE,QAAQ,IAAI,CAAC;gBAC7C,UAAU,EAAE,GAAG,CAAC,WAAW;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CloudRenderJob, RenderDraftInput, RenderDraftOutput } from '../../types';
2
+ export declare function renderDraft(input: RenderDraftInput): Promise<RenderDraftOutput>;
3
+ export declare function getCloudRenderStatus(params: {
4
+ taskId: string;
5
+ apiToken?: string;
6
+ }): Promise<Record<string, unknown>>;
7
+ export declare function normalizeCloudRenderPayload(payload: any, fallbackId?: string): CloudRenderJob;
8
+ export declare function isCloudRenderRunningStatus(status: unknown): boolean;
9
+ export declare function isCloudRenderSuccessStatus(status: unknown): boolean;
10
+ export declare function isCloudRenderFailureStatus(status: unknown): boolean;
11
+ //# sourceMappingURL=render-draft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMvF,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4DrF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUnC;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,SAAK,GAAG,cAAc,CAsBzF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGnE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGnE"}