Une équipe marketing peut voir les publications de ses concurrents dans son fil, mais un examen manuel répond mal à une question précise : quels formats et quels sujets suscitent régulièrement des réactions, et lesquels n’ont attiré l’attention qu’une seule fois ? La solution consiste à enregistrer chaque jour les données des publications publiques, puis à les comparer selon la date, le format et les compteurs disponibles.

Voici un pipeline de base en Python utilisant l’IG Scraper API. Il récupère les publications d’un compte choisi, enregistre les réponses au format JSONL et produit un bilan des nouveaux contenus. Dans ce rapport, les indicateurs de réactions correspondent aux valeurs renvoyées par l’API au moment de la collecte ; les instantanés de dates différentes permettent d’analyser leur évolution séparément.
Définissez d’abord ce que vous voulez comparer
Pour un petit échantillon de concurrents, il suffit de tenir une liste de comptes publics et de collecter leurs publications selon un calendrier unique. Commencez par des questions auxquelles les données peuvent répondre : à quelle fréquence le contenu est-il publié, quelles publications sont des Reels ou d’autres formats, quels sujets reviennent et comment évoluent les compteurs disponibles de mentions J’aime et de commentaires ?
Dans votre stockage, distinguez deux notions : la publication et son instantané. Identifiez la publication par un ID stable, s’il est présent dans la réponse ; à chaque nouvelle exécution, enregistrez une entrée distincte avec l’heure de collecte. Vous pourrez ainsi voir comment les compteurs disponibles évoluent au lieu de remplacer la valeur d’hier par celle d’aujourd’hui.
Utilisez la route documentée
La documentation de jsonscraper indique l’adresse https://ig.jsonscraper.com et la route GET /v1/user/by/username pour une requête de base. Pour récupérer des publications, la carte de l’API répertorie également GET /v1/user/medias/chunk. Vérifiez les paramètres exacts et les champs de la réponse dans la collection Postman associée au produit : ne fondez pas votre gestionnaire sur une structure supposée avant d’avoir examiné la réponse réelle à votre requête.
Pour une première vérification, utilisez l’exemple de requête de profil documenté ; transmettez la clé par une variable d’environnement plutôt que de l’inscrire dans le code source :
curl -G "https://ig.jsonscraper.com/v1/user/by/username" \
--data-urlencode "username=apple" \
--data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
--data-urlencode "cache_timeout=60"
L’exemple de la page produit indique username, license_key et cache_timeout pour la route de profil. N’utilisez ce paramètre sur d’autres routes que si leur documentation le précise. Pour demander des publications, relevez les noms de paramètres à jour dans la spécification de cette route.
Enregistrez les réponses sous forme d’instantanés horodatés
Le script ci-dessous constitue un point de départ pour une exécution en production : l’URL et les paramètres de la route des publications sont définis dans la configuration afin de pouvoir les renseigner conformément à la documentation Postman. Le gestionnaire enregistre le JSON d’origine et l’heure de collecte ; ajoutez la normalisation des champs après avoir vérifié la réponse réelle.
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
BASE_URL = "https://ig.jsonscraper.com"
USERNAME = os.environ["IG_USERNAME"]
LICENSE_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
OUTPUT = Path("instagram_snapshots.jsonl")
# Renseignez le point de terminaison et les paramètres selon la documentation
# de la route GET /v1/user/medias/chunk dans la collection Postman.
MEDIA_PATH = os.environ["IG_MEDIA_PATH"]
MEDIA_PARAMS = json.loads(os.environ["IG_MEDIA_PARAMS_JSON"])
params = {
**MEDIA_PARAMS,
"username": USERNAME,
"license_key": LICENSE_KEY,
}
response = requests.get(
f"{BASE_URL}{MEDIA_PATH}", params=params, timeout=30
)
response.raise_for_status()
payload = response.json()
record = {
"collected_at": datetime.now(timezone.utc).isoformat(),
"username": USERNAME,
"response": payload,
}
with OUTPUT.open("a", encoding="utf-8") as file:
file.write(json.dumps(record, ensure_ascii=False) + "\n")
Les paramètres de pagination et les noms de champs ne sont volontairement pas inventés : copiez-les depuis la spécification concernée et vérifiez-les à partir de la réponse de l’API. Les requêtes avec délai d’attente et raise_for_status() permettent de détecter une erreur réseau avant d’enregistrer le résultat comme une donnée ordinaire. Pour une exécution automatisée, ajoutez une validation du JSON et un journal des erreurs.
Ajoutez une planification et des métriques
Exécutez la collecte une fois par jour avec cron ou le planificateur de votre système d’automatisation. Pour plusieurs comptes, parcourez une liste de configuration, enregistrez un instantané distinct pour chacun et prévoyez une nouvelle tentative après une erreur temporaire. Stockez la clé dans une variable d’environnement ou un gestionnaire de secrets ; la page de l’API recommande également de ne pas l’intégrer au code client.
Après avoir vérifié la réponse, normalisez les entrées dans une table comportant des champs tels que username, media_id, collected_at, le type de contenu et les compteurs disponibles. Ne supprimez pas le JSON d’origine : il sera utile si le format de la réponse change ou si vous devez vérifier un calcul.
Dans la couche analytique, calculez le nombre de nouvelles publications par période, la valeur médiane des réactions disponibles par format et l’évolution du compteur d’une même publication entre deux instantanés. La médiane réduit l’influence d’une publication virale isolée sur le bilan. Comparez les comptes sur des périodes identiques et indiquez la taille de l’échantillon à côté de chaque agrégat.
Résultat obtenu
L’équipe disposera d’un tableau de publications reproductible et d’un bilan quotidien : fréquence de publication, répartition par format et évolution des réactions disponibles. Ces informations aident à formuler des hypothèses pour votre propre calendrier éditorial, plutôt qu’à simplement accumuler des captures d’écran du fil.
L’étape suivante consiste à envoyer les entrées normalisées vers Google Sheets, une base de données ou un outil de visualisation, puis à produire le bilan textuel dans une étape distincte. Si vous utilisez l’IA, fournissez-lui des données agrégées et demandez-lui de décrire les tendances observées en précisant la période et le nombre de publications ; laissez la décision stratégique à la personne responsable de la rédaction.
Commencez avec un compte et une route : vérifiez les paramètres et la structure de la réponse dans la description de l’IG Scraper API, puis fixez cette configuration dans votre planification. Cette méthode transforme le suivi des concurrents, d’une consultation manuelle ponctuelle, en un pipeline clair doté d’un historique conservé.