-
-
Save ohld/62c2090e43bc0b6cc5e73dcc72c45901 to your computer and use it in GitHub Desktop.
# This is Python port of this Javascript method: | |
# https://github.com/notslang/instagram-id-to-url-segment/blob/master/lib/index.coffee | |
url = "https://www.instagram.com/p/B8iwlG9pXHI/" | |
# ----> use regexp to extract code from url | |
code = "B8iwlG9pXHI" | |
charmap = { | |
'A': '0', | |
'B': '1', | |
'C': '2', | |
'D': '3', | |
'E': '4', | |
'F': '5', | |
'G': '6', | |
'H': '7', | |
'I': '8', | |
'J': '9', | |
'K': 'a', | |
'L': 'b', | |
'M': 'c', | |
'N': 'd', | |
'O': 'e', | |
'P': 'f', | |
'Q': 'g', | |
'R': 'h', | |
'S': 'i', | |
'T': 'j', | |
'U': 'k', | |
'V': 'l', | |
'W': 'm', | |
'X': 'n', | |
'Y': 'o', | |
'Z': 'p', | |
'a': 'q', | |
'b': 'r', | |
'c': 's', | |
'd': 't', | |
'e': 'u', | |
'f': 'v', | |
'g': 'w', | |
'h': 'x', | |
'i': 'y', | |
'j': 'z', | |
'k': 'A', | |
'l': 'B', | |
'm': 'C', | |
'n': 'D', | |
'o': 'E', | |
'p': 'F', | |
'q': 'G', | |
'r': 'H', | |
's': 'I', | |
't': 'J', | |
'u': 'K', | |
'v': 'L', | |
'w': 'M', | |
'x': 'N', | |
'y': 'O', | |
'z': 'P', | |
'0': 'Q', | |
'1': 'R', | |
'2': 'S', | |
'3': 'T', | |
'4': 'U', | |
'5': 'V', | |
'6': 'W', | |
'7': 'X', | |
'8': 'Y', | |
'9': 'Z', | |
'-': '$', | |
'_': '_' | |
} | |
def instagram_code_to_media_id(code): | |
code = "B8iwlG9pXHI" | |
id = "" | |
for letter in code: | |
id += charmap[letter] | |
alphabet = list(charmap.values()) | |
number = 0 | |
for char in id: | |
number = number * 64 + alphabet.index(char) | |
return number | |
media_id = instagram_code_to_media_id(code) | |
# media_id == 2243569220713804232 # success |
You deserves a star bro.... :) thanks for the help
Thanks bro
Hi is this method still working? I tried using it but the media_id I get back is not matching with what the instagram api is saying. I tested it on multiple posts and it's still not working. When I do the trick of adding this to the end of a url ?__a=1&__d=dis
, the number your function returns lines up with the field in the json object, "pk", the first part of "id" before the underscore and "strong_id". When I try to query these fields specifically instead of "id", it doesn't work (obivously since the actual documentation states "id" as a valid field). In short, it feels like they purposely made it so that this code doesn't work by using a different "id" to get insights about the post even though the media_id this code generates does show up in other fields of the posts json object but not the official media object returned from the api.
@bdbishoff have you found any other solution to retrieve mediaId of shortcode
very useful, my friend
thanks!!