Ответ был на поверхности.
unoffical instagram api wrapper
Сам код:
def get_media_likers(API, mediaID):
retUsers = []
while True:
API.getMediaLikers(mediaID)
usersJson = API.LastJson
for user in usersJson['users']:
retUsers.append(UserProfile(user['pk'], user['username']))
else:
break
return retUsers
Где API - это авторизация инстаграма( см. ссылку )
User Profile:
class UserProfile:
def __init__(self, id, username):
self.id = id
self.username = username
Достаю mediaID так:
parse = urlparse(url)
path = parse[2]
apiUrl = "https://api.instagram.com/oembed/?url=http://instagram.com/{}".format(path)
r = requests.get(apiUrl)
mediaID = r.json()['media_id']
И в дополнение, вот как я проверяю, лайкнул ли человек пост.
def is_instagram_like(username, url):
if url[-1] != "/":
url = url + "/"
parse = urlparse(url)
path = parse[2]
apiUrl = "https://api.instagram.com/oembed/?url=http://instagram.com/{}".format(path)
r = requests.get(apiUrl)
mediaID = r.json()['media_id']
likers = get_media_likers(API, mediaID)
for liker in likers:
if liker.username == username:
return True
return False