diff --git a/README.md b/README.md index 16d80b8..44e50c9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ ### 获取直播平台的真实流媒体地址(直播源),可在PotPlayer、VLC、flv.js等播放器中播放。 -目前有16个直播平台:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易CC直播、火猫直播、企鹅电竞、YY直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播、NOW直播、收米直播。 +目前有16个直播平台:斗鱼直播、虎牙直播、哔哩哔哩直播、战旗直播、网易CC直播、火猫直播、企鹅电竞、YY直播、一直播、快手直播、花椒直播、映客直播、西瓜直播、触手直播、NOW直播、抖音直播。 + +> 2020.01.07:新增抖音直播;删除一个直播平台。 > 2020.01.03:修复快手直播,请求移动网页版。 diff --git a/douyin.py b/douyin.py new file mode 100644 index 0000000..92e0634 --- /dev/null +++ b/douyin.py @@ -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) diff --git a/smzb.py b/smzb.py deleted file mode 100644 index 601ed80..0000000 --- a/smzb.py +++ /dev/null @@ -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())