L'automatisation des tâches sur Instagram peut considérablement simplifier la gestion de votre présence en ligne. instagrapi
est une bibliothèque Python conçue pour vous aider à faire exactement cela. Elle interagit directement avec les systèmes backend d'Instagram – les mêmes que ceux utilisés par l'application mobile officielle. Cette communication directe rend instagrapi
rapide et efficace, et elle ne nécessite pas de navigateur web pour fonctionner.
Ce guide vise à fournir un chemin clair pour démarrer avec instagrapi
. Nous aborderons son installation, la connexion sécurisée à votre compte Instagram, l'exécution d'actions courantes comme interagir avec des publications et des utilisateurs, le téléchargement de contenu, et nous évoquerons les pratiques essentielles pour garantir que votre automatisation est sûre et efficace.
Vous voulez une plateforme intégrée et tout-en-un pour que votre équipe de développeurs travaille ensemble avec une productivité maximale ?
Apidog répond à toutes vos demandes et remplace Postman à un prix beaucoup plus abordable !
Installer Instagrapi sur Votre Système
Avant de pouvoir utiliser instagrapi
, vous devez l'installer. Tout d'abord, assurez-vous que Python est installé sur votre ordinateur ; instagrapi
fonctionne mieux avec Python version 3.9 ou ultérieure. Vous pouvez vérifier votre version de Python en ouvrant un terminal (Invite de commandes, PowerShell ou Terminal sur macOS/Linux) et en tapant python --version
ou python3 --version
.
Une fois que Python est prêt, l'installation de instagrapi
est simple en utilisant pip
, l'installateur de paquets de Python. Dans votre terminal, exécutez la commande suivante :
pip install instagrapi
Si vous utilisez python3
spécifiquement pour votre installation de Python 3, vous pourriez avoir besoin de :
python3 -m pip install instagrapi
Cette commande téléchargera et installera instagrapi
ainsi que toutes les autres bibliothèques dont elle dépend. Pour une gestion de projet plus propre, il est souvent recommandé d'utiliser des environnements virtuels Python, qui isolent les dépendances du projet. Vous pouvez en créer un avec python3 -m venv your_project_name
, l'activer, puis exécuter la commande pip install instagrapi
à l'intérieur.
Connexion à Votre Compte Instagram
Pour effectuer des actions sur Instagram, votre script doit se connecter. instagrapi
gère ce processus. La première étape de votre script Python sera d'importer la classe Client
et d'en créer une instance. Cet objet Client
sera votre outil principal pour toutes les interactions.
from instagrapi import Client
import os
import time
import random
cl = Client()
Maintenant, connectons-nous. Il est fortement conseillé de ne pas coder en dur votre nom d'utilisateur et votre mot de passe directement dans votre script. L'utilisation de variables d'environnement est une méthode plus sécurisée.
INSTAGRAM_USERNAME = os.getenv("INSTA_USERNAME", "your_insta_username")
INSTAGRAM_PASSWORD = os.getenv("INSTA_PASSWORD", "your_insta_password")
try:
cl.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD)
print(f"Login successful as @{INSTAGRAM_USERNAME}!")
except Exception as e:
print(f"Login failed for @{INSTAGRAM_USERNAME}. Error: {e}")
Si votre compte a l'Authentification à deux facteurs (2FA) activée, ce qui est excellent pour la sécurité, la méthode login
nécessitera un paramètre verification_code
supplémentaire. Vous obtiendriez généralement ce code de votre application d'authentification ou d'un SMS et le passeriez lors de l'appel de connexion : cl.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD, verification_code="YOUR_2FA_CODE")
.
Se connecter constamment avec un nom d'utilisateur et un mot de passe peut être inefficace et attirer une attention indésirable d'Instagram. Une approche plus intelligente consiste à enregistrer votre session de connexion après la première authentification réussie, puis à recharger cette session pour les exécutions futures du script.
Voici comment vous pouvez gérer les sessions :
from instagrapi.exceptions import LoginRequired
SESSION_FILE_PATH = "my_active_session.json"
if os.path.exists(SESSION_FILE_PATH):
cl.load_settings(SESSION_FILE_PATH)
print(f"Loaded session from {SESSION_FILE_PATH}.")
try:
cl.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD)
cl.get_timeline_feed()
print("Session is valid and login successful using saved session.")
except LoginRequired:
print("Saved session was invalid. Need to perform a fresh login.")
try:
cl.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD)
cl.dump_settings(SESSION_FILE_PATH)
print("Fresh login successful, new session saved.")
except Exception as e_relogin:
print(f"Fresh login failed after invalid session: {e_relogin}")
except Exception as e_session_use:
print(f"Error while using saved session: {e_session_use}. Trying fresh login.")
try:
cl.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD)
cl.dump_settings(SESSION_FILE_PATH)
print("Fresh login successful after session error, new session saved.")
except Exception as e_fresh_fallback:
print(f"Fresh login fallback also failed: {e_fresh_fallback}")
else:
print("No session file found. Performing fresh login...")
try:
cl.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD)
cl.dump_settings(SESSION_FILE_PATH)
print(f"Fresh login successful, session saved to {SESSION_FILE_PATH}.")
except Exception as e_initial_login:
print(f"Initial fresh login failed: {e_initial_login}")
if cl.user_id:
print(f"Successfully authenticated. User ID: {cl.user_id}")
else:
print("Authentication failed. Check credentials and previous error messages.")
Cette approche combinée tente d'abord d'utiliser une session enregistrée et revient à une nouvelle connexion si nécessaire, enregistrant la nouvelle session pour la prochaine fois.
Interactions Essentielles sur Instagram avec Instagrapi
Une fois connecté, vous pouvez commencer à interagir avec Instagram. Supposons que cl
est votre objet Client
connecté avec succès pour les exemples ci-dessous.
Obtenir des Informations sur l'Utilisateur
Vous pouvez récupérer des informations publiques sur n'importe quel utilisateur Instagram si vous connaissez son nom d'utilisateur. Cela inclut son ID Utilisateur unique (PK), son nom complet, sa biographie, le nombre de ses abonnés, etc.
target_user = "instagram"
try:
user_id_num = cl.user_id_from_username(target_user)
print(f"The unique User ID for @{target_user} is {user_id_num}.")
user_details = cl.user_info_by_username(target_user)
print(f"\nDetails for @{user_details.username}:")
print(f" Followers: {user_details.follower_count}")
print(f" Bio: {user_details.biography[:50]}...")
except Exception as e:
print(f"Could not fetch info for @{target_user}. Error: {e}")
Interagir avec les Publications (Médias)
Les publications Instagram sont appelées "médias" dans instagrapi
. Pour interagir avec une publication, vous avez généralement besoin de son media_pk
(un ID numérique unique pour la publication). Vous pouvez obtenir ce media_pk
à partir de l'URL de la publication. L'exemple suivant montre comment obtenir les détails d'une publication. Les interactions comme aimer ou commenter sont très sensibles à l'automatisation ; utilisez ces fonctionnalités avec parcimonie et toujours de manière éthique.
example_post_url = "https://www.instagram.com/p/C_q9Jg1NAn1/"
try:
media_pk_val = cl.media_pk_from_url(example_post_url)
print(f"The media_pk for the post is: {media_pk_val}")
media_details = cl.media_info(media_pk_val)
print(f"\nPost by @{media_details.user.username} has {media_details.like_count} likes.")
print(f"Caption snippet: {media_details.caption_text[:60]}...")
string_media_id_for_action = cl.media_id(media_pk_val)
print(f"String media_id for actions (like liking/commenting): {string_media_id_for_action}")
except Exception as e:
print(f"Error interacting with post {example_post_url}. Error: {e}")
Pour aimer une publication, vous utiliseriez cl.media_like(string_media_id_for_action)
. Pour commenter, vous utiliseriez cl.media_comment(string_media_id_for_action, text="Votre commentaire")
. Incluez toujours des délais (time.sleep()
) après de telles actions.
Télécharger du Contenuinstagrapi
vous permet de télécharger des photos, des vidéos, des albums et des stories.
Télécharger une Photo :
Vous aurez besoin du chemin d'accès à un fichier image JPG. L'exemple ci-dessous décrit la structure ; vous devrez fournir un chemin d'accès valide vers une image.
from pathlib import Path
image_path_to_upload = Path("your_image.jpg")
photo_caption = "My first photo upload with Instagrapi! #Python #Automation"
if image_path_to_upload.exists() and image_path_to_upload.suffix.lower() == ".jpg":
try:
uploaded_photo = cl.photo_upload(image_path_to_upload, photo_caption)
print(f"Photo uploaded! View it at: https://www.instagram.com/p/{uploaded_photo.code}/")
except Exception as e:
print(f"Photo upload failed for {image_path_to_upload}. Error: {e}")
else:
print(f"Replace 'your_image.jpg' with a valid path to a JPG file.")
Télécharger une Story :
Les stories utilisent souvent un rapport d'aspect 9:16. Vous pouvez télécharger des photos ou des vidéos. Le code pour télécharger une story photo est similaire à une publication photo normale mais utilise photo_upload_to_story
.
from instagrapi.types import StoryMention, StoryLink
story_image_path = Path("your_story_image.jpg")
if story_image_path.exists() and story_image_path.suffix.lower() == ".jpg":
try:
uploaded_story = cl.photo_upload_to_story(
story_image_path,
caption="My Instagrapi Story!"
)
print(f"Story uploaded successfully! PK: {uploaded_story.pk}")
except Exception as e:
print(f"Story upload failed for {story_image_path}. Error: {e}")
else:
print(f"Replace 'your_story_image.jpg' with a valid path to a 9:16 JPG file for stories.")
Vous pouvez ajouter des éléments interactifs comme des mentions
et des links
en préparant des objets StoryMention
ou StoryLink
et en les passant comme paramètres à photo_upload_to_story
.
Considérations Clés pour une Automatisation Fluide
Lorsque vous automatisez des actions sur Instagram, quelques pratiques sont cruciales pour la fiabilité et pour éviter les problèmes avec votre compte.
Introduire des Délais : Les utilisateurs humains n'effectuent pas d'actions instantanément les unes après les autres. Votre script ne devrait pas non plus. Utilisez time.sleep(random.uniform(min_seconds, max_seconds))
entre les actions pour imiter les modèles d'interaction naturels. instagrapi
lui-même a un paramètre cl.delay_range = [min, max]
qui ajoute des délais automatiques pour certaines opérations.
Envisager des Proxies pour une Utilisation Intensive : Si votre script effectue un grand nombre de requêtes, ou si vous gérez plusieurs comptes depuis la même adresse IP, Instagram pourrait limiter votre activité. L'utilisation d'un serveur proxy (cl.set_proxy("votre_chaine_proxy")
) peut aider à distribuer vos requêtes et à donner l'impression qu'elles proviennent de différents endroits.
Gérer les Erreurs Potentielles : Des problèmes réseau peuvent survenir, l'API d'Instagram peut changer, ou vous pourriez atteindre une limite de débit. Enveloppez vos appels instagrapi
dans des blocs try...except
pour intercepter ces erreurs gracieusement. instagrapi
a des exceptions spécifiques comme RateLimitError
, UserNotFound
, MediaNotFound
, etc., que vous pouvez intercepter pour une gestion des erreurs plus ciblée.
Utiliser de Manière Responsable et Éthique : L'automatisation est puissante. Évitez le spam, respectez la vie privée des utilisateurs et ne vous engagez pas dans des activités qui violent les Conditions d'utilisation ou les Règles de la communauté d'Instagram. L'objectif de l'automatisation doit être d'améliorer l'interaction authentique ou de gérer efficacement votre présence, pas de manipuler ou d'ennuyer.
Un Exemple Simple d'Automatisation : Aimer les Publications Récentes pour un Hashtag
Créons un petit script qui trouve les publications récentes pour un hashtag spécifique et en aime quelques-unes. Cela démontre la combinaison de plusieurs fonctionnalités d'instagrapi
. Utilisez cet exemple avec une extrême prudence et uniquement sur des hashtags et en quantités qui correspondent à une utilisation responsable. Ce code est illustratif et une utilisation agressive peut nuire à votre compte.
target_hashtag_for_liking = "pythonprogramming"
number_of_posts_to_like = 1
try:
print(f"Fetching recent media for #{target_hashtag_for_liking}...")
recent_hashtag_media = cl.hashtag_medias_recent(target_hashtag_for_liking, amount=number_of_posts_to_like * 2)
liked_count = 0
if recent_hashtag_media:
for media_item in recent_hashtag_media:
if liked_count >= number_of_posts_to_like:
break
if not media_item.has_liked:
print(f" Attempting to like post PK {media_item.pk} by @{media_item.user.username}...")
try:
media_id_str_to_like = cl.media_id(media_item.pk)
cl.media_like(media_id_str_to_like)
liked_count += 1
print(f" Successfully liked. Liked {liked_count}/{number_of_posts_to_like} posts so far.")
time.sleep(random.uniform(15, 25))
except Exception as e_like:
print(f" Could not like post PK {media_item.pk}. Error: {e_like}")
else:
print(f" Skipping already liked post PK {media_item.pk} by @{media_item.user.username}.")
print(f"\nFinished liking script for #{target_hashtag_for_liking}. Total liked in this run: {liked_count}")
else:
print(f"No recent media found for #{target_hashtag_for_liking}.")
except Exception as e_hashtag_script:
print(f"An error occurred in the hashtag liking script: {e_hashtag_script}")
Cet exemple est à des fins de démonstration. L'automatisation des "likes", surtout en grand nombre, peut facilement être signalée par Instagram. Privilégiez toujours l'engagement authentique plutôt que les actions automatisées de masse.
Aller Plus Loin avec Instagrapi
instagrapi
offre un ensemble complet d'outils pour interagir avec Instagram. Ce guide a effleuré la surface, vous montrant how to set up, vous connecter et effectuer certaines des actions les plus courantes.
Pour vraiment maîtriser instagrapi
, explorez sa documentation officielle. Le fichier README.md
sur le dépôt GitHub d'Instagrapi est le meilleur point de départ, renvoyant généralement à des guides plus détaillés et des références d'API dans son dossier docs
. Ces ressources couvrent de nombreuses autres fonctionnalités, des paramètres avancés et des types spécifiques pour divers objets Instagram.
N'oubliez pas que la plateforme Instagram et son API peuvent changer, donc ce qui fonctionne aujourd'hui pourrait nécessiter des ajustements demain. Rester à jour avec la bibliothèque instagrapi
et les discussions de la communauté peut vous aider à vous adapter. Bonne automatisation, et faites-le de manière responsable !
Vous voulez une plateforme intégrée et tout-en-un pour que votre équipe de développeurs travaille ensemble avec une productivité maximale ?
Apidog répond à toutes vos demandes et replaces Postman at a much more affordable price !