-
-
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 |
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
hey its not working anymore, can someone tell any method to find media id using Instagram post URL ?
Thanks bro