mirror of
https://github.com/wbt5/real-url.git
synced 2025-08-02 23:55:46 +08:00
新增抖音直播
This commit is contained in:
parent
c42f16fe6d
commit
35189b645e
@ -1,6 +1,8 @@
|
|||||||
### 获取直播平台的真实流媒体地址(直播源),可在PotPlayer、VLC、flv.js等播放器中播放。
|
### 获取直播平台的真实流媒体地址(直播源),可在PotPlayer、VLC、flv.js等播放器中播放。
|
||||||
|
|
||||||
目前有16个直播平台:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易CC直播、火猫直播、企鹅电竞、YY直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播、NOW直播、收米直播。
|
目前有16个直播平台:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易CC直播、火猫直播、企鹅电竞、YY直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播、NOW直播、抖音直播。
|
||||||
|
|
||||||
|
> 2020.01.07:新增抖音直播;删除一个直播平台。
|
||||||
|
|
||||||
> 2020.01.03:修复快手直播,请求移动网页版。
|
> 2020.01.03:修复快手直播,请求移动网页版。
|
||||||
|
|
||||||
|
29
douyin.py
Normal file
29
douyin.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# 获取抖音直播的真实流媒体地址,默认最高画质。
|
||||||
|
# 如果知道该直播间如“6779127643792280332”形式的room_id,则直接传入room_id。
|
||||||
|
# 如果不知道room_id,可以使用手机上打开直播间后,选择“分享--复制链接”,传入如“https://v.douyin.com/qyRqMp/”形式的分享链接。
|
||||||
|
|
||||||
|
|
||||||
|
import requests
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def get_real_url(rid):
|
||||||
|
try:
|
||||||
|
if 'v.douyin.com' in rid:
|
||||||
|
room_id = re.findall(r'live/(\d+)\?utm', requests.get(url=rid).url)[0]
|
||||||
|
else:
|
||||||
|
room_id = rid
|
||||||
|
room_url = 'https://webcast-hl.amemv.com/webcast/room/reflow/info/?room_id={}&live_id=1'.format(room_id)
|
||||||
|
response = requests.get(url=room_url).json()
|
||||||
|
hls_pull_url = response.get('data').get('room').get('stream_url').get('hls_pull_url')
|
||||||
|
rtmp_pull_url = response.get('data').get('room').get('stream_url').get('rtmp_pull_url')
|
||||||
|
real_url = [rtmp_pull_url, hls_pull_url]
|
||||||
|
except:
|
||||||
|
real_url = '直播间不存在或未开播或参数错误'
|
||||||
|
return real_url
|
||||||
|
|
||||||
|
|
||||||
|
rid = input('请输入抖音直播间room_id或分享链接:\n')
|
||||||
|
real_url = get_real_url(rid)
|
||||||
|
print('该直播间源地址为:')
|
||||||
|
print(real_url)
|
39
smzb.py
39
smzb.py
@ -1,39 +0,0 @@
|
|||||||
# 收米直播(http://smzb.tv:66/live/)所有直播间。
|
|
||||||
|
|
||||||
|
|
||||||
import requests
|
|
||||||
import re
|
|
||||||
import json
|
|
||||||
|
|
||||||
|
|
||||||
def get_all_rooms():
|
|
||||||
room_url = 'http://api.shoumilive.com:83/pc/anchor.json'
|
|
||||||
try:
|
|
||||||
response = requests.get(url=room_url).text
|
|
||||||
response_json = json.loads(re.findall(r'anchor\(([\s\S]*)\)', response)[0])
|
|
||||||
all_hot = response_json.get('data').get('hot')
|
|
||||||
all_rooms = dict()
|
|
||||||
for room in all_hot:
|
|
||||||
room_id = room.get('room_num')
|
|
||||||
room_title = str(room_id) + ':' + room.get('title')
|
|
||||||
room_flv = get_real_url(str(room_id))
|
|
||||||
all_rooms[room_title] = room_flv
|
|
||||||
except:
|
|
||||||
all_rooms = '获取错误'
|
|
||||||
return all_rooms
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_real_url(rid):
|
|
||||||
room_url = 'http://api.shoumilive.com:83/pc/room/{}.json'.format(rid)
|
|
||||||
try:
|
|
||||||
response = requests.get(url=room_url).text
|
|
||||||
response_json = json.loads(re.findall(r'livePath\(([\s\S]*)\)', response)[0])
|
|
||||||
real_url = response_json.get('data').get('flv_hd')
|
|
||||||
except:
|
|
||||||
real_url = '获取错误'
|
|
||||||
return real_url
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
print(get_all_rooms())
|
|
Loading…
x
Reference in New Issue
Block a user