Claude · Automation

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.

QQuentin Megevand
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.

Claude AI Lab

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 →
Ce qu'il te faut
1
Un accès Claude Code. Inclus dans Claude Pro, ou en facturation API.
2
Un Mac avec Python 3.9 ou plus récent. Le planificateur utilise launchd, natif macOS. Sur Linux, remplace-le par cron, tout le reste est identique. Vérifie avec python3 --version.
3
Un compte Notion. On y crée une intégration interne gratuite.
4
Un compte Instagram avec des posts enregistrés. Idéalement rangés en collections, on verra pourquoi.
1

Comprends le système

🧠 architecture en 3 pièces

Le pipeline tient en trois pièces :

🐍
sync.py
Un script Python qui récupère tes posts enregistrés et écrit les nouveaux dans Notion, deux fois par jour. La couche bête : elle collecte, déduplique, range.
🗄️
Deux bases Notion
« Instagram Saves » reçoit les saves bruts. « Content Ideas » reçoit les idées prêtes à tourner. Deux bases séparées, ton calendrier reste propre.
/instagram-sync
Une commande Claude Code qui lit les saves non traités et les reformule en idées de contenu pour ton audience. La couche intelligente : elle lit, recadre, adapte.

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.

Le principe clé
La couche bête tourne toute seule en arrière-plan. La couche intelligente ne tourne que quand toi tu es prêt à penser contenu. C'est cette séparation qui rend le système tenable.
2

Prépare Notion

🗄️ notion.so/profile/integrations
5
Crée une intégration interne. Dans les réglages Notion, section intégrations (ou directement sur notion.so/profile/integrations), crée une nouvelle intégration, coche les capacités Read, Insert et Update, puis copie le token. Il commence par ntn_.
6
Crée la base « Instagram Saves ». C'est ton flux de recherche brut.
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)
7
Crée la base « Content Ideas ». C'est là que vivent les idées prêtes à tourner.
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)
8
Connecte l'intégration aux deux bases et note leurs IDs. Sur chaque base : menu à trois points, « Connexions », choisis ton intégration. L'ID est la chaîne de 32 caractères dans l'URL de la base, juste avant le ?v=.
Pourquoi deux bases
Les saves s'accumulent en arrière-plan sans jamais polluer ton calendrier de contenu. Tu traites par lots, ton plan de production reste net.
3

Récupère tes cookies Instagram

🔑 Chrome DevTools

Le script s'authentifie avec les cookies de session que ton navigateur envoie déjà à chaque requête.

9
Ouvre DevTools sur Instagram. Connecte-toi sur instagram.com dans Chrome, puis Cmd+Option+I, onglet « Application », déplie « Cookies » dans la colonne de gauche et clique sur https://www.instagram.com.
10
Copie trois valeurs. sessionid, csrftoken et ds_user_id (ton identifiant Instagram numérique). Garde-les sous la main pour l'étape suivante.
Traite ces cookies comme un mot de passe
Quiconque possède ton 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.
4

Génère le script de sync

🐍 sync.py, généré par Claude Code
11
Colle ce prompt dans Claude Code, ouvert dans un dossier projet dédié.
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/).
12
Installe l'environnement. python3 -m venv .venv, puis source .venv/bin/activate, puis pip install -r requirements.txt.
13
Remplis ta config. 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.
14
Lance ton premier sync. .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 ».
À ce stade
L'infrastructure est finie. Tout ce qui suit est de la configuration. Sauvegarde ton 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.
5

Planifie avec launchd

9h et 21h, même Mac fermé le soir

launchd est le planificateur natif du Mac : il démarre au boot et relance ton job après un redémarrage, sans rien à maintenir.

15
Colle ce prompt dans Claude Code.
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.
16
Installe et vérifie. Exécute les deux commandes fournies, puis launchctl list | grep instagram-saves. Si une entrée apparaît, le planificateur tourne.
Après une mise à jour macOS
Si le job ne se déclenche plus, recharge-le : launchctl load ~/Library/LaunchAgents/com.monnom.instagram-saves-sync.plist.
6

Lance ta première fournée d'idées

/instagram-sync ideate

La commande est la couche créative du système. Elle vit dans un fichier markdown que Claude Code charge comme commande slash.

17
Colle ce prompt dans Claude Code, en remplaçant les placeholders par ta niche et tes piliers.
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.
18
Lance l'idéation. Ouvre Claude Code dans ton dossier projet et tape /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.

La routine qui fait vivre le système
Hebdomadaire, pas quotidienne. Une session par semaine, un lot complet de saves, des idées plus nettes et moins de charge mentale. Le sync, lui, tourne tous les jours sans toi.

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 ?

Et au quotidien, je partage un reel par jour sur Instagram : @quentin_iamarketing