source: Klonkt/package.json@ aa7f548

main
Last change on this file since aa7f548 was 3e86f1c, checked in by roboburr <roboburr@…>, 3 months ago

feat: automatic track duration — no more manually entering seconds

The duration of an audio track is now determined automatically instead of manually:

  • On upload: read from ffmpeg's codecData event during the existing transcode (no extra ffprobe binary). The upload INSERT never set duration before -> every track started as NULL ('--:--'); that is now fixed.
  • In the track editor: a hidden <audio preload=metadata> reads the duration and fills the field if it's still empty (manual override still possible).
  • Backfill: npm run backfill:durations fills existing tracks without duration via ffmpeg (probeDuration reads only codecData and stops immediately -> fast).

Co-Authored-By: Claude <noreply@…>

  • Property mode set to 100644
File size: 1.1 KB
Line 
1{
2 "name": "prutfolio",
3 "version": "1.0.0-alpha.1",
4 "description": "Klonkt Hub Beta — persoonlijk multi-site platform met community, realtime, en (later) E2EE DMs. Forked van PrutCMS v9 (PHP) naar Node + SQLite + htmx.",
5 "type": "module",
6 "main": "src/server.js",
7 "scripts": {
8 "start": "node src/server.js",
9 "dev": "node --watch src/server.js",
10 "migrate": "node src/db/migrate.js",
11 "reset-admin": "node scripts/reset-admin.mjs",
12 "backfill:durations": "node scripts/backfill-durations.mjs"
13 },
14 "dependencies": {
15 "bcryptjs": "^2.4.3",
16 "better-sqlite3": "^11.3.0",
17 "body-parser": "^1.20.2",
18 "dotenv": "^16.3.1",
19 "ejs": "^3.1.9",
20 "express": "^4.18.2",
21 "express-rate-limit": "^7.4.1",
22 "express-session": "^1.17.3",
23 "ffmpeg-static": "^5.2.0",
24 "fluent-ffmpeg": "^2.1.3",
25 "helmet": "^7.1.0",
26 "htmx.org": "1.9.12",
27 "marked": "^11.1.1",
28 "multer": "^1.4.5-lts.1",
29 "nodemailer": "^6.9.15",
30 "sanitize-html": "^2.17.3",
31 "uuid": "^9.0.1",
32 "ws": "^8.18.0"
33 },
34 "engines": {
35 "node": ">=20"
36 }
37}
Note: See TracBrowser for help on using the repository browser.