立即注册  找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 70|回复: 11

神秘代码直链下载API

[复制链接]

神秘代码直链下载API

[复制链接]

7

主题

76

回帖

203

积分

中级会员

积分
203
kieng

7

主题

76

回帖

203

积分

中级会员

积分
203
2020-2-9 20:06:12 | 显示全部楼层 |阅读模式
本帖最后由 kieng 于 2020-2-9 20:07 编辑

脱了一个软件的壳,弄来的API接口.

我只是解密调用.没有源代码..

1.解析磁力.

http://bt.i0x0.cn/?hash=40位磁力链

如:http://bt.i0x0.cn/?hash=3BE5C938BCB4B541446C60C0E369E9060D5E82D2

返回
[ol]
  • {
  •     "code": 0,
  •     "msg": "成功",
  •     "data": [
  •         {
  •             "file_key": "BA7B0FE821E08052634E6FA6B73238C22C02B201D155B8C1E9F2AD42A63175FC2E623D60E7372683EE3C274B3125A3758FAAFF3A8B0F999004EC7BFAE548F15E27BADB38877768CE8849B6E8547E0322D57889384C1E66",
  •             "name": "1.jpg",
  •             "size": "155.58KB",
  •             "ico": ""
  •         },
  •         {
  •             "file_key": "C6080FE924E1FE54644B6FA5B5323AC52B03B271D152B8C4EC80AD40A632098029173A67E7422789943F204D3424A3018FAFFF4E8B79E79301EF07FCE53EF65E27BADB4280766DBB8849B69E547D0420D5788A31471669A0E0FB06",
  •             "name": "十面埋伏[bbs.3e-online.com][1280高清].rmvb",
  •             "size": "1.50GB",
  •             "ico": ""
  •         }
  •     ],
  • }[/ol]复制代码

    2.获取直链.

    http://bt.i0x0.cn/?key=解析处理的file_key值



    如:http://bt.i0x0.cn/?key=C6080FE924E1FE54644B6FA5B5323AC52B03B271D152B8C4EC80AD40A632098029173A67E7422789943F204D3424A3018FAFFF4E8B79E79301EF07FCE53EF65E27BADB4280766DBB8849B69E547D0420D5788A31471669A0E0FB06

    返回
    [ol]
  • {
  •     "code": 0,
  •     "data": {
  •         "download_url": "http://cd-ctfs.ftn.qq.com/ftn_handler/771cd0950ccf68289318f82e091e3a833a18dbf6c224c23109b626076bc088f7c3c4e86364436bcd4c28954e2ec002cdb079b3ba4a0f28a8509e0be9642f4269",
  •         "download_cookie": "FTN5K=74c8875c"
  •     },
  •     "msg": "下载重命名:只需要在链接后面添加- /testName.mp4(后缀名称请根据实际文件后缀填写),如:http://**-***.ftn.qq.com/ftn_handler/cc1fe46baf99c7409****************/testName.mp4"
  • }[/ol]复制代码

    直接复制 download_url的值就可以下载了.IDM或者浏览器都可以.名字乱码就在链接后面/testName.mp4加一下就行.





    他是调用微云的.速度很快.IDM直接跑满.


    并不是每一个磁力链都能解析出来的


    我发现了,正常的磁力链解析率很低.不正常的到时基本都能出来.比如前几天MJJ发的神秘代码都可以.不知道这个人咋弄的...



    由于是调用解密他的API.所以不保证长时间可用.就是玩玩学习一下而已.
  • 回复

    使用道具 举报

    0

    主题

    34

    回帖

    94

    积分

    注册会员

    积分
    94
    pwlm

    0

    主题

    34

    回帖

    94

    积分

    注册会员

    积分
    94
    2020-2-11 13:48:59 | 显示全部楼层
    本帖最后由 pwlm 于 2020-2-11 16:51 编辑

    update: 这是多线程版本,如果有下载种子全部内容的需求而且种子内容非常多的情况可以用这个版本,一般下面的那个版本就够用了。
    [ol]
  • import json
  • import time
  • import pyperclip
  • import requests
  • import threading
  • from queue import Queue
  • def get_download_url(file_key, file_name, file_size):
  •     print(f"成功获取到文件名: {file_name} 的file_key! \n文件大小: {file_size}\n")
  •     download_url_in_json = requests.get(file_key, proxies=proxies)
  •     download_url_in_json = json.loads(download_url_in_json.text)
  •     if download_url_in_json["code"] == 1:
  •         print("无法获取下载链接! 返回中...")
  •         return ""
  •     else:
  •         download_url = download_url_in_json["data"]["download_url"]
  •         download_url_with_name = download_url + "/" + file_name
  •         return download_url_with_name
  • def return_download_url(result_data):
  •     global url
  •     while not qurl.empty():
  •         index = qurl.get()
  •         file_key = analyze_download_url + result_data[index]["file_key"]
  •         file_name = result_data[index]["name"]
  •         file_size = result_data[index]["size"]
  •         file_download_url = get_download_url(file_key, file_name, file_size)
  •         if "" != file_download_url:
  •             lock.acquire()
  •             url = url + file_download_url + "\r"
  •             lock.release()
  • def get_file_key(hash_key):
  •     hash_url = torrent_hash + hash_key
  •     analyze_result = requests.get(hash_url)
  •     analyze_result = json.loads(analyze_result.text)
  •     if analyze_result["code"] == 1:
  •         print("该hash无法解析! 返回中...")
  •         return None
  •     else:
  •         if len(analyze_result["data"]) >= 1:
  •             for i in range(len(analyze_result["data"])):
  •                 print(str(i) + ": " + analyze_result["data"]["size"] + ": " + analyze_result["data"]["name"])
  •             try:
  •                 index = int(input("\n\n请输入文件前面的序列号,如果需要下载全部文件,请直接回车: "))
  •                 if index > len(analyze_result["data"]):
  •                     print("\n你输入了错误的序号!")
  •                     return None
  •                 qurl.put(index)
  •             except ValueError:
  •                 print("\n您选择下载全部文件, 开始获取下载链接\n")
  •                 for x in range(len(analyze_result["data"])):
  •                     qurl.put(x)
  •             finally:
  •                 ths = list([])
  •                 for _ in range(thread_num):
  •                     th = threading.Thread(target=return_download_url, args=(analyze_result["data"],))  
  •                     th.start()
  •                     ths.append(th)
  •                 for th in ths:
  •                     th.join()
  •                 return url
  • proxies = None
  • thread_num = 8  # 指定线程数量,如果设置的过高会获取不到下载链接
  • analyze_download_url = "http://bt.i0x0.cn/?key="  # 后面加上上面返回的file_key
  • torrent_hash = "http://bt.i0x0.cn/?hash="  # 后面加上hash值
  • qurl = Queue()
  • lock = threading.Lock()
  • url = ""
  • if __name__ == '__main__':
  •     key = input("请输入种子的hash值: ")
  •     result = get_file_key(key)
  •     if result:
  •         pyperclip.copy(result)
  •         print("成功将下载链接复制到粘贴板! 去下载吧")
  •     time.sleep(2)[/ol]复制代码

    ------------------------------------------------------------------------

    update: 楼主说: 一个次磁力里可能包含很多文件.最好是提交磁力 0是选择全部,选择其他则下载对应key值的文件...这样更人性化一下..
    所以我加上了,选择序号的时候直接回车就行了

    ------------------------------------------------------------------------

    取之用之,用楼主的api写了个脚本
    [ol]
  • import json
  • import time
  • import pyperclip
  • import requests
  • def return_download_url(result_data, index):
  •     analyze_download_url = "http://bt.i0x0.cn/?key="  # 后面加上上面返回的file_key
  •     url = str()
  •     if -1 == index:  # 全部文件
  •         for file in result_data:
  •             file_key = analyze_download_url + file["file_key"]
  •             file_name = file["name"]
  •             file_size = file["size"]
  •             url = url + get_download_url(file_key, file_name, file_size) + "\r"
  •     else:
  •         file_key = analyze_download_url + result_data[index]["file_key"]
  •         file_name = result_data[index]["name"]
  •         file_size = result_data[index]["size"]
  •         url = get_download_url(file_key, file_name, file_size)
  •     return url
  • def get_download_url(file_key, file_name, file_size):
  •     print(f"成功获取到file_key! \n文件名: {file_name} \n文件大小: {file_size}\n")
  •     download_url_in_json = requests.get(file_key, proxies=proxies)
  •     download_url_in_json = json.loads(download_url_in_json.text)
  •     if download_url_in_json["code"] == 1:
  •         print("无法获取下载链接! 返回中...")
  •         return ""
  •     else:
  •         download_url = download_url_in_json["data"]["download_url"]
  •         download_url_with_name = download_url + "/" + file_name
  •         return download_url_with_name
  • def get_file_key(hash_key):
  •     torrent_hash = "http://bt.i0x0.cn/?hash="  # 后面加上hash值
  •     hash_url = torrent_hash + hash_key
  •     analyze_result = requests.get(hash_url)
  •     analyze_result = json.loads(analyze_result.text)
  •     if analyze_result["code"] == 1:
  •         print("该hash无法解析! 返回中...")
  •         return None
  •     else:
  •         index = 0
  •         if len(analyze_result["data"]) >= 1:
  •             for i in range(len(analyze_result["data"])):
  •                 print(str(i) + ": " + analyze_result["data"]["size"] + ": " + analyze_result["data"]["name"])
  •             try:
  •                 index = int(input("\n\n请输入文件前面的序列号,如果需要下载全部文件,请直接回车: "))
  •                 if index > len(analyze_result["data"]):
  •                     print("你输入了错误的序号!")
  •                     return None
  •             except:
  •                 print("您选择下载全部文件, 开始获取下载链接\n")
  •                 index = -1
  •             finally:
  •                 return return_download_url(analyze_result["data"], index)
  • proxies = None
  • open_thread = False
  • if __name__ == '__main__':
  •     key = input("请输入种子的hash值: ")
  •     result = get_file_key(key)
  •     if result:
  •         pyperclip.copy(result)
  •         print("成功将下载链接复制到粘贴板! 去下载吧")
  •     time.sleep(2)[/ol]复制代码

    只支持python3,执行粘贴种子的hash码就行了
  • 回复

    使用道具 举报

    5

    主题

    17

    回帖

    71

    积分

    注册会员

    积分
    71
    hswcd

    5

    主题

    17

    回帖

    71

    积分

    注册会员

    积分
    71
    2020-2-13 19:47:43 | 显示全部楼层
    2-14
    应该是玩坏了
    "code": 1,
        "msg": "服务器获取失败请重试或更换磁力",
        "Exception": "您今日的解析次数已用完,于2020-02-14 重置(这是源服务器返回数据,请无视)"
    }
    回复

    使用道具 举报

    7

    主题

    76

    回帖

    203

    积分

    中级会员

    积分
    203
    kieng 楼主

    7

    主题

    76

    回帖

    203

    积分

    中级会员

    积分
    203
    2020-2-11 18:07:25 | 显示全部楼层

    南杉 发表于 2020-2-11 16:13

    有人交流下,HK云是如何用微云提供服务的吗? 他的会员日解析最多500/次,微云普通用户免费5次体验,但是空 ...

    我给你解释一下吧. 他可能有比较大的 sha1库.
    并不是每次磁力都需要去提交微云去解析. 你解析一次.我就会把磁力数据=>file_sha1 保存起来,下回再次解析这个磁力就无需去微云里解析磁力了.直接通过file_sha1来进行秒传保存.HK之前是玩云播的,QQ旋风时期的sha1库几百万上千万条很正常.现在也能用.其实大部分都是以前的数据.当然他也可能是特殊的方法,那我就不得而知了.
    回复

    使用道具 举报

    31

    主题

    268

    回帖

    1347

    积分

    金牌会员

    积分
    1347
    9f644cbe0e1d0fd

    31

    主题

    268

    回帖

    1347

    积分

    金牌会员

    积分
    1347
    2020-2-11 16:13:00 | 显示全部楼层
    这是什么高科技,先占位学习!
    回复

    使用道具 举报

    9

    主题

    35

    回帖

    99

    积分

    注册会员

    积分
    99
    uu89o

    9

    主题

    35

    回帖

    99

    积分

    注册会员

    积分
    99
    2020-2-9 20:12:28 | 显示全部楼层

    uu89o 发表于 2020-2-9 20:14

    好东西
    但是不知道该怎么利用啊

    就是下载BT磁力的视频的.没啥利用的...
    回复

    使用道具 举报

    7

    主题

    76

    回帖

    203

    积分

    中级会员

    积分
    203
    kieng 楼主

    7

    主题

    76

    回帖

    203

    积分

    中级会员

    积分
    203
    2020-2-9 20:14:49 | 显示全部楼层
    高科技!
    回复

    使用道具 举报

    135

    主题

    1295

    回帖

    4455

    积分

    论坛元老

    积分
    4455
    dole

    135

    主题

    1295

    回帖

    4455

    积分

    论坛元老

    积分
    4455
    2020-2-9 20:15:41 | 显示全部楼层
    测试你发的这个十面埋伏的就不能下载。。我试试其他的
    回复

    使用道具 举报

    58

    主题

    1095

    回帖

    3682

    积分

    论坛元老

    积分
    3682
    myseil

    58

    主题

    1095

    回帖

    3682

    积分

    论坛元老

    积分
    3682
    2020-2-9 20:14:00 | 显示全部楼层
    最后调用的是腾讯的服务?
    一直以为这些都是放到115上的
    回复

    使用道具 举报

    2

    主题

    16

    回帖

    60

    积分

    注册会员

    积分
    60
    uranus

    2

    主题

    16

    回帖

    60

    积分

    注册会员

    积分
    60
    2020-2-9 20:17:32 | 显示全部楼层

    uranus 发表于 2020-2-9 20:18

    最后调用的是腾讯的服务?
    一直以为这些都是放到115上的

    嗯.是TX的.qq.com嘛
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-11-22 22:51 , Processed in 0.077808 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表