Photobooth : créez votre propre cabine photo web
Photobooth est une application web open source qui transforme votre navigateur en véritable cabine photo. Simple, légère et entièrement personnalisable.
Fonctionnalités principales
- Capture directement depuis votre webcam avec un retour vidéo en temps réel
- Superposition de fonds PNG (ou JPG, WebP, SVG), vos overlays s’affichent en direct sur le flux vidéo
- Mode miroir activé par défaut pour une expérience selfie naturelle
- Mode photo strip : capturer 4 shots en séquence, assemblés en grille 2×2
- Compteur à rebours personnalisable : 3s, 5s ou 10s avant chaque capture
- Sélecteur de caméra : choisissez votre webcam parmi celles détectées
- Watermark personnalisable affiché en bas de chaque photo
- Taille de sortie optimisée pour l’impression : 10×15 cm paysage (1800×1200 px à 300 DIN)
- Impression via CUPS (Linux) sur papier photo 4×6in glossy, un clic sur “Imprimer” et c’est envoyé
- Raccourcis clavier : Espace pour capturer, S pour sauvegarder, Entrée pour imprimer, M pour le miroir, T pour le strip
Comment ça marche ?
L’application utilise l’API Canvas 2D pour combiner le flux webcam avec les fonds sélectionnés. Le tout est crop-fill : la vidéo et les fonds remplissent le canvas en 3:2 avec un recadrage centré, pas de bandes noires. Le serveur Express (Node.js + TypeScript) sert le tout sans étape de build, tsx gère l’exécution directe.
npm install |
Ou utilisez le script ./start.sh qui lance le serveur et ouvre un navigateur en plein écran.
Personnalisation des fonds
Placez vos images dans le dossier backgrounds/, elles apparaissent automatiquement dans l’interface. Vous pouvez même définir la position de chaque fond via config.json :
{ |
Le champ watermark ajoute une barre translucide en bas de chaque photo capturée. Omise ou laissée vide, elle est désactivée.
Installation sur un Raspberry Pi
Le Raspberry Pi est l’usage parfait pour une cabine photo : compact, pas cher, branché à un écran tactile.
Prérequis
- Raspberry Pi (3B+ ou supérieur recommandé) avec Raspberry Pi OS
- Webcam USB (ou caméra officielle Raspberry Pi)
- Écran (tactile si possible)
Étapes
1. Installer Node.js
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - |
Vérifiez :
node -v # v22.x |
2. Cloner et installer le projet
git clone https://github.com/Giwi/photobooth.git |
3. Lancer l’application
npm start |
Ouvrez http://localhost:3000 depuis un navigateur sur le Pi.
Pour un lancement en plein écran automatique, utilisez le script fourni :
./start.sh |
Le script inclut les flags --no-sandbox et --disable-gpu pour la compatibilité Chromium sur Raspberry Pi.
4. (Optionnel) Configurer l’impression via CUPS
sudo apt install -y cups |
Puis définissez votre imprimante par défaut via l’interface web CUPS (http://localhost:631) ou en ligne de commande :
lpstat -p # liste les imprimantes |
5. (Optionnel) Démarrage automatique au boot
Créez un service systemd :
sudo tee /etc/systemd/system/photobooth.service > /dev/null <<EOF |
Note : Si vous utilisez
tsxpour lancer le serveur, adaptezExecStarten conséquence (/usr/bin/npx tsx src/server.ts).
6. (Optionnel) Écran non tactile avec clavier
Si votre écran n’est pas tactile, tout se fait au clavier :
| Touche | Action |
|---|---|
Espace |
Capturer |
S |
Sauvegarder |
M |
Activer/désactiver le miroir |
T |
Activer/désactiver le mode photo strip |
← → |
Naviguer entre les fonds |
Entrée |
Sauvegarder et imprimer |
Échap |
Annuler |
L’interface reste 100% utilisable sans tactile, le bouton de capture est juste un raccourci clavier.
Conclusion
Photobooth est le genre de projet parfait pour un événement, un mariage, ou simplement pour s’amuser. Pas de dépendances lourdes, pas de build complexe, juste Node.js, un navigateur, et une webcam.