Skip to content

Instantly share code, notes, and snippets.

@sclark39
Last active September 24, 2024 15:11
Show Gist options
  • Save sclark39/9daf13eea9c0b381667b61e3d2e7bc11 to your computer and use it in GitHub Desktop.
Save sclark39/9daf13eea9c0b381667b61e3d2e7bc11 to your computer and use it in GitHub Desktop.
Convert from Instagram Shortcode to Id and Back using big-integer
var bigint = require( 'big-integer' )
var lower = 'abcdefghijklmnopqrstuvwxyz';
var upper = lower.toUpperCase();
var numbers = '0123456789'
var ig_alphabet = upper + lower + numbers + '-_'
var bigint_alphabet = numbers + lower
function toShortcode( longid )
{
var o = bigint( longid ).toString( 64 )
return o.replace(/<(\d+)>|(\w)/g, (m,m1,m2) =>
{
return ig_alphabet.charAt( ( m1 )
? parseInt( m1 )
: bigint_alphabet.indexOf( m2 ) )
});
}
function fromShortcode( shortcode )
{
var o = shortcode.replace( /\S/g, m =>
{
var c = ig_alphabet.indexOf( m )
var b = bigint_alphabet.charAt( c )
return ( b != "" ) ? b : `<${c}>`
} )
return bigint( o, 64 ).toString( 10 )
}
toShortcode( '908540701891980503' ) // s.b. 'ybyPRoQWzX'
fromShortcode( 'ybyPRoQWzX' ) // s.b. '908540701891980503'
@tyrantkhan
Copy link

For anyone comes across this... this short code converter only works to generate the ig_id, but the facebook graph api ids are different and this doesn't work for thate

Examples shown above:
17889455560051444
17883949432067035

These are both ids from the ig graph api

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment