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

2016-06-22 12:07:45 +08:00
 MajestySolor
我平时很喜欢看 dota2 比赛直播,
但是斗鱼和火猫的观看体验实在太差了,
我本身就讨厌弹幕,
页面交互又土的掉渣,
各种刷礼物的可怕特效还无法屏蔽,
整个一城乡结合部龙城狂霸拽的感觉,
我只想像 twitch 那样安静无干扰的看直播,
当然 flash 导致的巨大发热量也是一个重要因素,
后来我发现 chrome f12 的 network 里是可以直接看到视频源地址的,
一般是一个 flv 后面跟一大串参数,
这个地址是可以直接用视频播放器播放的,
比如我用的 potplayer ,
那么问题来了,
有没有办法自动化获取这个地址呢,
每次打开 f12 在列表一大堆资源里找好累~~
我觉得这是个挺有市场的需求啊,
怎么就没人做个 chrome 插件呢~~
14215 次点击
所在节点    问与答
23 条回复
root787
2016-06-22 12:16:44 +08:00
这个涉及到版权的问题。
miaosu
2016-06-22 12:25:54 +08:00
做出来公开不了吧,人家花那么多钱砸进去就是为了用户绑定它的平台,你可好,弄个综合的,人家不群 D 你才怪。
laoyuan
2016-06-22 12:40:21 +08:00
群 D 。。好恐怖的一个词
h4x3rotab
2016-06-22 12:57:19 +08:00
可以做浏览器扩展提取,自己用
ynyounuo
2016-06-22 13:12:03 +08:00
mpv 接 twitch 体验非常好啊

自己实现什么的可以参考这里: https://sonnati.wordpress.com/2011/07/11/ffmpeg-the-swiss-army-knife-of-internet-streaming-part-i/
fcicq
2016-06-22 13:12:59 +08:00
还是天朝的直播好提取啊, 如果 rtmp 流要追加 invoke command 认证真能挡住一大片.
won
2016-06-22 13:13:30 +08:00
都有 CDN ,抓到真实源不就等于随时能攻击了吗,不可能的
isbase
2016-06-22 13:40:19 +08:00
MPV 可以直接播放斗鱼的
miyuki
2016-06-22 14:22:36 +08:00
livestreamer?
KKKKKK
2016-06-22 15:54:14 +08:00
@laoyuan 群起而 DDoS 之
Mikewu
2016-06-22 16:00:42 +08:00
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
m939594960
2016-06-22 16:05:13 +08:00
斗鱼的弹幕可以屏蔽 礼物也可以屏蔽。。。
还有直播不就是为了热闹?
你这种不看礼物 也不看弹幕的 为啥不去看优酷??
Mikewu
2016-06-22 16:05:17 +08:00
上面回复代码没有格式,发个截图算了。之前每天看 YYF 的直播,用这个来获取 rmtp 地址后使用 Potplayer 播放
pyengwoei
2016-06-22 16:22:08 +08:00
pyengwoei
2016-06-22 16:23:43 +08:00
@Mikewu rtmp://eurolive.fc.llnwd.net/eurolive/s_618x194_b365_gv?e=1462697050&h=b1e8a4dfe63fae69cf423a5963e72414

请问这种 rtmp 格式的 要怎样才可以播放啦?
fcicq
2016-06-22 16:26:19 +08:00
@pyengwoei akamai 的 rtmp 没啥认证, ffmpeg 或者 vlc 都应该能直接播放.
pyengwoei
2016-06-22 16:35:56 +08:00
@fcicq 我直接用这个 RTMP 在 FLASH 里面测试播放 是不成功的,?号后面的是否是加密的,需要验证一次啦
fcicq
2016-06-22 16:37:04 +08:00
@pyengwoei 那可能是你的 player 没把 ? 后的部分传上去.
fcicq
2016-06-22 16:39:10 +08:00
@pyengwoei rtmpdump 试了一下你这个链接应该过期了. 直接返回了 NetStream.Failed. 重新找个新的再来吧.
pyengwoei
2016-06-22 16:41:32 +08:00
@fcicq 稍等,我重新找一个,因为有一个项目要 用到。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/287515

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX