Instagram Automatisierung mit Instagrapi: Eine einfache Anleitung

Mark Ponomarev

Mark Ponomarev

5 June 2025

Instagram Automatisierung mit Instagrapi: Eine einfache Anleitung

Die Automatisierung von Aufgaben auf Instagram kann die Verwaltung Ihrer Online-Präsenz erheblich optimieren. instagrapi ist eine Python-Bibliothek, die genau dafür entwickelt wurde. Sie interagiert direkt mit den Backend-Systemen von Instagram – denselben, die auch die offizielle mobile App verwendet. Diese direkte Kommunikation macht instagrapi schnell und effizient und erfordert keinen Webbrowser.

Dieser Leitfaden soll einen klaren Weg für den Einstieg in instagrapi aufzeigen. Wir behandeln die Installation, die sichere Anmeldung bei Ihrem Instagram-Konto, die Durchführung gängiger Aktionen wie die Interaktion mit Beiträgen und Benutzern, das Hochladen von Inhalten und gehen auf wesentliche Praktiken ein, um sicherzustellen, dass Ihre Automatisierung sicher und effektiv ist.

💡
Möchten Sie ein großartiges API-Test-Tool, das schöne API-Dokumentation generiert?

Möchten Sie eine integrierte All-in-One-Plattform für Ihr Entwicklerteam, um mit maximaler Produktivität zusammenzuarbeiten?

Apidog erfüllt alle Ihre Anforderungen und ersetzt Postman zu einem viel günstigeren Preis!
button

Instagrapi auf Ihrem System installieren

Bevor Sie instagrapi verwenden können, müssen Sie es installieren. Stellen Sie zunächst sicher, dass Python auf Ihrem Computer installiert ist; instagrapi funktioniert am besten mit Python-Version 3.9 oder neuer. Sie können Ihre Python-Version überprüfen, indem Sie ein Terminal (Eingabeaufforderung, PowerShell oder Terminal unter macOS/Linux) öffnen und python --version oder python3 --version eingeben.

Sobald Python bereit ist, ist die Installation von instagrapi mit pip, dem Paketmanager von Python, unkompliziert. Führen Sie in Ihrem Terminal den folgenden Befehl aus:

pip install instagrapi

Wenn Sie speziell python3 für Ihre Python 3-Installation verwenden, benötigen Sie möglicherweise:

python3 -m pip install instagrapi

Dieser Befehl lädt instagrapi und alle abhängigen Bibliotheken herunter und installiert sie. Für ein saubereres Projektmanagement wird oft die Verwendung von Python Virtual Environments empfohlen, die Projektabhängigkeiten isolieren. Sie können eine solche Umgebung mit python3 -m venv your_project_name erstellen, aktivieren und dann den Befehl pip install instagrapi darin ausführen.

Verbindung zu Ihrem Instagram-Konto herstellen

Um Aktionen auf Instagram durchzuführen, muss sich Ihr Skript anmelden. instagrapi übernimmt diesen Prozess. Der erste Schritt in Ihrem Python-Skript besteht darin, die Klasse Client zu importieren und eine Instanz davon zu erstellen. Dieses Client-Objekt ist Ihr Hauptwerkzeug für alle Interaktionen.

from instagrapi import Client
import os
import time
import random

cl = Client()

Melden wir uns nun an. Es wird dringend empfohlen, Ihren Benutzernamen und Ihr Passwort nicht direkt in Ihrem Skript fest zu codieren. Die Verwendung von Umgebungsvariablen ist eine sicherere Methode.

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}")

Wenn für Ihr Konto die Zwei-Faktor-Authentifizierung (2FA) aktiviert ist, was für die Sicherheit großartig ist, erfordert die login-Methode einen zusätzlichen Parameter verification_code. Diesen Code erhalten Sie normalerweise von Ihrer Authenticator-App oder per SMS und übergeben ihn während des Anmeldeaufrufs: cl.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD, verification_code="YOUR_2FA_CODE").

Ständiges Anmelden mit Benutzername und Passwort kann ineffizient sein und unerwünschte Aufmerksamkeit von Instagram auf sich ziehen. Ein intelligenterer Ansatz besteht darin, Ihre Anmeldesitzung nach der ersten erfolgreichen Authentifizierung zu speichern und diese Sitzung dann für zukünftige Skriptausführungen neu zu laden.

So können Sie Sitzungen verwalten:

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.")

Dieser kombinierte Ansatz versucht zunächst, eine gespeicherte Sitzung zu verwenden, und greift bei Bedarf auf eine neue Anmeldung zurück, wobei die neue Sitzung für das nächste Mal gespeichert wird.

Wichtige Instagram-Interaktionen mit Instagrapi

Nach der Anmeldung können Sie mit Instagram interagieren. Nehmen Sie für die folgenden Beispiele an, dass cl Ihr erfolgreich angemeldetes Client-Objekt ist.

Benutzerinformationen abrufen
Sie können öffentliche Informationen über jeden Instagram-Benutzer abrufen, wenn Sie dessen Benutzernamen kennen. Dazu gehören die eindeutige Benutzer-ID (PK), der vollständige Name, die Bio, die Follower-Anzahl usw.

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}")

Interaktion mit Beiträgen (Medien)
Instagram-Beiträge werden in instagrapi als „Medien“ bezeichnet. Um mit einem Beitrag zu interagieren, benötigen Sie normalerweise dessen media_pk (eine eindeutige numerische ID für den Beitrag). Sie können diese media_pk aus der URL des Beitrags erhalten. Das folgende Beispiel zeigt, wie Sie Beitragsdetails abrufen. Interaktionen wie Liken oder Kommentieren sind sehr empfindlich gegenüber Automatisierung; verwenden Sie solche Funktionen sparsam und immer ethisch.

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}")

Um einen Beitrag zu liken, verwenden Sie cl.media_like(string_media_id_for_action). Um zu kommentieren, verwenden Sie cl.media_comment(string_media_id_for_action, text="Your comment"). Fügen Sie nach solchen Aktionen immer Verzögerungen (time.sleep()) ein.

Inhalte hochladen
instagrapi ermöglicht das Hochladen von Fotos, Videos, Alben und Stories.

Foto hochladen:
Sie benötigen den Pfad zu einer JPG-Bilddatei. Das folgende Beispiel skizziert die Struktur; Sie müssen einen gültigen Pfad zu einem Bild angeben.

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.")

Story hochladen:
Stories verwenden oft ein Seitenverhältnis von 9:16. Sie können Fotos oder Videos hochladen. Der Code zum Hochladen einer Foto-Story ähnelt dem eines normalen Fotobeitrags, verwendet aber 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.")

Sie können interaktive Elemente wie mentions und links hinzufügen, indem Sie StoryMention- oder StoryLink-Objekte vorbereiten und diese als Parameter an photo_upload_to_story übergeben.

Wichtige Überlegungen für reibungslose Automatisierung

Bei der Automatisierung von Instagram-Aktionen sind einige Praktiken entscheidend für die Zuverlässigkeit und zur Vermeidung von Problemen mit Ihrem Konto.

Verzögerungen einfügen: Menschliche Benutzer führen Aktionen nicht sofort nacheinander aus. Ihr Skript sollte dies ebenfalls nicht tun. Verwenden Sie time.sleep(random.uniform(min_seconds, max_seconds)) zwischen Aktionen, um natürliche Interaktionsmuster nachzuahmen. instagrapi selbst verfügt über eine Einstellung cl.delay_range = [min, max], die automatische Verzögerungen für bestimmte Operationen hinzufügt.

Proxies für intensive Nutzung in Betracht ziehen: Wenn Ihr Skript eine große Anzahl von Anfragen sendet oder wenn Sie mehrere Konten von derselben IP-Adresse aus verwalten, kann Instagram Ihre Aktivitäten einschränken. Die Verwendung eines Proxy-Servers (cl.set_proxy("your_proxy_string")) kann helfen, Ihre Anfragen zu verteilen und den Anschein zu erwecken, als kämen sie von verschiedenen Standorten.

Potenzielle Fehler behandeln: Es können Netzwerkprobleme auftreten, die API von Instagram kann sich ändern oder Sie können ein Rate Limit erreichen. Umschließen Sie Ihre instagrapi-Aufrufe in try...except-Blöcke, um diese Fehler elegant abzufangen. instagrapi verfügt über spezifische Ausnahmen wie RateLimitError, UserNotFound, MediaNotFound usw., die Sie für eine gezieltere Fehlerbehandlung abfangen können.

Verantwortungsbewusst und ethisch nutzen: Automatisierung ist mächtig. Vermeiden Sie Spamming, respektieren Sie die Privatsphäre der Benutzer und beteiligen Sie sich nicht an Aktivitäten, die gegen die Nutzungsbedingungen oder Community-Richtlinien von Instagram verstoßen. Das Ziel der Automatisierung sollte darin bestehen, echte Interaktionen zu verbessern oder Ihre Präsenz effizient zu verwalten, nicht zu manipulieren oder zu belästigen.

Ein einfaches Automatisierungsbeispiel: Liken der neuesten Beiträge für einen Hashtag

Erstellen wir ein kleines Skript, das die neuesten Beiträge für einen bestimmten Hashtag findet und einige davon liked. Dies demonstriert die Kombination mehrerer instagrapi-Funktionen. Verwenden Sie dieses Beispiel mit äußerster Vorsicht und nur bei Hashtags und in Mengen, die einer verantwortungsbewussten Nutzung entsprechen. Dieser Code dient zur Veranschaulichung, und aggressive Nutzung kann Ihrem Konto schaden.

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}")

Dieses Beispiel dient zur Veranschaulichung. Das Automatisieren von Likes, insbesondere in großen Mengen, kann von Instagram leicht als verdächtig eingestuft werden. Priorisieren Sie immer echtes Engagement gegenüber massenhaften automatisierten Aktionen.

Mit Instagrapi vorankommen

instagrapi bietet eine umfassende Sammlung von Werkzeugen für die Interaktion mit Instagram. Dieser Leitfaden hat nur an der Oberfläche gekratzt und gezeigt, wie Sie die Bibliothek einrichten, sich anmelden und einige der gängigsten Aktionen ausführen.

Um instagrapi wirklich zu meistern, erkunden Sie die offizielle Dokumentation. Die Datei README.md im Instagrapi GitHub-Repository ist der beste Ausgangspunkt und verlinkt normalerweise auf detailliertere Anleitungen und API-Referenzen im Ordner docs. Diese Ressourcen behandeln viele weitere Funktionen, erweiterte Einstellungen und spezifische Typen für verschiedene Instagram-Objekte.

Denken Sie daran, dass sich die Instagram-Plattform und ihre API ändern können, sodass das, was heute funktioniert, morgen möglicherweise Anpassungen erfordert. Sich über die instagrapi-Bibliothek und Community-Diskussionen auf dem Laufenden zu halten, kann Ihnen helfen, sich anzupassen. Viel Spaß beim Automatisieren, und tun Sie dies verantwortungsbewusst!

💡
Möchten Sie ein großartiges API-Test-Tool, das schöne API-Dokumentation generiert?

Möchten Sie eine integrierte All-in-One-Plattform für Ihr Entwicklerteam, um mit maximaler Produktivität zusammenzuarbeiten?

Apidog erfüllt alle Ihre Anforderungen und ersetzt Postman zu einem viel günstigeren Preis!
button

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen