Transforme tes saves Instagram en machine à idées de contenu
Le pipeline complet pour que tes posts enregistrés atterrissent tout seuls dans Notion deux fois par jour, puis deviennent des idées de contenu prêtes à tourner avec Claude Code. Prompts à copier inclus.
31 août 2026 · 10 min de lecture
Tu enregistres des posts Instagram pour t'en inspirer plus tard. Puis tu passes au reel suivant et tu ne les rouvres jamais. Chaque « je reviendrai dessus » devient du poids mort au fond d'une collection que tu ne consultes pas.
Ce guide transforme ce poids mort en pipeline : tes saves partent tout seuls dans Notion deux fois par jour, et une commande Claude Code les convertit en idées de contenu dans ta voix, avec hooks, plan et déclinaisons par plateforme.
Tu ne changes rien à ton geste. Tu continues d'enregistrer ce qui t'inspire, et le système fait le reste.Chaque étape produit un fichier qui marche. Zéro ligne de Python à écrire toi-même : Claude Code génère tout. Vérifié avec Claude Code 2.1.251 le 31 août 2026.
Le Claude AI Lab, c'est ma communauté Skool où je partage mes systèmes Claude et les modules plus avancés. L'accès est à $67/mois.
Rejoindre le Lab →python3 --version.Comprends le système
Le pipeline tient en trois pièces :
Le flux complet : launchd lance sync.py à 9h et 21h. Les nouveaux saves atterrissent dans Notion avec le statut « New ». Une fois par semaine, tu ouvres Claude Code, tu tapes /instagram-sync ideate, tu approuves les idées qui te plaisent, et elles atterrissent dans ta base « Content Ideas » avec hooks, plan et déclinaisons par plateforme.
Un point d'honnêteté avant de construire : Instagram n'expose aucune API officielle pour tes posts enregistrés, même via l'API Graph. Le script rejoue donc les mêmes appels que ton navigateur, sur ton propre compte, avec tes propres cookies de session, à deux passages par jour. C'est sobre et discret, mais la collecte automatisée reste contraire aux conditions d'utilisation de Meta : le risque est faible à cette fréquence, pas nul. Tu construis en connaissance de cause.
Prépare Notion
ntn_.Name (titre) Status (select : New, Reviewed, Used)
URL (URL) Type (select : Post, Reel, Carousel)
Author (texte) Collection (select)
Caption (texte) Media ID (texte)
Saved (date)
Name (titre) Pillar (select : tes piliers de contenu)
Platform (multi-select : Instagram, TikTok, YouTube)
Format (select : Carousel, Reel, Short, Long-form)
Hook Options (texte) Priority (select : High, Medium, Low)
Angle (texte) Week Of (date)
Status (select : Not started, In progress, Done)
?v=.Récupère tes cookies Instagram
Le script s'authentifie avec les cookies de session que ton navigateur envoie déjà à chaque requête.
sessionid, csrftoken et ds_user_id (ton identifiant Instagram numérique). Garde-les sous la main pour l'étape suivante.sessionid accède à ton compte. Ils ne quittent jamais ta machine : ils vivent dans un config.json local, exclu de git. Instagram fait tourner ses cookies toutes les quelques semaines : quand le sync se met à échouer, reviens ici chercher des valeurs fraîches.Génère le script de sync
Construis un script Python `sync.py` qui récupère mes posts Instagram
enregistrés et écrit les nouveaux dans une base Notion.
## Entrées (depuis config.json dans le même dossier)
ig_session_id, ig_csrftoken, ig_user_id (cookies web Instagram),
notion_token (token ntn_), notion_database_id (base Instagram Saves),
collections_filter (liste optionnelle de collections à synchroniser).
## Appels Instagram (imiter le client web, pas l'app mobile)
Headers : User-Agent Chrome desktop, X-IG-App-ID: 936619743392459.
Cookies : sessionid, csrftoken, ds_user_id.
Valider la session : GET /api/v1/accounts/edit/web_form_data/
Récupérer les saves : GET /api/v1/feed/saved/posts/?count=50,
paginer avec next_max_id, 1 seconde de pause entre les pages.
Lister les collections : GET /api/v1/collections/list/
## Déduplication
state.json contient les media IDs déjà synchronisés. Ignorer tout
post déjà présent. N'ajouter un ID qu'après une écriture Notion réussie.
## Écritures Notion (SDK officiel notion-client)
Une page par nouveau post : Name (@auteur/code), URL, Type (select
selon media_type), Author, Status = "New", Media ID, Saved (date du
jour), Caption (tronquée à 1900 caractères), Collection si filtre actif.
URL : https://instagram.com/reel/CODE/ pour les reels, /p/CODE/ sinon.
## Logs et erreurs
Logger vers stdout et sync.log. Ligne finale :
"Sync complete: N new | N skipped | N total | N errors".
Erreur sur un post : logger et continuer, ne jamais crasher le run.
Un ID en échec ne rentre PAS dans state.json (retenté au run suivant).
Session invalide : sortir immédiatement avec un message clair.
## Génère aussi
requirements.txt (requests, notion-client>=3.0),
config.example.json (placeholders), .gitignore (config.json,
state.json, sync.log, .venv/).
python3 -m venv .venv, puis source .venv/bin/activate, puis pip install -r requirements.txt.cp config.example.json config.json, puis remplace chaque placeholder : les trois cookies de l'étape 10, ton token ntn_, l'ID de ta base « Instagram Saves ». Le collections_filter est optionnel : liste seulement les collections qui nourrissent ton contenu, le reste ne rentre pas..venv/bin/python3 sync.py. Un run réussi se termine par la ligne de résumé, et ta base Notion se remplit de lignes en statut « New ».state.json de temps en temps : c'est lui qui empêche les doublons, et s'il disparaît, le prochain run recrée chaque save en double.Planifie avec launchd
launchd est le planificateur natif du Mac : il démarre au boot et relance ton job après un redémarrage, sans rien à maintenir.
Génère un fichier launchd `com.monnom.instagram-saves-sync.plist` qui
lance `.venv/bin/python3 sync.py` depuis mon dossier projet à 9h00 et
21h00 tous les jours. Chemins absolus partout. stdout vers
launchd-stdout.log et stderr vers launchd-stderr.log dans le dossier
projet. Mon dossier projet : [TON_CHEMIN_ABSOLU]
Donne-moi ensuite les deux commandes pour l'installer :
copie vers ~/Library/LaunchAgents/ puis chargement avec launchctl.
launchctl list | grep instagram-saves. Si une entrée apparaît, le planificateur tourne.launchctl load ~/Library/LaunchAgents/com.monnom.instagram-saves-sync.plist.Lance ta première fournée d'idées
La commande est la couche créative du système. Elle vit dans un fichier markdown que Claude Code charge comme commande slash.
Crée une commande slash `.claude/commands/instagram-sync.md` qui gère
six actions selon ma demande :
1. Sync immédiat : lancer `.venv/bin/python3 sync.py`, puis enchaîner
sur l'idéation s'il y a des saves en statut "New".
2. Idéation (le cœur) :
- Lire la base Instagram Saves (ID : [ID_BASE_SAVES]) filtrée sur
Status = "New". Au-delà de 10 saves, traiter par lots de 10.
- Pour chaque save, générer 1 idée : reformuler le concept pour mon
audience ([TA_NICHE]), assigner un pilier selon la collection
d'origine (mon mapping : [COLLECTION vers PILIER]), écrire 3 hooks
(curiosité, valeur, émotion), un plan HOOK puis 3-4 points puis CTA,
et les déclinaisons : Instagram (carousel ou reel), TikTok (script
30-60 s), YouTube seulement si le sujet a la profondeur long format.
Priorité : High pour les collections cœur ou les sujets chauds,
Medium pour un bon overlap d'audience, Low pour l'inspiration.
- Présenter toutes les idées et demander : tout approuver, choisir
par numéro, tout passer, ou modifier.
- Pour chaque idée approuvée, créer une page dans Content Ideas
(ID : [ID_BASE_IDEAS]) avec toutes les propriétés remplies et le
plan complet dans le corps de page.
- Passer chaque save traité en "Used" (approuvé) ou "Reviewed" (passé).
- Terminer par un résumé : saves traités, idées générées, idées
enregistrées, titres.
3. État du sync : lire state.json et les 20 dernières lignes de
sync.log, rapporter dernier run et erreurs récentes.
4. État du planificateur : `launchctl list | grep instagram-saves`.
5. Rafraîchir la session : me guider pour récupérer des cookies
frais dans DevTools puis mettre à jour config.json et tester.
6. Voir les derniers saves : lire la base triée par date, récent d'abord.
/instagram-sync ideate. Claude lit tes saves « New », présente les idées, écrit celles que tu approuves dans « Content Ideas », et marque les saves traités.Ouvre ta base « Content Ideas » : chaque idée approuvée y est, avec son angle, son plan et ses déclinaisons par plateforme, prête à tourner.
Trois réglages qui changent tout
Enregistre avec intention. Crée une collection Instagram par pilier de contenu avant de lancer le système. Des saves rangés donnent des idées rangées : le mapping collection vers pilier est l'endroit exact où le moteur prend ta voix. Dix minutes de personnalisation dans le prompt de l'étape 17, c'est le meilleur ratio effort sur résultat de tout le pipeline.
Traite par lots. Résiste à l'envie de lancer l'idéation tous les jours. Une revue hebdomadaire d'une semaine complète de saves produit des idées plus tranchées, parce que tu vois les motifs qui se répètent dans ce qui t'a arrêté.
Étends le motif. La même architecture fonctionne pour tes bookmarks X, ta liste « à regarder » YouTube ou tes favoris TikTok : même script de collecte, mêmes bases, seuls les appels d'API changent. Commence par Instagram, c'est là que dort ton meilleur backlog.
Chaque post que tu enregistres devient une idée de contenu dans ta voix, avec ses hooks et son plan. Tes saves ne sont plus du poids mort : c'est ton pipeline de production qui se remplit tout seul.
Tu veux aller plus loin ?
Dans le Lab, je partage mes automatisations Claude et n8n, de l'idée au truc qui tourne tout seul pendant que tu dors.
Une session ou un programme dédié, calibré sur tes outils et tes cas d'usage.
Et au quotidien, je partage un reel par jour sur Instagram : @quentin_iamarketing