Julian Bilcke
commited on
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 <[email protected]>",
|
| 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 <[email protected]>",
|
| 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;
|