Precuuter est un éditeur de script par blocs, libre et auto-hébergé, conçu pour la préparation de montage vidéo. Il permet d'écrire un script séquence par séquence, d'y glisser-déposer des médias (audio, vidéo, images), et d'exporter le tout au format FCPXML pour l'importer dans DaVinci Resolve.
C'est un clone open-source de Precut.
| Couche | Technologie |
|---|---|
| Backend | Bun + Elysia |
| Base de données | SQLite via Drizzle ORM |
| Frontend | React + Vite |
| Éditeur de texte | TipTap |
| Drag & Drop | dnd-kit |
| Styles | Tailwind CSS v4 |
| Icônes | Lucide |
- Écrire un script découpé en blocs (paragraphes)
- Glisser-déposer des fichiers audio, vidéo et images dans chaque bloc
- Association média-bloc avec timecodes in/out
- Durée automatique détectée via ffprobe
- Règle temporelle cumulative
- Tags par bloc (#WideShot, #B-Roll, #Voiceover, etc.)
- Thème clair / sombre
- Export FCPXML (compatible DaVinci Resolve 17+)
# Cloner le dépôt
git clone https://github.com/votre-username/precuuter.git
cd precuuter
# Installer les dépendances
bun install
cd frontend-src && bun install && cd ..
# Lancer le backend (port 3001)
bun run dev
# Dans un autre terminal, lancer le frontend (port 5173)
bun run dev:frontendOuvrir http://localhost:5173.
- Bun ≥ 1.2
- ffprobe (installé automatiquement via
@ffprobe-installer/ffprobe) - ImageMagick ou ffmpeg (optionnel, pour la conversion d'images lors de l'export FCPXML)
Depuis l'éditeur de projet, cliquer sur l'icône de téléchargement pour générer un fichier .fcpxml.
Import dans DaVinci Resolve :
Fichier → Importer → Timeline→ Sélectionner le.fcpxml- Les médias apparaîtront hors-ligne → clic droit → Relier les clips sélectionnés
- Pointer vers le dossier contenant les fichiers sources
L'export utilise le format FCPXML v1.8, format 1080p 29.97 NTSC. Les images fixes sont converties en PNG et déclarées comme still-image.
precuuter/
├── src/ # Backend (Elysia)
│ ├── db/ # Schema SQLite + init
│ ├── routes/ # Routes API
│ │ ├── projects.ts
│ │ ├── paragraphs.ts
│ │ ├── media.ts
│ │ └── export.ts # Génération FCPXML
│ └── utils/
│ └── media.ts # ffprobe duration
├── frontend-src/ # Frontend (React + Vite)
│ └── src/
│ ├── components/ # Editor, MediaPanel, TimecodeSelector, UI
│ └── App.tsx # Routage + DnD context
├── data/ # Base de données + uploads (gitignoré)
└── package.json
MIT