SnapOtter : traitement de fichiers auto-hébergé avec IA locale sur cinq modalités
Aperçu du projet : Outil de traitement de fichiers open source et auto-hébergé. Convertissez, compressez, OCR, transcrivez et exécutez l'IA locale sur des images, des vidéos, de l'audio, des PDF et des documents, via l'interface utilisateur, l'API REST et les pipelines. Vos fichiers ne quittent jamais votre réseau.
En bref
- De quoi s’agit-il ?
- Une pile Docker pour convertir, compresser, OCR, transcrire et exécuter de l'IA locale sur des images, vidéos, audio, PDF et documents, sans que vos fichiers ne quittent votre réseau.
- À qui s’adresse-t-il ?
- SnapOtter est écrit en TypeScript, distribué sous AGPL-3.0 avec une licence commerciale séparée, et comptait 2 156 étoiles au moment de la rédaction de cet article. Le README ne précise pas de cadence de publication, de politique de support ni d'engagement de disponibilité.
- Puis-je l’utiliser commercialement ?
- Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement TypeScript, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Ce que couvre SnapOtter
SnapOtter est un outil de traitement de fichiers auto-hébergé écrit en TypeScript. Le README le positionne comme un remplaçant de plusieurs services à usage unique : CloudConvert, Smallpdf, TinyPNG, TinyWow et Otter.ai. L'outil liste plus de 200 outils répartis en cinq modalités : image (107), vidéo (57), audio (27), PDF (29) et fichiers (23). Il prend en charge plus de 55 formats d'entrée pour les images, dont 23 formats RAW d'appareil photo, et 17 formats de sortie. Le README ne fournit ni un inventaire complet de chaque outil, ni des résultats de référence par rapport aux services cités.
Exécution
Le démarrage rapide tient en une commande Docker : docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest. Ensuite, ouvrez http://localhost:1349 et connectez-vous avec admin/admin ; le README indique qu'un changement de mot de passe sera demandé à la première connexion. L'image à conteneur unique embarque Postgres 17 et Redis 8. Pour la production, le README fournit une pile Compose à trois conteneurs avec l'application, Postgres 17 et Redis 8. L'image publiée fonctionne sur AMD64 et ARM64, ce que le README dit couvrir Intel, Apple Silicon et Raspberry Pi.
Fonctionnalités d'IA locale
Les fonctionnalités d'IA s'exécutent sur votre propre matériel et ne nécessitent pas de connexion Internet. Elles incluent la suppression d'arrière-plan, l'agrandissement d'images, la restauration et la colorisation de vieilles photos, l'effacement d'objets, le floutage de visages, l'amélioration de visages, l'OCR pour images et PDF, la transcription audio, la génération automatique de sous-titres vidéo, l'extension du canevas et la correction de transparence. L'OCR rapide intégré ajoute environ 25 MiB à l'image officielle, et un pack de précision optionnel s'installe à la demande. L'accélération NVIDIA CUDA fonctionne pour la suppression d'arrière-plan, l'agrandissement et la transcription via un fichier Compose GPU. L'OCR utilise délibérément le même runtime CPU portable sur les hôtes CPU uniquement et NVIDIA. L'accélération iGPU Intel et AMD n'est pas prise en charge pour l'inférence IA ; ces systèmes exécutent les outils d'IA sur le CPU.
Éditeur d'images et outils de fichiers
En plus des outils de traitement, SnapOtter inclut un éditeur d'images basé sur des calques qui s'exécute dans le navigateur et traite sur votre matériel. Le README décrit des pinceaux, des formes, des ajustements, des filtres, des courbes et des raccourcis clavier. La catégorie fichiers couvre la conversion CSV, JSON, XML et YAML, la fusion et la division CSV, Excel vers CSV, un créateur de graphiques, et la création et l'extraction ZIP. Le README liste des convertisseurs d'exemple par modalité, comme JPG vers PNG, HEIC vers JPG, MOV vers MP4, MKV vers MP4, M4A vers MP3 et PDF vers JPG, mais il n'énumère pas les plus de 200 outils ni ne documente complètement l'ensemble des fonctions de l'éditeur d'images.
Automatisation, authentification et langues
Chaque outil est disponible via une API REST avec authentification par clé API, et la documentation API interactive est servie à /api/docs. Les pipelines enchaînent les outils en flux de travail réutilisables, avec 20 étapes par défaut (configurable via MAX_PIPELINE_STEPS), import et export en JSON, et une taille de lot illimitée dans l'image publiée et de 100 à partir d'une compilation source (MAX_BATCH_SIZE). La connexion peut utiliser OpenID Connect avec Google, GitHub, Okta ou tout fournisseur OIDC. L'interface est disponible en 21 langues, dont l'arabe avec prise en charge RTL. Le README ne documente pas les limites de débit, le versionnage de l'API ou les niveaux de permissions utilisateur au-delà de l'authentification OIDC.
Confidentialité et analytique
Le README déclare que les fichiers ne quittent jamais votre réseau dans la configuration auto-hébergée. Une analytique de base est incluse pour aider à détecter les bugs et améliorer les outils. Vous pouvez la désactiver à la compilation avec SNAPOTTER_ANALYTICS=off ou à l'exécution via une option de désinscription dans l'administration de l'application ; le README renvoie aussi à la documentation de déploiement. La déclaration de confidentialité concerne le chemin de traitement des fichiers, pas la télémétrie d'analytique elle-même, et le README ne précise pas exactement quelles données l'analytique collecte ni où elles sont envoyées.
Licence · snapotter hq snapotter
SnapOtter est sous double licence AGPL-3.0 et licence commerciale. Sous AGPLv3, si vous exécutez une version modifiée comme service réseau, vous devez fournir le code source modifié aux utilisateurs de ce service, une condition énoncée dans le préambule et les termes de la licence. La licence commerciale est destinée aux logiciels propriétaires ou aux produits SaaS où la divulgation du code source AGPL ne convient pas ; le README renvoie au contact du projet pour les prix et conditions, et à LICENSING.md pour la frontière open-core. Le texte de licence accorde le droit de copier, distribuer et modifier le logiciel, et déclare qu'il n'y a pas de garantie pour l'œuvre sauf si des garanties sont fournies. Il ne dit rien sur le support, la posture de sécurité ou les engagements de maintenance.
Le déploiement rapide de SnapOtter est vérifiable avec l'image Docker publiée : « docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest », puis « http://localhost:1349 ». Le compte initial « admin/admin » doit être remplacé à la première connexion. Pour un usage durable, le README sépare cette image mono-conteneur d'une pile Compose comprenant l'application, Postgres 17 et Redis 8. Les fonctions IA annoncées restent locales dans l'installation auto-hébergée : OCR, transcription, sous-titres, suppression d'arrière-plan, agrandissement, restauration, effacement d'objets et extension du canevas. CUDA NVIDIA couvre certains traitements via le Compose GPU ; les iGPU Intel et AMD ne sont pas pris en charge pour l'inférence et le CPU reste utilisé. Les pipelines comportent par défaut 20 étapes et les paramètres « MAX_PIPELINE_STEPS » et « MAX_BATCH_SIZE » bornent une partie du comportement. « /api/docs » expose la documentation REST, avec authentification par clé API. L'option « SNAPOTTER_ANALYTICS=off » permet de désactiver l'analytique, mais le README ne décrit pas précisément les données collectées. Enfin, AGPL-3.0 peut imposer la fourniture du code modifié lorsqu'un service réseau modifié est mis à disposition ; un produit propriétaire doit donc examiner la licence commerciale et « LICENSING.md ».
Conclusion éditoriale
SnapOtter est écrit en TypeScript, distribué sous AGPL-3.0 avec une licence commerciale séparée, et comptait 2 156 étoiles au moment de la rédaction de cet article. Le README ne précise pas de cadence de publication, de politique de support ni d'engagement de disponibilité. Le site du projet, la démo en ligne et les liens vers la documentation sont les endroits où vérifier le comportement réel au-delà de ce que couvre le README. Pour ce projet, vérifiez d'abord les commandes, fichiers et versions cités dans le README avant de l'intégrer à votre flux.
Notes de la communauté