有没有什么办法能自动提取直播类网站的视频源?

2021-07-03 12:07

阅读:671

标签:bsp   cli   F12   ons   ref   网站   tar   网上   res   

网友问题: 有没有什么办法能自动提取直播类网站的视频源?

平时很喜欢看 dota2 比赛直播, 
但是斗鱼和火猫的观看体验实在太差了, 
我本身就讨厌弹幕, 
页面交互又土的掉渣, 
各种刷礼物的可怕特效还无法屏蔽, 
整个一城乡结合部龙城狂霸拽的感觉, 
我只想像 twitch 那样安静无干扰的看直播, 
当然 flash 导致的巨大发热量也是一个重要因素, 
后来我发现 chrome f12 的 network 里是可以直接看到视频源地址的, 
一般是一个 flv 后面跟一大串参数, 
这个地址是可以直接用视频播放器播放的, 
比如我用的 potplayer , 
那么问题来了, 
有没有办法自动化获取这个地址呢, 
每次打开 f12 在列表一大堆资源里找好累~~ 
我觉得这是个挺有市场的需求啊, 
怎么就没人做个 chrome 插件呢~~

弹幕可以关闭我知道,但是显示在 flash 上的礼物特效关闭不了,我只是想第一时间看比赛,等优酷上能看都过了 2-3 天了~ 

热心网友答复:

之前每天看直播,用这个来获取 rmtp 地址后使用 Potplayer 播放。网上好多推荐流媒体系统软件的,谢谢大家了。 

 

 

 
import os 
import urllib2 
import json 
import md5 
import time 

class APIHelper: 
def __init__(self): 
self.baseUrl = "http://www.douyutv.com/api/v1/" 
self.midReq = "?aid=android&cdn=ws&client_sys=android&time=" 

def GetStringMD5(self, str): 
m = md5.new() 
m.update(str) 
return m.hexdigest() 

def request(self, action, param=None): 
t = str(int(time.time())) 
md5_url = action + self.midReq + t + "1231" 
auth = self.GetStringMD5(md5_url) 

reqUrl = self.baseUrl + action + self.midReq + t + "&auth=" + self.GetStringMD5(md5_url) 
if param != None: 
for k, v in enumerate(param): 
reqUrl = reqUrl + "&" + v + "=" + param[v] 
print "requrl:" + reqUrl 

try: 
response = urllib2.urlopen(reqUrl, timeout=10).read() 
jsonObject = json.loads(response) 
data = jsonObject["data"] 
return data 
except Exception, e: 
print "Error:" + str(e) 
return None 

load = APIHelper() 
data = load.request("room/58428") 
rtmp_url = data["rtmp_url"] 
rtmp_live = data["rtmp_live"] 
videoUrl = rtmp_url + "/" + rtmp_live 
print videoUrl

 

有没有什么办法能自动提取直播类网站的视频源?

标签:bsp   cli   F12   ons   ref   网站   tar   网上   res   

原文地址:http://www.cnblogs.com/flashlinux/p/vivian41.html


评论


亲,登录后才可以留言!