谷歌翻译(Google Translate) TKK值,tk值算法,api接口公布
本帖最后由 夜泉 于 2018-12-12 21:41 编辑坛里有好多谷歌翻译的软件,其所带的tk值和api接口公布下,如有需要的可以参考和使用!TKK值一般在https://translate.google.cn/ 网页里面有:
将上面的复制到这里来 https://tool.lu/js/ 解密
解密后:
然后你很容易的就算出了TKK值为:422392.71207223 (别问我怎么知道的{:1_926:})
注意:TKK值应该可以保持不变(我也不确定可以多久)
translate.google.cn 网站上tk值算法如下(整理过):
// a:你要翻译的内容
// uq:tkk的值
function vq(a,uq='422388.3876711001') {
if (null !== uq)
var b = uq;
else {
b = sq('T');
var c = sq('K');
b = ;
b = (uq = window || "") || ""
}
var d = sq('t');
c = sq('k');
d = ;
c = "&" + d.join("") + "=";
d = b.split(".");
b = Number(d) || 0;
for (var e = [], f = 0, g = 0; g < a.length; g++) {
var l = a.charCodeAt(g);
128 > l ? e = l : (2048 > l ? e = l >> 6 | 192 : (55296 == (l & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023),
e = l >> 18 | 240,
e = l >> 12 & 63 | 128) : e = l >> 12 | 224,
e = l >> 6 & 63 | 128),
e = l & 63 | 128)
}
a = b;
for (f = 0; f < e.length; f++)
a += e,
a = tq(a, "+-a^+6");
a = tq(a, "+-3^+b+-f");
a ^= Number(d) || 0;
0 > a && (a = (a & 2147483647) + 2147483648);
a %= 1000000;
return c + (a.toString() + "." + (a ^ b))
};
/*--------------------------------------------------------------------------------
参数:a 为你要翻译的原文
其他外部函数:
--------------------------------------------------------------------------------*/
function sq(a) {
return function() {
return a
}
}
function tq(a, b) {
for (var c = 0; c < b.length - 2; c += 3) {
var d = b.charAt(c + 2);
d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d);
d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
a = "+" == b.charAt(c) ? a + d & 4294967295 : a ^ d
}
return a
}
/*--------------------------------------------------------------------------------
运行:
--------------------------------------------------------------------------------*/
window.TTK='422388.3876711001';
var tk = vq("我是傻逼");
console.log(tk);
这段代码提取的是ranslate.google.cn的算法,可以说是母版了,从该版本衍生出了C#、Java、NodeJs(废话)、PHP版本的对应算法出来,然后放在自己的程序里面。
翻译接口:
POST //translate.google.cn/translate_a/t?client=webapp&sl=en&tl=zh-CN&hl=en&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&pc=1&otf=1&ssel=0&tsel=0&kc=1&tk=你tk的值
post 参数:
q=要翻译的文字
注意:&sl=en为你要翻译的语言,tl=zh-CN 为翻译后的语言,这里是英文翻译为中文
请求头:
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Host: translate.google.cn
语音接口:
https: //translate.google.cn/translate_tts?ie=UTF-8&client=t&prev=input&q=要语音的文字&tl=en&total=1&idx=0&textlen=4&tk=你tk的值
注意:&sl=en为你要求用什么语言来读,这里是用英语读
请求头:
Host: translate.google.cn
附件为tk算法母版衍生出来的其他语言版本:
2018年12月12日:最近谷歌翻译好像更新了,其实并没有,主要还是ttk位置变了下(还是原来地方),tk的算法还是可用的...
完 本帖最后由 l99650 于 2018-3-10 11:40 编辑
@夜泉
http://translate.google.cn/translate_a/single?client=gtx&dt=t&ie=UTF-8&oe=UTF-8&sl=auto&tl=en&q=惊喜 这个没有编码 不对
http://translate.google.cn/translate_a/single?client=gtx&dt=t&ie=UTF-8&oe=UTF-8&sl=auto&tl=en&q=%E6%83%8A%E5%96%9C
编码后打开就正常 //translate.google.cn/translate_a/t?client=webapp&sl=en&tl=zh-CN&hl=en&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&pc=1&otf=1&ssel=0&tsel=0&kc=1&tk=你tk的值
这里 dt 参数这么多,什么意思 谢谢分享,收藏了 感谢分享 这个很有帮助,{:1_893:}{:1_893:} 感谢分享 这个很有帮助 一眼看过去 只看到了 "我是傻逼" 感谢,需要这个 不错谷歌开源是好事 楼主用这个方法搞出来让我感到了惊喜