BOBOBK

Decoding Real Addresses from Xunlei Thunder Download Links

MISCELLANEOUS

Students who frequently download videos and games often encounter Xunlei download links starting with ’thunder://’, but are often unable to download due to copyright issues. Here, we will explain the conversion between regular download URLs and Xunlei download links.

For example, a random download link is: https://www.bobobk.com/favicon.ico


1. Converting a Regular URL to a Xunlei Link

1.1 Add “AA” to the beginning and “ZZ” to the end of the original URL. The address becomes: AAhttps://www.bobobk.com/favicon.icoZZ

1.2 Base64 encode this address:

QUFodHRwczovL3d3dy5ib2JvYmsuY29tL2Zhdmljb24uaWNvWlo=

thunder://QUFodHRwczovL3d3dy5ib2JvYmsuY29tL2Zhdmljb24uaWNvWlo=

Conversion Code

import base64
    def convert_to_thunder(s):
        s1  = "AA"+s+"ZZ"
        s2 = base64.b64encode(s1.encode())
        s3 = "thunder://" + s2.decode()
        return s3
normal_url  = 'https://www.bobobk.com/favicon.ico'
print(convert_to_thunder(normal_url))


2. Converting a Xunlei Link to a Regular URL

The address becomes: QUFodHRwczovL3d3dy5ib2JvYmsuY29tL2Zhdmljb24uaWNvWlo=

2.2 Base64 decode this address:

AAhttps://www.bobobk.com/favicon.icoZZ

2.3 Remove “AA” from the front and “ZZ” from the back.

https://www.bobobk.com/favicon.ico

Conversion Code

import base64
    def convert_thunder(s):
        s1  = s.strip().split("//")[1]
        s2 = base64.b64decode(s1).decode()
        s3 = s2[2:-2]
        return s3
thunder = 'thunder://QUFodHRwczovL3d3dy5ib2JvYmsuY29tL2Zhdmljb24uaWNvWlo='
print(convert_thunder(thunder))

JavaScript Code

Running Python code on another server can be cumbersome. Here’s JavaScript code that can be run directly in a browser to get the results.

// decode
var rawcode = document.querySelector("#de_thunder").value.substring(10);

var decodedadd = window.atob(rawcode);
var decodedadd = decodedadd.substring(2,decodedadd.length-2); // Corrected line: 'substring' should be 'decodedadd.substring'
document.querySelector('#decoded').innerHTML = decodedadd;

// encode
var rawcode = document.querySelector("#en_thunder").value; // Removed .substring(10) since this is the input for encoding, not a thunder link
var encodedadd = window.btoa("AA".concat(rawcode,"ZZ"));
var encodedadd = "thunder://".concat(encodedadd);
document.querySelector('#encoded').innerHTML = encodedadd;

Conclusion

This article demonstrates how to encrypt and decrypt Xunlei links using both Python and JavaScript. You can also use the tool on Chunjiang Muker Xunlei Encryption and Parsing.

Related

Google Advertisement

Recursively download files python

TECHNOLOGY
Recursively download files python

I want to back up my website recently, but the size of the file downloaded by PHP is limited, and I am too lazy to install FTP to download it. So I thought of temporarily setting up a secondary domain name site, and then using python (python3)'s requests library to directly download all the files and folders in the root directory of the website to achieve the purpose of backup.

Google Advertisement