Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Commit
·
051e9e4
1
Parent(s):
5e3e0ca
update dependencies
Browse files- package-lock.json +53 -285
- package.json +4 -4
- src/bug-in-bun/aitube_ffmpeg/analyze/extractFirstFrame.ts +8 -8
- src/bug-in-bun/aitube_ffmpeg/concatenate/concatenateAudio.ts +2 -2
- src/bug-in-bun/aitube_ffmpeg/concatenate/concatenateVideos.ts +2 -2
- src/bug-in-bun/aitube_ffmpeg/concatenate/concatenateVideosAndMergeAudio.ts +2 -2
- src/bug-in-bun/aitube_ffmpeg/concatenate/concatenateVideosWithAudio.ts +2 -2
- src/bug-in-bun/aitube_ffmpeg/concatenate/createVideoFromFrames.ts +4 -4
- src/bug-in-bun/aitube_ffmpeg/overlay/addImageToVideo.ts +2 -2
- src/bug-in-bun/aitube_ffmpeg/overlay/htmlToBase64Png.ts +3 -3
- src/bug-in-bun/aitube_ffmpeg/overlay/htmlToBase64PngWorker.js +3 -3
- src/bug-in-bun/aitube_ffmpeg/overlay/imageToVideoBase64.ts +3 -3
- src/bug-in-bun/aitube_ffmpeg/transform/scaleVideo.ts +3 -3
package-lock.json
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
{
|
2 |
"name": "ai-tube-clap-exporter",
|
3 |
-
"version": "1.0.
|
4 |
"lockfileVersion": 3,
|
5 |
"requires": true,
|
6 |
"packages": {
|
7 |
"": {
|
8 |
"name": "ai-tube-clap-exporter",
|
9 |
-
"version": "1.0.
|
10 |
"license": "Apache License",
|
11 |
"dependencies": {
|
12 |
-
"@aitube/clap": "0.0.
|
13 |
"@aitube/encoders": "0.0.0",
|
14 |
-
"@aitube/io": "0.0.
|
15 |
"dotenv": "^16.4.5",
|
16 |
"express": "^4.19.2",
|
17 |
"fluent-ffmpeg": "^2.1.3",
|
18 |
"pm2": "^5.3.1",
|
19 |
-
"puppeteer": "^22.
|
20 |
"query-string": "^9.0.0",
|
21 |
"sharp": "^0.33.4",
|
22 |
"ts-node": "^10.9.2"
|
@@ -29,15 +29,14 @@
|
|
29 |
}
|
30 |
},
|
31 |
"node_modules/@aitube/clap": {
|
32 |
-
"version": "0.0.
|
33 |
-
"resolved": "https://registry.npmjs.org/@aitube/clap/-/clap-0.0.
|
34 |
-
"integrity": "sha512
|
35 |
"dependencies": {
|
36 |
-
"pure-uuid": "^1.8.1"
|
37 |
-
"yaml": "^2.4.2"
|
38 |
},
|
39 |
"peerDependencies": {
|
40 |
-
"
|
41 |
}
|
42 |
},
|
43 |
"node_modules/@aitube/encoders": {
|
@@ -49,21 +48,21 @@
|
|
49 |
}
|
50 |
},
|
51 |
"node_modules/@aitube/io": {
|
52 |
-
"version": "0.0.
|
53 |
-
"resolved": "https://registry.npmjs.org/@aitube/io/-/io-0.0.
|
54 |
-
"integrity": "sha512
|
55 |
"dependencies": {
|
56 |
"mime-types": "^2.1.35",
|
57 |
-
"
|
58 |
-
"
|
59 |
}
|
60 |
},
|
61 |
"node_modules/@babel/code-frame": {
|
62 |
-
"version": "7.24.
|
63 |
-
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.
|
64 |
-
"integrity": "sha512-
|
65 |
"dependencies": {
|
66 |
-
"@babel/highlight": "^7.24.
|
67 |
"picocolors": "^1.0.0"
|
68 |
},
|
69 |
"engines": {
|
@@ -71,19 +70,19 @@
|
|
71 |
}
|
72 |
},
|
73 |
"node_modules/@babel/helper-validator-identifier": {
|
74 |
-
"version": "7.24.
|
75 |
-
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.
|
76 |
-
"integrity": "sha512-
|
77 |
"engines": {
|
78 |
"node": ">=6.9.0"
|
79 |
}
|
80 |
},
|
81 |
"node_modules/@babel/highlight": {
|
82 |
-
"version": "7.24.
|
83 |
-
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.
|
84 |
-
"integrity": "sha512-
|
85 |
"dependencies": {
|
86 |
-
"@babel/helper-validator-identifier": "^7.24.
|
87 |
"chalk": "^2.4.2",
|
88 |
"js-tokens": "^4.0.0",
|
89 |
"picocolors": "^1.0.0"
|
@@ -1003,82 +1002,6 @@
|
|
1003 |
"@jridgewell/sourcemap-codec": "^1.4.10"
|
1004 |
}
|
1005 |
},
|
1006 |
-
"node_modules/@opencensus/core": {
|
1007 |
-
"version": "0.0.9",
|
1008 |
-
"resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz",
|
1009 |
-
"integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==",
|
1010 |
-
"dependencies": {
|
1011 |
-
"continuation-local-storage": "^3.2.1",
|
1012 |
-
"log-driver": "^1.2.7",
|
1013 |
-
"semver": "^5.5.0",
|
1014 |
-
"shimmer": "^1.2.0",
|
1015 |
-
"uuid": "^3.2.1"
|
1016 |
-
},
|
1017 |
-
"engines": {
|
1018 |
-
"node": ">=6.0"
|
1019 |
-
}
|
1020 |
-
},
|
1021 |
-
"node_modules/@opencensus/core/node_modules/semver": {
|
1022 |
-
"version": "5.7.2",
|
1023 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
1024 |
-
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
1025 |
-
"bin": {
|
1026 |
-
"semver": "bin/semver"
|
1027 |
-
}
|
1028 |
-
},
|
1029 |
-
"node_modules/@opencensus/core/node_modules/uuid": {
|
1030 |
-
"version": "3.4.0",
|
1031 |
-
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
1032 |
-
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
1033 |
-
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
|
1034 |
-
"bin": {
|
1035 |
-
"uuid": "bin/uuid"
|
1036 |
-
}
|
1037 |
-
},
|
1038 |
-
"node_modules/@opencensus/propagation-b3": {
|
1039 |
-
"version": "0.0.8",
|
1040 |
-
"resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz",
|
1041 |
-
"integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==",
|
1042 |
-
"dependencies": {
|
1043 |
-
"@opencensus/core": "^0.0.8",
|
1044 |
-
"uuid": "^3.2.1"
|
1045 |
-
},
|
1046 |
-
"engines": {
|
1047 |
-
"node": ">=6.0"
|
1048 |
-
}
|
1049 |
-
},
|
1050 |
-
"node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": {
|
1051 |
-
"version": "0.0.8",
|
1052 |
-
"resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz",
|
1053 |
-
"integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==",
|
1054 |
-
"dependencies": {
|
1055 |
-
"continuation-local-storage": "^3.2.1",
|
1056 |
-
"log-driver": "^1.2.7",
|
1057 |
-
"semver": "^5.5.0",
|
1058 |
-
"shimmer": "^1.2.0",
|
1059 |
-
"uuid": "^3.2.1"
|
1060 |
-
},
|
1061 |
-
"engines": {
|
1062 |
-
"node": ">=6.0"
|
1063 |
-
}
|
1064 |
-
},
|
1065 |
-
"node_modules/@opencensus/propagation-b3/node_modules/semver": {
|
1066 |
-
"version": "5.7.2",
|
1067 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
1068 |
-
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
1069 |
-
"bin": {
|
1070 |
-
"semver": "bin/semver"
|
1071 |
-
}
|
1072 |
-
},
|
1073 |
-
"node_modules/@opencensus/propagation-b3/node_modules/uuid": {
|
1074 |
-
"version": "3.4.0",
|
1075 |
-
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
1076 |
-
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
1077 |
-
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
|
1078 |
-
"bin": {
|
1079 |
-
"uuid": "bin/uuid"
|
1080 |
-
}
|
1081 |
-
},
|
1082 |
"node_modules/@pm2/agent": {
|
1083 |
"version": "2.0.3",
|
1084 |
"resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.3.tgz",
|
@@ -1156,12 +1079,10 @@
|
|
1156 |
}
|
1157 |
},
|
1158 |
"node_modules/@pm2/io": {
|
1159 |
-
"version": "
|
1160 |
-
"resolved": "https://registry.npmjs.org/@pm2/io/-/io-
|
1161 |
-
"integrity": "sha512-
|
1162 |
"dependencies": {
|
1163 |
-
"@opencensus/core": "0.0.9",
|
1164 |
-
"@opencensus/propagation-b3": "0.0.8",
|
1165 |
"async": "~2.6.1",
|
1166 |
"debug": "~4.3.1",
|
1167 |
"eventemitter2": "^6.3.1",
|
@@ -1690,36 +1611,11 @@
|
|
1690 |
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
|
1691 |
"integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
|
1692 |
},
|
1693 |
-
"node_modules/async-listener": {
|
1694 |
-
"version": "0.6.10",
|
1695 |
-
"resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz",
|
1696 |
-
"integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==",
|
1697 |
-
"dependencies": {
|
1698 |
-
"semver": "^5.3.0",
|
1699 |
-
"shimmer": "^1.1.0"
|
1700 |
-
},
|
1701 |
-
"engines": {
|
1702 |
-
"node": "<=0.11.8 || >0.11.10"
|
1703 |
-
}
|
1704 |
-
},
|
1705 |
-
"node_modules/async-listener/node_modules/semver": {
|
1706 |
-
"version": "5.7.2",
|
1707 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
1708 |
-
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
1709 |
-
"bin": {
|
1710 |
-
"semver": "bin/semver"
|
1711 |
-
}
|
1712 |
-
},
|
1713 |
"node_modules/b4a": {
|
1714 |
"version": "1.6.6",
|
1715 |
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
|
1716 |
"integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg=="
|
1717 |
},
|
1718 |
-
"node_modules/balanced-match": {
|
1719 |
-
"version": "1.0.2",
|
1720 |
-
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
1721 |
-
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
1722 |
-
},
|
1723 |
"node_modules/bare-events": {
|
1724 |
"version": "2.2.2",
|
1725 |
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz",
|
@@ -1744,9 +1640,9 @@
|
|
1744 |
"optional": true
|
1745 |
},
|
1746 |
"node_modules/bare-path": {
|
1747 |
-
"version": "2.1.
|
1748 |
-
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.
|
1749 |
-
"integrity": "sha512-
|
1750 |
"optional": true,
|
1751 |
"dependencies": {
|
1752 |
"bare-os": "^2.1.0"
|
@@ -1838,15 +1734,6 @@
|
|
1838 |
"npm": "1.2.8000 || >= 1.4.16"
|
1839 |
}
|
1840 |
},
|
1841 |
-
"node_modules/brace-expansion": {
|
1842 |
-
"version": "1.1.11",
|
1843 |
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
1844 |
-
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
1845 |
-
"dependencies": {
|
1846 |
-
"balanced-match": "^1.0.0",
|
1847 |
-
"concat-map": "0.0.1"
|
1848 |
-
}
|
1849 |
-
},
|
1850 |
"node_modules/braces": {
|
1851 |
"version": "3.0.3",
|
1852 |
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
@@ -2047,11 +1934,6 @@
|
|
2047 |
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
|
2048 |
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
|
2049 |
},
|
2050 |
-
"node_modules/concat-map": {
|
2051 |
-
"version": "0.0.1",
|
2052 |
-
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
2053 |
-
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
|
2054 |
-
},
|
2055 |
"node_modules/content-disposition": {
|
2056 |
"version": "0.5.4",
|
2057 |
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
|
@@ -2071,15 +1953,6 @@
|
|
2071 |
"node": ">= 0.6"
|
2072 |
}
|
2073 |
},
|
2074 |
-
"node_modules/continuation-local-storage": {
|
2075 |
-
"version": "3.2.1",
|
2076 |
-
"resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz",
|
2077 |
-
"integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==",
|
2078 |
-
"dependencies": {
|
2079 |
-
"async-listener": "^0.6.0",
|
2080 |
-
"emitter-listener": "^1.1.1"
|
2081 |
-
}
|
2082 |
-
},
|
2083 |
"node_modules/cookie": {
|
2084 |
"version": "0.6.0",
|
2085 |
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
@@ -2245,14 +2118,6 @@
|
|
2245 |
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
2246 |
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
|
2247 |
},
|
2248 |
-
"node_modules/emitter-listener": {
|
2249 |
-
"version": "1.1.2",
|
2250 |
-
"resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz",
|
2251 |
-
"integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==",
|
2252 |
-
"dependencies": {
|
2253 |
-
"shimmer": "^1.2.0"
|
2254 |
-
}
|
2255 |
-
},
|
2256 |
"node_modules/emoji-regex": {
|
2257 |
"version": "8.0.0",
|
2258 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
@@ -2654,11 +2519,6 @@
|
|
2654 |
"node": ">=14.14"
|
2655 |
}
|
2656 |
},
|
2657 |
-
"node_modules/fs.realpath": {
|
2658 |
-
"version": "1.0.0",
|
2659 |
-
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
2660 |
-
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
|
2661 |
-
},
|
2662 |
"node_modules/fsevents": {
|
2663 |
"version": "2.3.3",
|
2664 |
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
@@ -2777,25 +2637,6 @@
|
|
2777 |
"resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz",
|
2778 |
"integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg=="
|
2779 |
},
|
2780 |
-
"node_modules/glob": {
|
2781 |
-
"version": "7.2.3",
|
2782 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
|
2783 |
-
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
|
2784 |
-
"dependencies": {
|
2785 |
-
"fs.realpath": "^1.0.0",
|
2786 |
-
"inflight": "^1.0.4",
|
2787 |
-
"inherits": "2",
|
2788 |
-
"minimatch": "^3.1.1",
|
2789 |
-
"once": "^1.3.0",
|
2790 |
-
"path-is-absolute": "^1.0.0"
|
2791 |
-
},
|
2792 |
-
"engines": {
|
2793 |
-
"node": "*"
|
2794 |
-
},
|
2795 |
-
"funding": {
|
2796 |
-
"url": "https://github.com/sponsors/isaacs"
|
2797 |
-
}
|
2798 |
-
},
|
2799 |
"node_modules/glob-parent": {
|
2800 |
"version": "5.1.2",
|
2801 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
@@ -3001,15 +2842,6 @@
|
|
3001 |
"url": "https://github.com/sponsors/sindresorhus"
|
3002 |
}
|
3003 |
},
|
3004 |
-
"node_modules/inflight": {
|
3005 |
-
"version": "1.0.6",
|
3006 |
-
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
3007 |
-
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
3008 |
-
"dependencies": {
|
3009 |
-
"once": "^1.3.0",
|
3010 |
-
"wrappy": "1"
|
3011 |
-
}
|
3012 |
-
},
|
3013 |
"node_modules/inherits": {
|
3014 |
"version": "2.0.4",
|
3015 |
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
@@ -3184,14 +3016,6 @@
|
|
3184 |
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
3185 |
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
3186 |
},
|
3187 |
-
"node_modules/log-driver": {
|
3188 |
-
"version": "1.2.7",
|
3189 |
-
"resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz",
|
3190 |
-
"integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==",
|
3191 |
-
"engines": {
|
3192 |
-
"node": ">=0.8.6"
|
3193 |
-
}
|
3194 |
-
},
|
3195 |
"node_modules/lru-cache": {
|
3196 |
"version": "7.18.3",
|
3197 |
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
|
@@ -3256,17 +3080,6 @@
|
|
3256 |
"node": ">= 0.6"
|
3257 |
}
|
3258 |
},
|
3259 |
-
"node_modules/minimatch": {
|
3260 |
-
"version": "3.1.2",
|
3261 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
3262 |
-
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
3263 |
-
"dependencies": {
|
3264 |
-
"brace-expansion": "^1.1.7"
|
3265 |
-
},
|
3266 |
-
"engines": {
|
3267 |
-
"node": "*"
|
3268 |
-
}
|
3269 |
-
},
|
3270 |
"node_modules/mitt": {
|
3271 |
"version": "3.0.1",
|
3272 |
"resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
|
@@ -3487,14 +3300,6 @@
|
|
3487 |
"node": ">= 0.8"
|
3488 |
}
|
3489 |
},
|
3490 |
-
"node_modules/path-is-absolute": {
|
3491 |
-
"version": "1.0.1",
|
3492 |
-
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
3493 |
-
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
|
3494 |
-
"engines": {
|
3495 |
-
"node": ">=0.10.0"
|
3496 |
-
}
|
3497 |
-
},
|
3498 |
"node_modules/path-parse": {
|
3499 |
"version": "1.0.7",
|
3500 |
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
@@ -3538,12 +3343,12 @@
|
|
3538 |
}
|
3539 |
},
|
3540 |
"node_modules/pm2": {
|
3541 |
-
"version": "5.
|
3542 |
-
"resolved": "https://registry.npmjs.org/pm2/-/pm2-5.
|
3543 |
-
"integrity": "sha512-
|
3544 |
"dependencies": {
|
3545 |
"@pm2/agent": "~2.0.0",
|
3546 |
-
"@pm2/io": "~
|
3547 |
"@pm2/js-api": "~0.8.0",
|
3548 |
"@pm2/pm2-version-check": "latest",
|
3549 |
"async": "~3.2.0",
|
@@ -3558,6 +3363,7 @@
|
|
3558 |
"enquirer": "2.3.6",
|
3559 |
"eventemitter2": "5.0.1",
|
3560 |
"fclone": "1.0.11",
|
|
|
3561 |
"mkdirp": "1.0.4",
|
3562 |
"needle": "2.4.0",
|
3563 |
"pidusage": "~3.0",
|
@@ -3569,8 +3375,7 @@
|
|
3569 |
"semver": "^7.2",
|
3570 |
"source-map-support": "0.5.21",
|
3571 |
"sprintf-js": "1.1.2",
|
3572 |
-
"vizion": "~2.2.1"
|
3573 |
-
"yamljs": "0.3.0"
|
3574 |
},
|
3575 |
"bin": {
|
3576 |
"pm2": "bin/pm2",
|
@@ -3579,7 +3384,7 @@
|
|
3579 |
"pm2-runtime": "bin/pm2-runtime"
|
3580 |
},
|
3581 |
"engines": {
|
3582 |
-
"node": ">=
|
3583 |
},
|
3584 |
"optionalDependencies": {
|
3585 |
"pm2-sysmonit": "^1.2.8"
|
@@ -3834,15 +3639,15 @@
|
|
3834 |
}
|
3835 |
},
|
3836 |
"node_modules/puppeteer": {
|
3837 |
-
"version": "22.
|
3838 |
-
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.
|
3839 |
-
"integrity": "sha512-
|
3840 |
"hasInstallScript": true,
|
3841 |
"dependencies": {
|
3842 |
"@puppeteer/browsers": "2.2.3",
|
3843 |
"cosmiconfig": "9.0.0",
|
3844 |
"devtools-protocol": "0.0.1286932",
|
3845 |
-
"puppeteer-core": "22.
|
3846 |
},
|
3847 |
"bin": {
|
3848 |
"puppeteer": "lib/esm/puppeteer/node/cli.js"
|
@@ -3852,9 +3657,9 @@
|
|
3852 |
}
|
3853 |
},
|
3854 |
"node_modules/puppeteer-core": {
|
3855 |
-
"version": "22.
|
3856 |
-
"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.
|
3857 |
-
"integrity": "sha512-
|
3858 |
"dependencies": {
|
3859 |
"@puppeteer/browsers": "2.2.3",
|
3860 |
"chromium-bidi": "0.5.19",
|
@@ -4113,9 +3918,9 @@
|
|
4113 |
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
4114 |
},
|
4115 |
"node_modules/sax": {
|
4116 |
-
"version": "1.
|
4117 |
-
"resolved": "https://registry.npmjs.org/sax/-/sax-1.
|
4118 |
-
"integrity": "sha512
|
4119 |
},
|
4120 |
"node_modules/semver": {
|
4121 |
"version": "7.6.2",
|
@@ -4546,9 +4351,9 @@
|
|
4546 |
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
|
4547 |
},
|
4548 |
"node_modules/tsx": {
|
4549 |
-
"version": "4.
|
4550 |
-
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.
|
4551 |
-
"integrity": "sha512-
|
4552 |
"dev": true,
|
4553 |
"dependencies": {
|
4554 |
"esbuild": "~0.20.2",
|
@@ -4649,18 +4454,6 @@
|
|
4649 |
"node": ">= 0.4.0"
|
4650 |
}
|
4651 |
},
|
4652 |
-
"node_modules/uuid": {
|
4653 |
-
"version": "9.0.1",
|
4654 |
-
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
|
4655 |
-
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
|
4656 |
-
"funding": [
|
4657 |
-
"https://github.com/sponsors/broofa",
|
4658 |
-
"https://github.com/sponsors/ctavan"
|
4659 |
-
],
|
4660 |
-
"bin": {
|
4661 |
-
"uuid": "dist/bin/uuid"
|
4662 |
-
}
|
4663 |
-
},
|
4664 |
"node_modules/v8-compile-cache-lib": {
|
4665 |
"version": "3.0.1",
|
4666 |
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
|
@@ -4765,6 +4558,7 @@
|
|
4765 |
"version": "2.4.2",
|
4766 |
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
|
4767 |
"integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
|
|
|
4768 |
"bin": {
|
4769 |
"yaml": "bin.mjs"
|
4770 |
},
|
@@ -4772,32 +4566,6 @@
|
|
4772 |
"node": ">= 14"
|
4773 |
}
|
4774 |
},
|
4775 |
-
"node_modules/yamljs": {
|
4776 |
-
"version": "0.3.0",
|
4777 |
-
"resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz",
|
4778 |
-
"integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==",
|
4779 |
-
"dependencies": {
|
4780 |
-
"argparse": "^1.0.7",
|
4781 |
-
"glob": "^7.0.5"
|
4782 |
-
},
|
4783 |
-
"bin": {
|
4784 |
-
"json2yaml": "bin/json2yaml",
|
4785 |
-
"yaml2json": "bin/yaml2json"
|
4786 |
-
}
|
4787 |
-
},
|
4788 |
-
"node_modules/yamljs/node_modules/argparse": {
|
4789 |
-
"version": "1.0.10",
|
4790 |
-
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
4791 |
-
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
4792 |
-
"dependencies": {
|
4793 |
-
"sprintf-js": "~1.0.2"
|
4794 |
-
}
|
4795 |
-
},
|
4796 |
-
"node_modules/yamljs/node_modules/sprintf-js": {
|
4797 |
-
"version": "1.0.3",
|
4798 |
-
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
4799 |
-
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
|
4800 |
-
},
|
4801 |
"node_modules/yargs": {
|
4802 |
"version": "17.7.2",
|
4803 |
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
|
|
1 |
{
|
2 |
"name": "ai-tube-clap-exporter",
|
3 |
+
"version": "1.0.5",
|
4 |
"lockfileVersion": 3,
|
5 |
"requires": true,
|
6 |
"packages": {
|
7 |
"": {
|
8 |
"name": "ai-tube-clap-exporter",
|
9 |
+
"version": "1.0.5",
|
10 |
"license": "Apache License",
|
11 |
"dependencies": {
|
12 |
+
"@aitube/clap": "0.0.23",
|
13 |
"@aitube/encoders": "0.0.0",
|
14 |
+
"@aitube/io": "0.0.1",
|
15 |
"dotenv": "^16.4.5",
|
16 |
"express": "^4.19.2",
|
17 |
"fluent-ffmpeg": "^2.1.3",
|
18 |
"pm2": "^5.3.1",
|
19 |
+
"puppeteer": "^22.10.0",
|
20 |
"query-string": "^9.0.0",
|
21 |
"sharp": "^0.33.4",
|
22 |
"ts-node": "^10.9.2"
|
|
|
29 |
}
|
30 |
},
|
31 |
"node_modules/@aitube/clap": {
|
32 |
+
"version": "0.0.23",
|
33 |
+
"resolved": "https://registry.npmjs.org/@aitube/clap/-/clap-0.0.23.tgz",
|
34 |
+
"integrity": "sha512-+XOsWUgEax8yhmCBuWDFETh6mJTT5gYBNf8rChP55qX6le8bFxSBOdLirEdQ+SLnOLwRNthgCF4tWcT3GOLMVw==",
|
35 |
"dependencies": {
|
36 |
+
"pure-uuid": "^1.8.1"
|
|
|
37 |
},
|
38 |
"peerDependencies": {
|
39 |
+
"yaml": "^2.4.2"
|
40 |
}
|
41 |
},
|
42 |
"node_modules/@aitube/encoders": {
|
|
|
48 |
}
|
49 |
},
|
50 |
"node_modules/@aitube/io": {
|
51 |
+
"version": "0.0.1",
|
52 |
+
"resolved": "https://registry.npmjs.org/@aitube/io/-/io-0.0.1.tgz",
|
53 |
+
"integrity": "sha512-+0LH5ZOxpPqdABuwKcdNpRJyam7PTKO2zT+SyaKxB7vJcUgZ0ukZajLzLgo9dPr/R8XzOrJQlRSs3MU4F3R7nQ==",
|
54 |
"dependencies": {
|
55 |
"mime-types": "^2.1.35",
|
56 |
+
"pure-uuid": "^1.8.1",
|
57 |
+
"sharp": "^0.33.4"
|
58 |
}
|
59 |
},
|
60 |
"node_modules/@babel/code-frame": {
|
61 |
+
"version": "7.24.6",
|
62 |
+
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz",
|
63 |
+
"integrity": "sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==",
|
64 |
"dependencies": {
|
65 |
+
"@babel/highlight": "^7.24.6",
|
66 |
"picocolors": "^1.0.0"
|
67 |
},
|
68 |
"engines": {
|
|
|
70 |
}
|
71 |
},
|
72 |
"node_modules/@babel/helper-validator-identifier": {
|
73 |
+
"version": "7.24.6",
|
74 |
+
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz",
|
75 |
+
"integrity": "sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==",
|
76 |
"engines": {
|
77 |
"node": ">=6.9.0"
|
78 |
}
|
79 |
},
|
80 |
"node_modules/@babel/highlight": {
|
81 |
+
"version": "7.24.6",
|
82 |
+
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.6.tgz",
|
83 |
+
"integrity": "sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==",
|
84 |
"dependencies": {
|
85 |
+
"@babel/helper-validator-identifier": "^7.24.6",
|
86 |
"chalk": "^2.4.2",
|
87 |
"js-tokens": "^4.0.0",
|
88 |
"picocolors": "^1.0.0"
|
|
|
1002 |
"@jridgewell/sourcemap-codec": "^1.4.10"
|
1003 |
}
|
1004 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1005 |
"node_modules/@pm2/agent": {
|
1006 |
"version": "2.0.3",
|
1007 |
"resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.3.tgz",
|
|
|
1079 |
}
|
1080 |
},
|
1081 |
"node_modules/@pm2/io": {
|
1082 |
+
"version": "6.0.0",
|
1083 |
+
"resolved": "https://registry.npmjs.org/@pm2/io/-/io-6.0.0.tgz",
|
1084 |
+
"integrity": "sha512-sKUEgZoQ5/jRwTyMB1I7u2wXL6dG0j/F/M4ANJ7dJCApfW8nWC0RElMW2siEKvZ79iplIPAaWV27oyBoerEflw==",
|
1085 |
"dependencies": {
|
|
|
|
|
1086 |
"async": "~2.6.1",
|
1087 |
"debug": "~4.3.1",
|
1088 |
"eventemitter2": "^6.3.1",
|
|
|
1611 |
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
|
1612 |
"integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
|
1613 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1614 |
"node_modules/b4a": {
|
1615 |
"version": "1.6.6",
|
1616 |
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
|
1617 |
"integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg=="
|
1618 |
},
|
|
|
|
|
|
|
|
|
|
|
1619 |
"node_modules/bare-events": {
|
1620 |
"version": "2.2.2",
|
1621 |
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz",
|
|
|
1640 |
"optional": true
|
1641 |
},
|
1642 |
"node_modules/bare-path": {
|
1643 |
+
"version": "2.1.3",
|
1644 |
+
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz",
|
1645 |
+
"integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==",
|
1646 |
"optional": true,
|
1647 |
"dependencies": {
|
1648 |
"bare-os": "^2.1.0"
|
|
|
1734 |
"npm": "1.2.8000 || >= 1.4.16"
|
1735 |
}
|
1736 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1737 |
"node_modules/braces": {
|
1738 |
"version": "3.0.3",
|
1739 |
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
|
|
1934 |
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
|
1935 |
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
|
1936 |
},
|
|
|
|
|
|
|
|
|
|
|
1937 |
"node_modules/content-disposition": {
|
1938 |
"version": "0.5.4",
|
1939 |
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
|
|
|
1953 |
"node": ">= 0.6"
|
1954 |
}
|
1955 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1956 |
"node_modules/cookie": {
|
1957 |
"version": "0.6.0",
|
1958 |
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
|
|
2118 |
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
2119 |
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
|
2120 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2121 |
"node_modules/emoji-regex": {
|
2122 |
"version": "8.0.0",
|
2123 |
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
|
|
2519 |
"node": ">=14.14"
|
2520 |
}
|
2521 |
},
|
|
|
|
|
|
|
|
|
|
|
2522 |
"node_modules/fsevents": {
|
2523 |
"version": "2.3.3",
|
2524 |
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
|
2637 |
"resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz",
|
2638 |
"integrity": "sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg=="
|
2639 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2640 |
"node_modules/glob-parent": {
|
2641 |
"version": "5.1.2",
|
2642 |
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
|
|
2842 |
"url": "https://github.com/sponsors/sindresorhus"
|
2843 |
}
|
2844 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2845 |
"node_modules/inherits": {
|
2846 |
"version": "2.0.4",
|
2847 |
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
|
|
3016 |
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
3017 |
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
3018 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3019 |
"node_modules/lru-cache": {
|
3020 |
"version": "7.18.3",
|
3021 |
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
|
|
|
3080 |
"node": ">= 0.6"
|
3081 |
}
|
3082 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3083 |
"node_modules/mitt": {
|
3084 |
"version": "3.0.1",
|
3085 |
"resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
|
|
|
3300 |
"node": ">= 0.8"
|
3301 |
}
|
3302 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3303 |
"node_modules/path-parse": {
|
3304 |
"version": "1.0.7",
|
3305 |
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
|
|
3343 |
}
|
3344 |
},
|
3345 |
"node_modules/pm2": {
|
3346 |
+
"version": "5.4.0",
|
3347 |
+
"resolved": "https://registry.npmjs.org/pm2/-/pm2-5.4.0.tgz",
|
3348 |
+
"integrity": "sha512-9TrDuckcSEnINoURygr3yfruK20qXuOUPOPQyIh4FIskQduyDNst9ys1XAt9YPY3RyGxVr2+x8Irsdma3klVQw==",
|
3349 |
"dependencies": {
|
3350 |
"@pm2/agent": "~2.0.0",
|
3351 |
+
"@pm2/io": "~6.0.0",
|
3352 |
"@pm2/js-api": "~0.8.0",
|
3353 |
"@pm2/pm2-version-check": "latest",
|
3354 |
"async": "~3.2.0",
|
|
|
3363 |
"enquirer": "2.3.6",
|
3364 |
"eventemitter2": "5.0.1",
|
3365 |
"fclone": "1.0.11",
|
3366 |
+
"js-yaml": "~4.1.0",
|
3367 |
"mkdirp": "1.0.4",
|
3368 |
"needle": "2.4.0",
|
3369 |
"pidusage": "~3.0",
|
|
|
3375 |
"semver": "^7.2",
|
3376 |
"source-map-support": "0.5.21",
|
3377 |
"sprintf-js": "1.1.2",
|
3378 |
+
"vizion": "~2.2.1"
|
|
|
3379 |
},
|
3380 |
"bin": {
|
3381 |
"pm2": "bin/pm2",
|
|
|
3384 |
"pm2-runtime": "bin/pm2-runtime"
|
3385 |
},
|
3386 |
"engines": {
|
3387 |
+
"node": ">=12.0.0"
|
3388 |
},
|
3389 |
"optionalDependencies": {
|
3390 |
"pm2-sysmonit": "^1.2.8"
|
|
|
3639 |
}
|
3640 |
},
|
3641 |
"node_modules/puppeteer": {
|
3642 |
+
"version": "22.10.0",
|
3643 |
+
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-22.10.0.tgz",
|
3644 |
+
"integrity": "sha512-ZOkZd6a6t0BdKcWb0wAYHWQqCfdlN1PPnXOmg/XNrbo6gJhYWFX4qCNb6ahSn8TpAqBqLCoD4Q010F7GwOM7mA==",
|
3645 |
"hasInstallScript": true,
|
3646 |
"dependencies": {
|
3647 |
"@puppeteer/browsers": "2.2.3",
|
3648 |
"cosmiconfig": "9.0.0",
|
3649 |
"devtools-protocol": "0.0.1286932",
|
3650 |
+
"puppeteer-core": "22.10.0"
|
3651 |
},
|
3652 |
"bin": {
|
3653 |
"puppeteer": "lib/esm/puppeteer/node/cli.js"
|
|
|
3657 |
}
|
3658 |
},
|
3659 |
"node_modules/puppeteer-core": {
|
3660 |
+
"version": "22.10.0",
|
3661 |
+
"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.10.0.tgz",
|
3662 |
+
"integrity": "sha512-I54J4Vy4I07UHsgB1QSmuFoF7KNQjJWcvFBPhtY+ezMdBfwgGDr8dzYrJa11aPgP9kxIUHjhktcMmmfJkOAtTw==",
|
3663 |
"dependencies": {
|
3664 |
"@puppeteer/browsers": "2.2.3",
|
3665 |
"chromium-bidi": "0.5.19",
|
|
|
3918 |
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
3919 |
},
|
3920 |
"node_modules/sax": {
|
3921 |
+
"version": "1.4.1",
|
3922 |
+
"resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
|
3923 |
+
"integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="
|
3924 |
},
|
3925 |
"node_modules/semver": {
|
3926 |
"version": "7.6.2",
|
|
|
4351 |
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
|
4352 |
},
|
4353 |
"node_modules/tsx": {
|
4354 |
+
"version": "4.11.0",
|
4355 |
+
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.11.0.tgz",
|
4356 |
+
"integrity": "sha512-vzGGELOgAupsNVssAmZjbUDfdm/pWP4R+Kg8TVdsonxbXk0bEpE1qh0yV6/QxUVXaVlNemgcPajGdJJ82n3stg==",
|
4357 |
"dev": true,
|
4358 |
"dependencies": {
|
4359 |
"esbuild": "~0.20.2",
|
|
|
4454 |
"node": ">= 0.4.0"
|
4455 |
}
|
4456 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4457 |
"node_modules/v8-compile-cache-lib": {
|
4458 |
"version": "3.0.1",
|
4459 |
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
|
|
|
4558 |
"version": "2.4.2",
|
4559 |
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
|
4560 |
"integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
|
4561 |
+
"peer": true,
|
4562 |
"bin": {
|
4563 |
"yaml": "bin.mjs"
|
4564 |
},
|
|
|
4566 |
"node": ">= 14"
|
4567 |
}
|
4568 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4569 |
"node_modules/yargs": {
|
4570 |
"version": "17.7.2",
|
4571 |
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"name": "ai-tube-clap-exporter",
|
3 |
-
"version": "1.0.
|
4 |
"description": "API service to convert a .clap (will all its assets) to a video file",
|
5 |
"main": "src/index.ts",
|
6 |
"scripts": {
|
@@ -13,14 +13,14 @@
|
|
13 |
"author": "Julian Bilcke <julian.bilcke@huggingface.co>",
|
14 |
"license": "Apache License",
|
15 |
"dependencies": {
|
16 |
-
"@aitube/clap": "0.0.
|
17 |
"@aitube/encoders": "0.0.0",
|
18 |
-
"@aitube/io": "0.0.
|
19 |
"dotenv": "^16.4.5",
|
20 |
"express": "^4.19.2",
|
21 |
"fluent-ffmpeg": "^2.1.3",
|
22 |
"pm2": "^5.3.1",
|
23 |
-
"puppeteer": "^22.
|
24 |
"query-string": "^9.0.0",
|
25 |
"sharp": "^0.33.4",
|
26 |
"ts-node": "^10.9.2"
|
|
|
1 |
{
|
2 |
"name": "ai-tube-clap-exporter",
|
3 |
+
"version": "1.0.5",
|
4 |
"description": "API service to convert a .clap (will all its assets) to a video file",
|
5 |
"main": "src/index.ts",
|
6 |
"scripts": {
|
|
|
13 |
"author": "Julian Bilcke <julian.bilcke@huggingface.co>",
|
14 |
"license": "Apache License",
|
15 |
"dependencies": {
|
16 |
+
"@aitube/clap": "0.0.23",
|
17 |
"@aitube/encoders": "0.0.0",
|
18 |
+
"@aitube/io": "0.0.1",
|
19 |
"dotenv": "^16.4.5",
|
20 |
"express": "^4.19.2",
|
21 |
"fluent-ffmpeg": "^2.1.3",
|
22 |
"pm2": "^5.3.1",
|
23 |
+
"puppeteer": "^22.10.0",
|
24 |
"query-string": "^9.0.0",
|
25 |
"sharp": "^0.33.4",
|
26 |
"ts-node": "^10.9.2"
|
src/bug-in-bun/aitube_ffmpeg/analyze/extractFirstFrame.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
import { promises as fs, existsSync } from 'node:fs'
|
2 |
-
import path from 'node:path'
|
3 |
-
import os from 'node:os'
|
4 |
|
5 |
-
import {
|
6 |
-
import ffmpeg from 'fluent-ffmpeg'
|
7 |
|
8 |
-
const validFormats = ['jpeg', 'png', 'webp']
|
9 |
|
10 |
/**
|
11 |
* Extract the first frame from a video
|
@@ -40,14 +40,14 @@ export async function extractFirstFrame({
|
|
40 |
const extension = matches[1];
|
41 |
const base64Content = matches[2];
|
42 |
|
43 |
-
videoFilePath = path.join(os.tmpdir(), `${
|
44 |
await fs.writeFile(videoFilePath, base64Content, 'base64');
|
45 |
} else if (!existsSync(videoFilePath)) {
|
46 |
throw new Error('Video file does not exist.');
|
47 |
}
|
48 |
|
49 |
// Create a temporary output file
|
50 |
-
const outputImagePath = path.join(os.tmpdir(), `${
|
51 |
|
52 |
return new Promise((resolve, reject) => {
|
53 |
ffmpeg()
|
|
|
1 |
+
import { promises as fs, existsSync } from 'node:fs'
|
2 |
+
import path from 'node:path'
|
3 |
+
import os from 'node:os'
|
4 |
|
5 |
+
import { UUID } from '@aitube/clap'
|
6 |
+
import ffmpeg from 'fluent-ffmpeg'
|
7 |
|
8 |
+
const validFormats = ['jpeg', 'png', 'webp']
|
9 |
|
10 |
/**
|
11 |
* Extract the first frame from a video
|
|
|
40 |
const extension = matches[1];
|
41 |
const base64Content = matches[2];
|
42 |
|
43 |
+
videoFilePath = path.join(os.tmpdir(), `${UUID()}_inputVideo.${extension}`);
|
44 |
await fs.writeFile(videoFilePath, base64Content, 'base64');
|
45 |
} else if (!existsSync(videoFilePath)) {
|
46 |
throw new Error('Video file does not exist.');
|
47 |
}
|
48 |
|
49 |
// Create a temporary output file
|
50 |
+
const outputImagePath = path.join(os.tmpdir(), `${UUID()}.${outputFormat}`);
|
51 |
|
52 |
return new Promise((resolve, reject) => {
|
53 |
ffmpeg()
|
src/bug-in-bun/aitube_ffmpeg/concatenate/concatenateAudio.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
import { existsSync } from "node:fs"
|
2 |
import path from "node:path"
|
3 |
|
4 |
-
import {
|
5 |
import ffmpeg, { FfmpegCommand } from "fluent-ffmpeg"
|
6 |
import { getRandomDirectory, removeTemporaryFiles, writeBase64ToFile } from "@aitube/io"
|
7 |
import { addBase64Header } from "@aitube/encoders"
|
@@ -70,7 +70,7 @@ export async function concatenateAudio({
|
|
70 |
// TODO: convert this to an async filter using promises
|
71 |
audioFilePaths = audioFilePaths.filter((audio) => existsSync(audio))
|
72 |
|
73 |
-
const outputFilePath = output ?? path.join(tempDir, `${
|
74 |
|
75 |
let filterComplex = "";
|
76 |
let prevLabel = "0";
|
|
|
1 |
import { existsSync } from "node:fs"
|
2 |
import path from "node:path"
|
3 |
|
4 |
+
import { UUID } from "@aitube/clap"
|
5 |
import ffmpeg, { FfmpegCommand } from "fluent-ffmpeg"
|
6 |
import { getRandomDirectory, removeTemporaryFiles, writeBase64ToFile } from "@aitube/io"
|
7 |
import { addBase64Header } from "@aitube/encoders"
|
|
|
70 |
// TODO: convert this to an async filter using promises
|
71 |
audioFilePaths = audioFilePaths.filter((audio) => existsSync(audio))
|
72 |
|
73 |
+
const outputFilePath = output ?? path.join(tempDir, `${UUID()}.${outputFormat}`);
|
74 |
|
75 |
let filterComplex = "";
|
76 |
let prevLabel = "0";
|
src/bug-in-bun/aitube_ffmpeg/concatenate/concatenateVideos.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
import { existsSync } from "node:fs"
|
2 |
import path from "node:path"
|
3 |
|
4 |
-
import {
|
5 |
import ffmpeg, { FfmpegCommand } from "fluent-ffmpeg"
|
6 |
import { getRandomDirectory } from "@aitube/io"
|
7 |
|
@@ -30,7 +30,7 @@ export async function concatenateVideos({
|
|
30 |
// Create a temporary working directory
|
31 |
const tempDir = await getRandomDirectory()
|
32 |
|
33 |
-
const filePath = output ? output : path.join(tempDir, `${
|
34 |
|
35 |
if (!filePath) {
|
36 |
throw new Error("Failed to generate a valid temporary file path")
|
|
|
1 |
import { existsSync } from "node:fs"
|
2 |
import path from "node:path"
|
3 |
|
4 |
+
import { UUID } from "@aitube/clap"
|
5 |
import ffmpeg, { FfmpegCommand } from "fluent-ffmpeg"
|
6 |
import { getRandomDirectory } from "@aitube/io"
|
7 |
|
|
|
30 |
// Create a temporary working directory
|
31 |
const tempDir = await getRandomDirectory()
|
32 |
|
33 |
+
const filePath = output ? output : path.join(tempDir, `${UUID()}.mp4`)
|
34 |
|
35 |
if (!filePath) {
|
36 |
throw new Error("Failed to generate a valid temporary file path")
|
src/bug-in-bun/aitube_ffmpeg/concatenate/concatenateVideosAndMergeAudio.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
import { existsSync } from "node:fs"
|
2 |
import path from "node:path"
|
3 |
|
4 |
-
import {
|
5 |
import ffmpeg, { FfmpegCommand } from "fluent-ffmpeg"
|
6 |
import { getRandomDirectory, removeTemporaryFiles, writeBase64ToFile } from "@aitube/io"
|
7 |
import { addBase64Header, extractBase64 } from "@aitube/encoders"
|
@@ -62,7 +62,7 @@ export const concatenateVideosAndMergeAudio = async ({
|
|
62 |
videoFilePaths = videoFilePaths.filter((video) => existsSync(video))
|
63 |
|
64 |
// The final output file path
|
65 |
-
const finalOutputFilePath = output ? output : path.join(tempDir, `${
|
66 |
|
67 |
/*
|
68 |
console.log("DEBUG:", {
|
|
|
1 |
import { existsSync } from "node:fs"
|
2 |
import path from "node:path"
|
3 |
|
4 |
+
import { UUID } from "@aitube/clap"
|
5 |
import ffmpeg, { FfmpegCommand } from "fluent-ffmpeg"
|
6 |
import { getRandomDirectory, removeTemporaryFiles, writeBase64ToFile } from "@aitube/io"
|
7 |
import { addBase64Header, extractBase64 } from "@aitube/encoders"
|
|
|
62 |
videoFilePaths = videoFilePaths.filter((video) => existsSync(video))
|
63 |
|
64 |
// The final output file path
|
65 |
+
const finalOutputFilePath = output ? output : path.join(tempDir, `${UUID()}.mp4`);
|
66 |
|
67 |
/*
|
68 |
console.log("DEBUG:", {
|
src/bug-in-bun/aitube_ffmpeg/concatenate/concatenateVideosWithAudio.ts
CHANGED
@@ -2,7 +2,7 @@ import { existsSync } from "node:fs"
|
|
2 |
import { readFile } from "node:fs/promises"
|
3 |
import path from "node:path"
|
4 |
|
5 |
-
import {
|
6 |
import ffmpeg, { FfmpegCommand } from "fluent-ffmpeg"
|
7 |
import { addBase64Header, extractBase64 } from "@aitube/encoders"
|
8 |
import { getRandomDirectory, removeTemporaryFiles, writeBase64ToFile } from "@aitube/io"
|
@@ -81,7 +81,7 @@ export const concatenateVideosWithAudio = async ({
|
|
81 |
|
82 |
// console.log(`concatenateVideosWithAudio: hasOriginalAudio = ${hasOriginalAudio}`)
|
83 |
|
84 |
-
const finalOutputFilePath = output || path.join(tempDir, `${
|
85 |
|
86 |
// console.log(`concatenateVideosWithAudio: finalOutputFilePath = ${finalOutputFilePath}`)
|
87 |
|
|
|
2 |
import { readFile } from "node:fs/promises"
|
3 |
import path from "node:path"
|
4 |
|
5 |
+
import { UUID } from "@aitube/clap"
|
6 |
import ffmpeg, { FfmpegCommand } from "fluent-ffmpeg"
|
7 |
import { addBase64Header, extractBase64 } from "@aitube/encoders"
|
8 |
import { getRandomDirectory, removeTemporaryFiles, writeBase64ToFile } from "@aitube/io"
|
|
|
81 |
|
82 |
// console.log(`concatenateVideosWithAudio: hasOriginalAudio = ${hasOriginalAudio}`)
|
83 |
|
84 |
+
const finalOutputFilePath = output || path.join(tempDir, `${UUID()}.${format}`);
|
85 |
|
86 |
// console.log(`concatenateVideosWithAudio: finalOutputFilePath = ${finalOutputFilePath}`)
|
87 |
|
src/bug-in-bun/aitube_ffmpeg/concatenate/createVideoFromFrames.ts
CHANGED
@@ -3,7 +3,7 @@ import os from "node:os"
|
|
3 |
import path from "node:path"
|
4 |
|
5 |
import ffmpeg from "fluent-ffmpeg"
|
6 |
-
import {
|
7 |
|
8 |
import { getMediaInfo } from "../analyze/getMediaInfo"
|
9 |
|
@@ -46,7 +46,7 @@ export async function createVideoFromFrames({
|
|
46 |
|
47 |
|
48 |
// Create a temporary working directory
|
49 |
-
const tempDir = path.join(os.tmpdir(),
|
50 |
await mkdir(tempDir);
|
51 |
|
52 |
|
@@ -57,7 +57,7 @@ export async function createVideoFromFrames({
|
|
57 |
if (!base64Content) {
|
58 |
throw new Error('Invalid base64 input provided');
|
59 |
}
|
60 |
-
inputVideoToUseAsAudioFilePath = path.join(tempDir, `${
|
61 |
await writeFile(inputVideoToUseAsAudioFilePath, base64Content, 'base64');
|
62 |
} else {
|
63 |
inputVideoToUseAsAudioFilePath = inputVideoToUseAsAudio;
|
@@ -84,7 +84,7 @@ export async function createVideoFromFrames({
|
|
84 |
}
|
85 |
}
|
86 |
|
87 |
-
const outputVideoFilePath = outputVideoPath ?? path.join(tempDir, `${
|
88 |
|
89 |
if (debug) {
|
90 |
console.log(" createVideoFromFrames(): outputOptions:", [
|
|
|
3 |
import path from "node:path"
|
4 |
|
5 |
import ffmpeg from "fluent-ffmpeg"
|
6 |
+
import { UUID } from "@aitube/clap"
|
7 |
|
8 |
import { getMediaInfo } from "../analyze/getMediaInfo"
|
9 |
|
|
|
46 |
|
47 |
|
48 |
// Create a temporary working directory
|
49 |
+
const tempDir = path.join(os.tmpdir(), UUID());
|
50 |
await mkdir(tempDir);
|
51 |
|
52 |
|
|
|
57 |
if (!base64Content) {
|
58 |
throw new Error('Invalid base64 input provided');
|
59 |
}
|
60 |
+
inputVideoToUseAsAudioFilePath = path.join(tempDir, `${UUID()}_audio_input.mp4`);
|
61 |
await writeFile(inputVideoToUseAsAudioFilePath, base64Content, 'base64');
|
62 |
} else {
|
63 |
inputVideoToUseAsAudioFilePath = inputVideoToUseAsAudio;
|
|
|
84 |
}
|
85 |
}
|
86 |
|
87 |
+
const outputVideoFilePath = outputVideoPath ?? path.join(tempDir, `${UUID()}.mp4`);
|
88 |
|
89 |
if (debug) {
|
90 |
console.log(" createVideoFromFrames(): outputOptions:", [
|
src/bug-in-bun/aitube_ffmpeg/overlay/addImageToVideo.ts
CHANGED
@@ -2,7 +2,7 @@ import { existsSync } from "node:fs"
|
|
2 |
import path from "node:path"
|
3 |
|
4 |
import ffmpeg from "fluent-ffmpeg"
|
5 |
-
import {
|
6 |
import { getRandomDirectory } from "@aitube/io"
|
7 |
|
8 |
type AddImageToVideoParams = {
|
@@ -31,7 +31,7 @@ export async function addImageToVideo({
|
|
31 |
// If no output path is provided, create a temporary file for output
|
32 |
if (!outputVideoPath) {
|
33 |
const tempDir = await getRandomDirectory()
|
34 |
-
outputVideoPath = path.join(tempDir, `${
|
35 |
}
|
36 |
|
37 |
// Return a promise that resolves with the path to the output video
|
|
|
2 |
import path from "node:path"
|
3 |
|
4 |
import ffmpeg from "fluent-ffmpeg"
|
5 |
+
import { UUID } from "@aitube/clap"
|
6 |
import { getRandomDirectory } from "@aitube/io"
|
7 |
|
8 |
type AddImageToVideoParams = {
|
|
|
31 |
// If no output path is provided, create a temporary file for output
|
32 |
if (!outputVideoPath) {
|
33 |
const tempDir = await getRandomDirectory()
|
34 |
+
outputVideoPath = path.join(tempDir, `${UUID()}.mp4`);
|
35 |
}
|
36 |
|
37 |
// Return a promise that resolves with the path to the output video
|
src/bug-in-bun/aitube_ffmpeg/overlay/htmlToBase64Png.ts
CHANGED
@@ -2,7 +2,7 @@ import { promises as fs } from "node:fs"
|
|
2 |
import os from "node:os"
|
3 |
import path from "node:path"
|
4 |
|
5 |
-
import {
|
6 |
import puppeteer from "puppeteer"
|
7 |
|
8 |
export async function htmlToBase64Png({
|
@@ -22,9 +22,9 @@ export async function htmlToBase64Png({
|
|
22 |
|
23 |
// If no output path is provided, create a temporary file for output
|
24 |
if (!outputImagePath) {
|
25 |
-
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(),
|
26 |
|
27 |
-
outputImagePath = path.join(tempDir, `${
|
28 |
}
|
29 |
|
30 |
const browser = await puppeteer.launch({
|
|
|
2 |
import os from "node:os"
|
3 |
import path from "node:path"
|
4 |
|
5 |
+
import { UUID } from "@aitube/clap"
|
6 |
import puppeteer from "puppeteer"
|
7 |
|
8 |
export async function htmlToBase64Png({
|
|
|
22 |
|
23 |
// If no output path is provided, create a temporary file for output
|
24 |
if (!outputImagePath) {
|
25 |
+
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), UUID()))
|
26 |
|
27 |
+
outputImagePath = path.join(tempDir, `${UUID()}.png`)
|
28 |
}
|
29 |
|
30 |
const browser = await puppeteer.launch({
|
src/bug-in-bun/aitube_ffmpeg/overlay/htmlToBase64PngWorker.js
CHANGED
@@ -2,7 +2,7 @@ import { promises as fs } from "node:fs"
|
|
2 |
import os from "node:os"
|
3 |
import path from "node:path"
|
4 |
|
5 |
-
import {
|
6 |
import puppeteer from "puppeteer"
|
7 |
|
8 |
const inpDataB64 = process.argv.find((a) => a.startsWith('--input-data')).replace('--input-data', '')
|
@@ -14,8 +14,8 @@ async function htmlToBase64PngWorker(input) {
|
|
14 |
|
15 |
// If no output path is provided, create a temporary file for output
|
16 |
if (!outputImagePath) {
|
17 |
-
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(),
|
18 |
-
outputImagePath = path.join(tempDir, `${
|
19 |
}
|
20 |
|
21 |
const browser = await puppeteer.launch({
|
|
|
2 |
import os from "node:os"
|
3 |
import path from "node:path"
|
4 |
|
5 |
+
import { UUID } from "@aitube/clap"
|
6 |
import puppeteer from "puppeteer"
|
7 |
|
8 |
const inpDataB64 = process.argv.find((a) => a.startsWith('--input-data')).replace('--input-data', '')
|
|
|
14 |
|
15 |
// If no output path is provided, create a temporary file for output
|
16 |
if (!outputImagePath) {
|
17 |
+
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), UUID()))
|
18 |
+
outputImagePath = path.join(tempDir, `${UUID()}.png`)
|
19 |
}
|
20 |
|
21 |
const browser = await puppeteer.launch({
|
src/bug-in-bun/aitube_ffmpeg/overlay/imageToVideoBase64.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
import { rm, writeFile, readFile } from "node:fs/promises"
|
2 |
import path from "node:path"
|
3 |
|
4 |
-
import { v4 as uuidv4 } from "uuid"
|
5 |
import ffmpeg from "fluent-ffmpeg"
|
|
|
6 |
import { getRandomDirectory } from "@aitube/io"
|
7 |
|
8 |
/**
|
@@ -52,7 +52,7 @@ export async function imageToVideoBase64({
|
|
52 |
// Decode the Base64 image and write it to a temporary file.
|
53 |
const base64Data = inputImageInBase64.substring(inputImageInBase64.indexOf(',') + 1);
|
54 |
const buffer = Buffer.from(base64Data, 'base64');
|
55 |
-
const inputImagePath = path.join(outputDir, `${
|
56 |
await writeFile(inputImagePath, buffer);
|
57 |
|
58 |
const inputImageDetails = await new Promise<ffmpeg.FfprobeData>((resolve, reject) => {
|
@@ -81,7 +81,7 @@ export async function imageToVideoBase64({
|
|
81 |
}
|
82 |
|
83 |
// Set the path for the output video.
|
84 |
-
outputFilePath = outputFilePath || path.join(outputDir, `output_${
|
85 |
|
86 |
// we want to create a smooth Ken Burns effect
|
87 |
const durationInSeconds = outputVideoDurationInMs / 1000;
|
|
|
1 |
import { rm, writeFile, readFile } from "node:fs/promises"
|
2 |
import path from "node:path"
|
3 |
|
|
|
4 |
import ffmpeg from "fluent-ffmpeg"
|
5 |
+
import { UUID } from "@aitube/clap"
|
6 |
import { getRandomDirectory } from "@aitube/io"
|
7 |
|
8 |
/**
|
|
|
52 |
// Decode the Base64 image and write it to a temporary file.
|
53 |
const base64Data = inputImageInBase64.substring(inputImageInBase64.indexOf(',') + 1);
|
54 |
const buffer = Buffer.from(base64Data, 'base64');
|
55 |
+
const inputImagePath = path.join(outputDir, `${UUID()}.png`);
|
56 |
await writeFile(inputImagePath, buffer);
|
57 |
|
58 |
const inputImageDetails = await new Promise<ffmpeg.FfprobeData>((resolve, reject) => {
|
|
|
81 |
}
|
82 |
|
83 |
// Set the path for the output video.
|
84 |
+
outputFilePath = outputFilePath || path.join(outputDir, `output_${UUID()}.${outputVideoFormat}`);
|
85 |
|
86 |
// we want to create a smooth Ken Burns effect
|
87 |
const durationInSeconds = outputVideoDurationInMs / 1000;
|
src/bug-in-bun/aitube_ffmpeg/transform/scaleVideo.ts
CHANGED
@@ -2,8 +2,8 @@ import { rm, mkdtemp, writeFile, readFile } from 'node:fs/promises'
|
|
2 |
import os from 'node:os'
|
3 |
import path from 'node:path'
|
4 |
|
5 |
-
import { v4 as uuidv4 } from "uuid"
|
6 |
import ffmpeg from 'fluent-ffmpeg'
|
|
|
7 |
|
8 |
export type ScaleVideoParams = {
|
9 |
input: string;
|
@@ -34,7 +34,7 @@ export async function scaleVideo({
|
|
34 |
debug = false
|
35 |
}: ScaleVideoParams): Promise<string> {
|
36 |
const tempDir = await mkdtemp(path.join(os.tmpdir(), "ffmpeg-"));
|
37 |
-
const tempOutPath = path.join(tempDir, `${
|
38 |
|
39 |
let inputPath;
|
40 |
if (input.startsWith('data:')) {
|
@@ -43,7 +43,7 @@ export async function scaleVideo({
|
|
43 |
if (!base64Content) {
|
44 |
throw new Error('Invalid base64 input provided');
|
45 |
}
|
46 |
-
inputPath = path.join(tempDir, `${
|
47 |
await writeFile(inputPath, base64Content, 'base64');
|
48 |
} else {
|
49 |
inputPath = input;
|
|
|
2 |
import os from 'node:os'
|
3 |
import path from 'node:path'
|
4 |
|
|
|
5 |
import ffmpeg from 'fluent-ffmpeg'
|
6 |
+
import { UUID } from '@aitube/clap'
|
7 |
|
8 |
export type ScaleVideoParams = {
|
9 |
input: string;
|
|
|
34 |
debug = false
|
35 |
}: ScaleVideoParams): Promise<string> {
|
36 |
const tempDir = await mkdtemp(path.join(os.tmpdir(), "ffmpeg-"));
|
37 |
+
const tempOutPath = path.join(tempDir, `${UUID()}.mp4`);
|
38 |
|
39 |
let inputPath;
|
40 |
if (input.startsWith('data:')) {
|
|
|
43 |
if (!base64Content) {
|
44 |
throw new Error('Invalid base64 input provided');
|
45 |
}
|
46 |
+
inputPath = path.join(tempDir, `${UUID()}.mp4`);
|
47 |
await writeFile(inputPath, base64Content, 'base64');
|
48 |
} else {
|
49 |
inputPath = input;
|