thunder 迅雷下载地址真实地址解析:Python 与 JavaScript 转换示例
很多人会遇到 thunder:// 开头的迅雷链接。它看起来不像普通的 http 或 https 地址,但本质上通常只是把原始下载地址做了一层固定规则的包装。
如果你只是想知道它的格式是什么,或者需要在代码里做编码与解码,这篇文章就足够了。这里不讨论下载可用性问题,只解释普通 URL 和 thunder:// 链接之间的转换规则。
例如我随便给一个下载地址是
https://www.bobobk.com/favicon.ico
开始前先记住 thunder 链接规则
最常见的 thunder:// 链接格式可以简单理解为:
- 在原始 URL 前面加上
AA - 在原始 URL 后面加上
ZZ - 将整个字符串做 Base64 编码
- 最前面再加上
thunder://
所以它并不是一种完全不同的下载协议,而更像一种固定格式的字符串封装。
1. 普通地址转换为迅雷地址
1.1 在原地址前面加 AA,后面加 ZZ
地址变为:
AAhttps://www.bobobk.com/favicon.icoZZ
1.2 对这个地址做 Base64 编码
QUFodHRwczovL3d3dy5ib2JvYmsuY29tL2Zhdmljb24uaWNvWlo=
1.3 最前面加上 thunder://
thunder://QUFodHRwczovL3d3dy5ib2JvYmsuY29tL2Zhdmljb24uaWNvWlo=
转换代码
import base64
def convert_to_thunder(url: str) -> str:
wrapped = "AA" + url + "ZZ"
encoded = base64.b64encode(wrapped.encode("utf-8")).decode("utf-8")
return "thunder://" + encoded
normal_url = 'https://www.bobobk.com/favicon.ico'
print(convert_to_thunder(normal_url))

2. 迅雷地址转换为普通地址
2.1 去掉前面的 thunder://
地址变为
QUFodHRwczovL3d3dy5ib2JvYmsuY29tL2Zhdmljb24uaWNvWlo=
2.2 对这段内容做 Base64 解码
AAhttps://www.bobobk.com/favicon.icoZZ
2.3 再去掉前后的 AA 和 ZZ
https://www.bobobk.com/favicon.ico
转换代码
import base64
def convert_thunder(thunder_url: str) -> str:
encoded = thunder_url.strip().split("//", 1)[1]
decoded = base64.b64decode(encoded).decode("utf-8")
return decoded[2:-2]
thunder = 'thunder://QUFodHRwczovL3d3dy5ib2JvYmsuY29tL2Zhdmljb24uaWNvWlo='
print(convert_thunder(thunder))
javascript 代码
如果你只是想在浏览器里临时转换,JavaScript 也可以直接完成。
function decodeThunder(thunderUrl) {
const encoded = thunderUrl.replace(/^thunder:\/\//, "");
const decoded = window.atob(encoded);
return decoded.substring(2, decoded.length - 2);
}
function encodeThunder(normalUrl) {
const encoded = window.btoa("AA" + normalUrl + "ZZ");
return "thunder://" + encoded;
}
document.querySelector('#decoded').innerHTML = decodeThunder(
document.querySelector('#de_thunder').value
);
document.querySelector('#encoded').innerHTML = encodeThunder(
document.querySelector('#en_thunder').value
);
使用时的两个注意点
- 不是所有
thunder://链接都一定对应可直接访问的原始地址,关键还是看原始资源本身是否可用 - 如果要在代码里批量处理,最好先做异常捕获,避免遇到格式错误的 Base64 字符串时直接报错
总结
本文说明了 thunder:// 链接最常见的转换规则:原始 URL 前后分别加上 AA 和 ZZ,再做 Base64 编码,最后补上 thunder:// 前缀。
如果你只是想在代码里实现一个简单的 thunder 链接转换器,用 Python 或 JavaScript 都很容易完成。大家也可以直接在 春江暮客迅雷加密与解析 使用现成页面。
- 原文作者:春江暮客
- 原文链接:https://www.bobobk.com/299.html
- 版权声明:本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。