Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SwiftyInsta — Instagram Private API Swift | Kitploit
Tools/GitHubGitHub/them4hd1/swiftyinsta
OSINT (Open-Source-Intelligence)Scripting & AutomatisierungInformationsbeschaffungSocial Engineering
GitHubthem4hd1/swiftyinsta

SwiftyInsta

Instagram Private API Swift

Repository anzeigen
230497vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SwiftyInsta (legacy)

Bitte beachte, dass SwiftyInsta nicht mehr aktiv gewartet wird.
Weitere Informationen findest du unter #244.
Schau dir Swiftagram an, wenn du nach aktuellen Alternativen suchst.


CI Status Version License Platform

Instagram bietet Entwicklern zwei Arten von APIs an. Die Instagram API Platform (extrem eingeschränkt in der Funktionalität und kurz vor der Einstellung) und die Instagram Graph API nur für Business- und Creator-Konten.

Allerdings verwenden Instagram-Apps eine dritte Art von API, die sogenannte Private API oder Unofficial API, und SwiftyInsta ist ein iOS, macOS, tvOS und watchOS Client dafür, vollständig in Swift geschrieben. Du kannst versuchen, eine bessere Instagram-Erfahrung für deine Benutzer zu schaffen oder Bots zur Automatisierung verschiedener Aufgaben schreiben.

Diese Private API benötigt weder Token noch App-Registrierung, ist aber von Instagram nicht für die externe Nutzung autorisiert. Verwendung auf eigene Gefahr.

Installation

Swift Package Manager (Xcode 11 und höher)

  1. Wähle File/Swift Packages/Add Package Dependency… aus dem Menü.
  2. Füge https://github.com/TheM4hd1/SwiftyInsta.git ein.
  3. Folge den Schritten.

CocoaPods

CocoaPods ist ein Abhängigkeitsmanager für Cocoa-Projekte. Du kannst ihn mit dem folgenden Befehl installieren:

root@kitploit:~
$ gem install cocoapods

Um SwiftyInsta mit CocoaPods in dein Xcode-Projekt zu integrieren, gib es in deinem Podfile an:

root@kitploit:~
use_frameworks!

target '<Your Target Name>' do
    pod 'SwiftyInsta', '~> 2.0'
end

Führe dann den folgenden Befehl aus:

root@kitploit:~
$ pod install

SwiftyInsta benötigt CryptoSwift und keychain-swift.

Anmeldung

Credentials

root@kitploit:~
// these need to be strong references.
self.credentials = Credentials(username: /* username */, password: /* password */, verifyBy: .text)
self.handler = APIHandler()
handler.authenticate(with: .user(credentials)) {
    switch $0 {
    case .success(let response, _):
        print("Login successful.")
        // persist cache safely in the keychain for logging in again in the future.
        guard let key = response.persist() else { return print("`Authentication.Response` could not be persisted.") }
        // store the `key` wherever you want, so you can access the `Authentication.Response` later.
        // `UserDefaults` is just an example.
        UserDefaults.standard.set(key, forKey: "current.account")
        UserDefaults.standard.synchronize()
    case .failure(let error):
        if error.requiresInstagramCode {
            /* update interface to ask for code */
        } else {
            /* notify the user */
        }
    }
}

Sobald der Benutzer den Zwei-Faktor-Authentifizierungscode oder den Challenge-Code eingegeben hat, tust du einfach Folgendes:

root@kitploit:~
self.credentials.code = /* the code */

Und der completionHandler im vorherigen authenticate(with: completionHandler:) wird die Antwort automatisch abfangen.

LoginWebViewController

root@kitploit:~
let login = LoginWebViewController { controller, result in
    controller.dismiss(animated: true, completion: nil)
    // deal with authentication response.
    guard let (response, _) = try? result.get() else { return print("Login failed.") }
    print("Login successful.")
    // persist cache safely in the keychain for logging in again in the future.
    guard let key = response.persist() else { return print("`Authentication.Response` could not be persisted.") }
    // store the `key` wherever you want, so you can access the `Authentication.Response` later.
    // `UserDefaults` is just an example.
    UserDefaults.standard.set(key, forKey: "current.account")
    UserDefaults.standard.synchronize()
}
if #available(iOS 13, *) {
    present(login, animated: true, completion: nil) // just swipe down to dismiss.
} else {
    present(UINavigationController(rootViewController: login),  // already adds a `Cancel` button to dismiss it.
            animated: true,
            completion: nil)
}

Oder implementiere deinen eigenen benutzerdefinierten UIViewController mit LoginWebView und übergib ihn an eine APIHandler-authenticate-Methode mit .webView(/* your login web view */).

Authentication.Response

Wenn du bereits eine Authentication.Response eines Benutzers persistiert hast:

root@kitploit:~
// recover the `key` returned by `Authentication.Response.persist()`.
// in our example, we stored it in `UserDefaults`.
guard let key = UserDefaults.standard.string(forKey: "current.account") else { return print("`key` not found.") }
// recover the safely persisted `Authentication.Response`.
guard let cache = Authentication.Response.persisted(with: key) else { return print("`Authentication.Response` not found.") }
// log in.
let handler = APIHandler()
handler.authenticate(with: .cache(cache)) { _ in
    /* do something here */
}

Verwendung

Alle Endpunkte sind von deiner APIHandler-Instanz aus leicht zugänglich.

root@kitploit:~
let handler: APIHandler = /* a valid, authenticated handler */
// for instance you can…
// …fetch your inbox.
handler.messages.inbox(with: .init(maxPagesToLoad: .max),
                       updateHandler: nil,
                       completionHandler: { _, _ in /* do something */ })
// …fetch all your followers.
handler.users.following(user: .me,
                        with: .init(maxPagesToLoad: .max),
                        updateHandler: nil,
                        completionHandler: { _, _ in /* do something */ })

Darüber hinaus zeigen Antworten jetzt jeden einzelnen Wert, der in der von der API zurückgegebenen JSON-Datei enthalten ist: Greife einfach auf das rawResponse einer beliebigen ParsedResponse zu und beginne zu stöbern, oder bleibe bei den vorgeschlagenen Zusätzen (z.B. username, name von User usw. und aspectRatio, takenAt, content von Media usw.).

Beiträge

Pull Requests und Issues sind mehr als willkommen.

Autoren

  • Mahdi Makhdumi (@TheM4hd1), 1.* Betreuer
  • Stefano Bertagno (@sbertix), 2.* Betreuer

Wir suchen aktiv nach Betreuern.
Weitere Informationen findest du unter #244.

Lizenz

SwiftyInsta ist unter der MIT-Lizenz lizenziert. Weitere Informationen findest du unter LICENSE.

Tool herunterladen