Javascript 如何从Instagram';s media_预览原始数据?

Javascript 如何从Instagram';s media_预览原始数据?,javascript,html5-canvas,instagram,decode,Javascript,Html5 Canvas,Instagram,Decode,如果您从Instagram的API获取JSON数据,您会发现一个media\u preview键,其值是一些Base64编码的数据。它看起来确实像一些非常小的预览二进制数据。可能是压缩的 比如说。它只是一个黑色的正方形,预览非常小。看看: data['graphql']['media_preview']=“acoq5miiigaookakkaciiiiigaookkacciiiigaookkakkap/Z” 我无法反转代码并找出Instagram是如何使用这些数据的。我应该如何从这些数据创建预览

如果您从Instagram的API获取JSON数据,您会发现一个
media\u preview
键,其值是一些Base64编码的数据。它看起来确实像一些非常小的预览二进制数据。可能是压缩的

比如说。它只是一个黑色的正方形,预览非常小。看看:
data['graphql']['media_preview']=“acoq5miiigaookakkaciiiiigaookkacciiiigaookkakkap/Z”

我无法反转代码并找出Instagram是如何使用这些数据的。我应该如何从这些数据创建预览

我不擅长理解缩小的js,但我认为它在动态创建的画布上为“敏感内容”绘制模糊预览

下面是一个以一些敏感内容(医学)为例的示例


更新:我注意到B64解码数据总是以
002A
开头,以
FF D9
结尾,我已经调试了几行代码,并为您编译了此函数
media\u preview
部分数据非常小,因为在我的示例中,完整的jpeg头已经在代码中可用,如
jpegtpl

功能ig_媒体_预览(base64data){
var jpegtpl="/2.一个研究4/4 4 4一个研究4一个研究4一个研究4一个研究4一个研究4一个研究4/4一个研究4一个研究4一个研究4一个研究4一个研究4一个研究4一个研究4一个研究4一个研究4一个研究4一个研究4个研究4个研究4个研究4个研究4个研究4个研究4个研究4个研究4个研究4个研究4个研究4个研究4个研究4个他们他们他们他们的研究他们他们他们他们他们他们他们的研究他们他们他们他们他们他们他们他们他们的研究他们他们他们的他们他们他们的中国中国中国中国中国中国中国中国中国中国的中国中国中国中国中国中国中国的中国的中国中国中国中国中国中国中国中国中国的中国中国中国中国中国的中国的中国的中国的中国的中国中国中国中国的中国的中国中国中国的中国中国中国中国中国中国的中国中国中国中国中国中国中国中国的中国的中国中国中国的中国的中国中国中国中国中国中国中国QUSITFBBHNRYQCICRQYGZGHCCNCSCEVUTHJDNICOIJC2.2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 QCG4SFHOEIIQSK5SVLPEYMZQIO6SLPQEOQQYS7S1TRE4UBRCW8TFXSFIYCRS09TV1FY2DRI4+Tl5ufo6ery8/T19vf4+fr/2GAMAWEAHEDEQA/AA==“,
t=atob(基本数据),
p=t.切片(3).分割(“”),
o=t.substring(0,3).split(“”).map(函数(e){
返回e.charCodeAt(0)
}),
c=atob(jpegtpl)。拆分(“”);
c[162]=String.fromCharCode(o[1]);
c[160]=String.fromCharCode(o[2]);
返回base64data?“数据:image/jpeg;base64,”+btoa(c.concat(p.join)(“”):null
};
var data=“acoq5miiigaoooakkkkaciiiiigaooakkaciiiigaooakkaciiigaookkap/Z”;
var uri=ig_媒体_预览(数据);

document.body.insertAdjacentHTML('beforeend','');
试试这个:->“2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2/zxSilrSxIhXPB4pm0VNn5B+NMpLULH/9k=“--它会导致损坏jpeg@AlexanderChzhen在你的
python
示例中,你似乎错过了
c[162]
c[160]
操作,如果我错了,请纠正我。是的,它看起来像是
header[160]=data[2]
header[162]=data[1]
数据[0]是无用的。所以最后的数据是
header+data[3::