切换风格

默认Lavender Sky Flowers Wizard Snow Beige California City Dragon Black London Sunset glow Pink Cloud

80

主题

2566

积分

0

精华

用户组 

易积分
1486
热心
4
好评
0

活跃会员

求大佬把py源码改成php源码[复制链接]
发表于 2022-9-6 08:54:22 | 显示全部楼层 |阅读模式
100易积分
  1. # 获取虎牙直播的真实流媒体地址。

  2. import requests
  3. import re
  4. import base64
  5. import urllib.parse
  6. import hashlib
  7. import time
  8. import random
  9. import sys

  10. def live(e):
  11.     try:
  12.         i, b = e.split('?') 分割
  13.         r = i.split('/')
  14.         s = re.sub(r'.(flv|m3u8)', '', r[-1])
  15.         c = b.split('&')
  16.         c = [i for i in c if i != '']
  17.         n = {i.split('=')[0]: i.split('=')[1] for i in c}
  18.          
  19.         fm = urllib.parse.unquote(n['fm']) if ('fm' in n.keys()) else ''
  20.         u = base64.b64decode(fm).decode('utf-8') if ('fm' in n.keys()) else ''
  21.         p = u.split('_')[0]
  22.         f = str(int(time.time() * 1e7))
  23.         l = n['wsTime']
  24.          
  25.         mt = n['txyp'] if ('txyp' in n.keys()) else 'a'
  26.         t = str(random.randint(1460000000000, 1660000000000))

  27.         mm = t+f
  28.         ml = n['ctype']
  29.         fs = n['fs']
  30.         sp = n['sphdcdn'] if ('sphdcdn' in n.keys()) else 'al_7-tx_3-js_3-ws_7-bd_2-hw_2'
  31.         spp = n['sphdDC'] if ('sphdDC' in n.keys()) else 'huya'
  32.         spd = n['sphd'] if ('sphd' in n.keys()) else '264_*-265_'
  33.         ll = mm+'|'+ml+'|103'
  34.         ms = hashlib.md5(ll.encode("utf-8")).hexdigest()
  35.         h = '_'.join([p, t, s, ms, l])
  36.         m = hashlib.md5(h.encode('utf-8')).hexdigest()
  37.         urls = "{}?wsSecret={}&wsTime={}&seqid={}&ctype={}&ver=1&txyp={}&fs={}&&sphdcdn={}&sphdDC={}&sphd={}&t=103&ratio=4000&u={}&t=103&sv=2110211124".format(i, m, l, mm, ml, mt, fs, sp, spp, spd, t)
  38.         aa, ab = urls.split('//')
  39.         url = 'https://'+ab
  40.         
  41.         return url
  42.     except Exception as e:
  43.         return ''


  44. def get_real_url(room_id):
  45.     room_url = 'https://mp.huya.com/cache.php?m=Live&do=profileRoom&roomid=' + str(room_id)
  46.      
  47.     header = {
  48.         'Content-Type': 'application/x-www-form-urlencoded',
  49.         'User-Agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) '
  50.                         'Chrome/75.0.3770.100 Mobile Safari/537.36 '
  51.     }
  52.     data = requests.get(url=room_url, headers=header).json()
  53.      
  54.     multiLine=data['data']['stream']['flv']['multiLine']
  55.     #print(multiLine)
  56.     urls={}
  57.     liveData=data['data']['liveData']
  58.      
  59.     urls['name']=liveData['nick']+'-'+liveData['introduction'].replace('"','')
  60.     for i in   range(len(multiLine)):
  61.             obj=multiLine[i]
  62.             if obj['url'] is not None:
  63.                 liveline = live(obj['url'])
  64.                 urls['url'+str(i+1)]=liveline
  65.     return urls


  66. if __name__ == '__main__':
  67.     try:
  68.         try:
  69.             r=sys.argv[1]
  70.         except:
  71.             r = input('请输入虎牙直播房间号:\n')
  72.         print(get_real_url(r))
  73.     except Exception as e:
  74.         print(e)
复制代码

易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

1

主题

9

积分

0

精华

用户组 

易积分
54
热心
0
好评
0
发表于 2022-9-6 23:04:37 | 显示全部楼层
11111111
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

0

主题

0

积分

0

精华

用户组 

易积分
7
热心
0
好评
0
发表于 4 天前 | 显示全部楼层
易如意中文编程学习交流论坛有你更精彩~
回复

使用道具 举报

QQ|sitemap|免责声明|RGB颜色对照表|手机版|小黑屋| 易如意 - E4A中文编程学习交流论坛

GMT+8, 2022-10-4 21:19 , Processed in 0.035923 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2018 eruyi.cn

返回顶部