web-dev-qa-db-fra.com

Comment obtenir la vraie image HQ de l'API Instagram?

Premièrement, il existe déjà des questions à ce sujet, mais aucune ne couvre mon problème, entièrement, car ce n'est pas les données dont j'ai besoin ni ne fonctionne pas correctement.

Il existe des services comme Instadp qui sont capables de vous montrer la version HQ de n'importe quelle image de profil de Instagram. Maintenant, je me demande comment cela est possible?

J'ai fait des recherches et j'ai pu trouver une URL de qualité supérieure lors de l'accès https://www.instagram.com/instagramforbusiness/?__a=1 (voir profile_pic_url_hd, répondit ici ). Cependant, Instadp semble avoir un backend qui renvoie une URL différente qui redirige vers une image de qualité supérieure: https://instadp-cors-22621.appot.com/get-hd?id=1107766105 (Voir à hd_profile_pic_url_info, J'ai extrait l'identifiant de l'URL à partir du résultat de l'?__a=1 relier). J'ai testé cela avec mon profil personnel et j'ai pu obtenir l'image de moi-même dans une qualité exceptionnelle de 1024x1024. Cependant, le ?__a=1 Link semble seulement renvoyer un lien pour ma photo de profil en 320x320.

Depuis que l'Instadp semble ne pas être le seul joueur capable d'aller chercher des images de profil au siège, je suis allé de l'avant et a comparé les regards de ces joueurs. Il semble que chaque service semble avoir une URL différente de la photo de profil du siège du même compte Instagram. Donc, ma conclusion est que l'API Instagram est impliquée dans tout cela.

J'ai donc créé une clé cliente à https://www.instagram.com/developer/ . J'ai également pu obtenir mon authentification et déterminer mon CSRFTOK connecté pour le X-CSRFToken entête. Maintenant ma question est de savoir comment continuer?

J'ai trouvé quelques réponses à ce sujet indiquant que je devrais demander https://i.instagram.com/api/v1/users/1107766105/info/ , mais il renvoie toujours la page de connexion en tant que HTML.

J'ai essayé un REST Client qui utilise mon Chrome cookies et connecté à Instagram avant, j'ai essayé de définir mes en-têtes HTTP sur X-CSRFToken:<mycookietoken> et Content-Type:application/json. (Si je ne réglais pas les erreurs IT CSRFToken, j'ai besoin de l'ajouter, mais si l'en-tête est défini, je reçois à nouveau le HTML, même lorsque le CSRFToken est correct. Je n'ai pas 't obtenir une erreur lorsque le CSRFToken est faux.)

J'ai également essayé de définir le Origin, Referer et Host _ _ _ _ _ _ _ _ pour tromper Instagram dans la croire que la demande provenait de sa propre fenêtre, sans chance. Réglage du Host provoquera même une demande de 400 mauvaises défectueuses. Même ajouter mon jeton d'accès dans l'URL n'avait aucun effet (?access-token=########).

Pour résumer ma question, comment ces services obtiennent-ils les images de profil d'une telle qualité allant jusqu'à 1024x1024 à partir des serveurs cdninstagram?

6
Martin Braun

Bien que je suis en retard, mais cela pourrait être de l'aide de quelqu'un:

Étape 1: Première chose que vous devez obtenir une image de profil HD Instagram est leur identifiant de profil. Ceci peut être trouvé dans le code source du lien de profil utilisateur. Par exemple, si vous affichez la source du lien suivant https://www.instagram.com/abdulhaq0/ et recherchez "Logging_Page_ID" Vous obtiendrez "ProfilePage_1285389476". Les chiffres qui suivent le profilépage sont l'ID de ce compte.

Étape 2: Ensuite, vous devez mettre une carte d'identité dans l'URL suivante https://i.instagram.com/api/v1/users/ {profilid}/info/et ouvrez-le dans le navigateur. Dans notre lien d'affaire serait https://i.instagram.com/api/v1/users/1285389476/info/

Étape 3: Maintenant, sur le lien ci-dessus, recherchez "HD_Profile_Pic_url_info". Là, vous pouvez obtenir l'URL de la photo de profil Instagram HD.

J'espère que cela a aidé.

7
Abdul Haq

Je crois que ces sites tels que -- https://instadp.site/ qui montrent que le Hi-RES de l'image de profil utilisateur n'utilise pas l'API officielle Instagram.

Dans le passé, il était possible de pirater les URL CDN d'Instagram pour modifier les paramètres et obtenir la haute résolution d'eux, mais de nos jours, les URL sont signées et si vous modifiez des paramètres, l'URL échouera.

Donc, la seule solution qu'ils utilisent consiste à imiter un client. Il y a un fichier PHP pour ceci: https://github.com/mgp25/instagram-api

2
flyjoe12

Étapes: 1. Obtenez le lien Poste Instagram. Par exemple: https://www.instagram.com/p/bo-jru-g7wa/

ou si vous n'avez pas le lien, l'API Instagram vous fournit une option Permalink dans la matrice de résultat qui pour la liaison ci-dessus est BO-JRU-G7WA

  1. Maintenant, suivez simplement Ajouter Media? Taille = L Après l'URL, c'est-à-dire.,

Résultat : URL d'image de haute qualité:

https://www.instagram.com/p/bo-jru-g7wa/media?size=L

vous pouvez le voir en action ici: https://jsfiddle.net/nmj1z7wo/fiddle URL

Ce lien peut être considéré comme un code de sténographie à l'URL d'image Instagram, qui sont beaucoup plus grandes

2
Nitin Tokas