
Osintgram v2.0
Osintgram est un outil OSINT sur Instagram. Il propose un shell interactif pour effectuer une analyse sur le compte Instagram de n'importe quel utilisateur par son surnom.
Osintgram 🔎📸
Pointez-le vers un compte Instagram et découvrez qui se cache derrière. Osintgram collecte, recoupe et présente tout ce qu'un profil public révèle — abonnés, légendes, hashtags, lieux géolocalisés, habitudes de publication, coordonnées publiques — dans une interface web que vous exécutez sur votre propre machine.
Posez votre question en langage naturel et un modèle d'IA local détermine quelles recherches effectuer. Ou pas : choisissez vous-même les commandes et passez complètement le modèle.
Pourquoi cela pourrait vous plaire
Il répond à des questions, pas seulement à des commandes. « Combien d'abonnés ont-ils et quels hashtags utilisent-ils le plus ? » exécute trois recherches et revient avec une réponse rédigée — et les résultats bruts en dessous, pour que vous puissiez vérifier le travail au lieu de faire confiance au texte.
Rien ne quitte votre machine, hormis les recherches elles-mêmes. L'IA s'exécute
localement via Ollama : pas de clé OpenAI, pas d'abonnement, aucune
de vos requêtes envoyée à qui que ce soit. L'interface est servie depuis 127.0.0.1.
Il vous indique ce que coûtera une recherche avant de l'exécuter. Les données Instagram ne sont pas gratuites, et la plupart des outils vous le font découvrir de la manière coûteuse. Celui-ci chiffre votre sélection à l'avance, affiche votre crédit restant, met en cache chaque requête pour que vous ne payiez jamais deux fois la même recherche, et vous permet de plafonner ou d'arrêter une exécution — côté serveur, pas seulement dans le navigateur.
Il montre ce qu'il a trouvé, correctement. Vignettes des publications dans une grille filtrable, lieux géolocalisés sur une carte, une carte thermique jour de la semaine × heure indiquant quand quelqu'un publie, comparaison entre deux comptes. Pas un mur de JSON — bien que le JSON soit à un clic sur chaque carte.
Vous pouvez transmettre le résultat à quelqu'un d'autre. Un bouton transforme une recherche terminée en un rapport HTML autonome qui s'ouvre dans n'importe quel navigateur, sans serveur ni Osintgram.
Deux façons de le piloter
Mode IA — décrivez ce que vous voulez. Un modèle local choisit les commandes, les exécute et résume. Il ne peut choisir que dans la même liste ci-dessous ; il ne peut pas inventer des recherches ni fabriquer des données.
Mode de base — pas de modèle, pas besoin d'Ollama. Les 28 commandes, une ligne chacune, groupées et consultables. Cochez ce que vous voulez, définissez les paramètres, exécutez-les dans l'ordre.
Vous pouvez aussi laisser le nom d'utilisateur vide en mode IA et simplement poser une question sur un hashtag ou un lieu — ces recherches n'appartiennent à aucun compte.
Ce que vous pouvez découvrir
| Profil | Bio et chaque lien qu'elle contient, nombre d'abonnés/abonnements/publications, catégorie, e-mail public, téléphone et adresse professionnelle jusqu'aux coordonnées, identifiant Facebook lié — plus le À propos de ce compte d'Instagram : pays d'inscription, date de création, nombre de changements de nom d'utilisateur |
| Réseau | Abonnés et abonnements, comptes qu'Instagram suggère comme apparentés, qui les a identifiés, qui ils ont identifié, qui commente le plus — et les connexions mutuelles entre deux comptes |
| Contenu | Hashtags classés par utilisation, légendes, chaque commentaire, statistiques de likes et de commentaires, répartition photos/vidéos/carrousels avec vues et partenariats rémunérés, carte thermique des heures de publication, lieux géolocalisés sur une carte, texte alternatif des photos |
| Contacts | E-mails et numéros de téléphone publics parmi les abonnés ou abonnements d'une cible |
| Aucune cible nécessaire | Publications publiées avec un hashtag (populaires ou récentes) ou depuis un lieu, et qui les a publiées |
Les stories, les à la une et les photos de profil sont renvoyées sous forme de liens CDN directs — et toute carte contenant un média propose un zip en un clic des originaux.
Démarrage rapide
pip install -r requirements.txt
uvicorn src.web.app:app --host 127.0.0.1 --port 8000 --reload # or: make run
Ouvrez http://127.0.0.1:8000.
Vous avez besoin d'un backend de données. La page s'ouvre sur un panneau où vous pouvez coller une clé HikerAPI directement — elle est vérifiée avant d'être acceptée, et peut être enregistrée pour la prochaine fois. (Une connexion gratuite instagrapi fonctionne aussi, en utilisant un compte Instagram qui vous appartient — consultez le guide pour les compromis.)
Pour le mode IA, installez Ollama et récupérez un modèle capable d'appeler des outils :
ollama pull llama3.1:8b # ~4.7 GB, the default
Le mode de base fonctionne sans.
Vous préférez les conteneurs ?
docker compose up --build # or: make docker
Même adresse, même comportement — publié sur 127.0.0.1 uniquement. Votre clé, cache
et recherches enregistrées restent sur l'hôte dans config/, cache/ et dossier/,
jamais à l'intérieur de l'image. Le mode IA atteint un Ollama exécuté sur votre hôte.
$${\color{red}Warning:}$$ Cela s'exécute sur
127.0.0.1avec aucune authentification. C'est conçu pour s'exécuter sur votre propre machine — ne l'exposez pas au-delà de localhost sans placer d'abord une couche d'authentification devant.
📖 Lire le guide complet → doc/web-ui.md
Configuration des deux backends, chaque commande avec ses paramètres et son coût, comment limiter les dépenses, exporter et partager les résultats, toutes les options de configuration, et le dépannage.
Avant de l'utiliser
À DES FINS ÉDUCATIVES UNIQUEMENT. Les contributeurs n'assument aucune responsabilité quant à l'utilisation de cet outil.
- N'utilisez pas votre propre compte Instagram ni votre compte principal avec cet outil.
- Ne committez jamais
config/credentials.ini— les clés API et les identifiants Instagram s'y trouvent. Il est ignoré par git ; gardez-le ainsi. Si une clé a déjà été poussée, révoquez-la : supprimer le fichier ne la retire pas de l'historique. - Les résultats contiennent les données personnelles d'autres personnes. Traitez-les conformément à la législation sur la protection des données (RGPD et équivalents) et aux Conditions d'utilisation d'Instagram.
- Vous ne pouvez pas voir les profils privés. Rien ne le peut. Les outils prétendant le contraire sont des arnaques.
Développement
pip install -r requirements-dev.txt
python -m pytest
La suite de tests s'exécute entièrement sur des fixtures synthétiques — pas de clé API, pas de quota, pas de réseau. Elle vérifie aussi que la documentation n'a pas dérivé du code.
Les demandes de fonctionnalités et les pull requests sont les bienvenues — ouvrez une issue. Vous avez trouvé un problème de sécurité ? Veuillez le signaler en privé à la place : voir SECURITY.md.
Crédits
Osintgram est écrit par Giuseppe Criscione (Datalux). La version 2.0 le reconstruit autour d'une interface web et d'une couche de service réutilisable, et ajoute le mode IA, les contrôles de coût et les analyses plus récentes — voir le changelog.
Il doit beaucoup à tous ceux qui ont contribué depuis la première version :
Les données Instagram proviennent de HikerAPI ou instagrapi. Géocodage par Nominatim / OpenStreetMap. Cartes par Leaflet. Modèles locaux via Ollama.
Publié sous la licence GPL-3.0.
Instagram est une marque de Meta Platforms, Inc. Ce projet n'est ni affilié à, ni approuvé par, ni soutenu par Meta.