V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
MajestySolor
V2EX  ›  问与答

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

  •  
  •   MajestySolor · 2016-06-22 12:07:45 +08:00 · 14249 次点击
    这是一个创建于 3111 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我平时很喜欢看 dota2 比赛直播,
    但是斗鱼和火猫的观看体验实在太差了,
    我本身就讨厌弹幕,
    页面交互又土的掉渣,
    各种刷礼物的可怕特效还无法屏蔽,
    整个一城乡结合部龙城狂霸拽的感觉,
    我只想像 twitch 那样安静无干扰的看直播,
    当然 flash 导致的巨大发热量也是一个重要因素,
    后来我发现 chrome f12 的 network 里是可以直接看到视频源地址的,
    一般是一个 flv 后面跟一大串参数,
    这个地址是可以直接用视频播放器播放的,
    比如我用的 potplayer ,
    那么问题来了,
    有没有办法自动化获取这个地址呢,
    每次打开 f12 在列表一大堆资源里找好累~~
    我觉得这是个挺有市场的需求啊,
    怎么就没人做个 chrome 插件呢~~
    23 条回复    2018-08-26 15:02:01 +08:00
    root787
        1
    root787  
       2016-06-22 12:16:44 +08:00
    这个涉及到版权的问题。
    miaosu
        2
    miaosu  
       2016-06-22 12:25:54 +08:00
    做出来公开不了吧,人家花那么多钱砸进去就是为了用户绑定它的平台,你可好,弄个综合的,人家不群 D 你才怪。
    laoyuan
        3
    laoyuan  
       2016-06-22 12:40:21 +08:00
    群 D 。。好恐怖的一个词
    h4x3rotab
        4
    h4x3rotab  
       2016-06-22 12:57:19 +08:00 via iPhone
    可以做浏览器扩展提取,自己用
    ynyounuo
        5
    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
        6
    fcicq  
       2016-06-22 13:12:59 +08:00
    还是天朝的直播好提取啊, 如果 rtmp 流要追加 invoke command 认证真能挡住一大片.
    won
        7
    won  
       2016-06-22 13:13:30 +08:00 via Android
    都有 CDN ,抓到真实源不就等于随时能攻击了吗,不可能的
    isbase
        8
    isbase  
       2016-06-22 13:40:19 +08:00 via Android
    MPV 可以直接播放斗鱼的
    miyuki
        9
    miyuki  
       2016-06-22 14:22:36 +08:00
    livestreamer?
    KKKKKK
        10
    KKKKKK  
       2016-06-22 15:54:14 +08:00 via Android
    @laoyuan 群起而 DDoS 之
    Mikewu
        11
    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
        12
    m939594960  
       2016-06-22 16:05:13 +08:00
    斗鱼的弹幕可以屏蔽 礼物也可以屏蔽。。。
    还有直播不就是为了热闹?
    你这种不看礼物 也不看弹幕的 为啥不去看优酷??
    Mikewu
        13
    Mikewu  
       2016-06-22 16:05:17 +08:00   ❤️ 1
    上面回复代码没有格式,发个截图算了。之前每天看 YYF 的直播,用这个来获取 rmtp 地址后使用 Potplayer 播放
    pyengwoei
        14
    pyengwoei  
       2016-06-22 16:22:08 +08:00
    pyengwoei
        15
    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
        16
    fcicq  
       2016-06-22 16:26:19 +08:00
    @pyengwoei akamai 的 rtmp 没啥认证, ffmpeg 或者 vlc 都应该能直接播放.
    pyengwoei
        17
    pyengwoei  
       2016-06-22 16:35:56 +08:00
    @fcicq 我直接用这个 RTMP 在 FLASH 里面测试播放 是不成功的,?号后面的是否是加密的,需要验证一次啦
    fcicq
        18
    fcicq  
       2016-06-22 16:37:04 +08:00
    @pyengwoei 那可能是你的 player 没把 ? 后的部分传上去.
    fcicq
        19
    fcicq  
       2016-06-22 16:39:10 +08:00
    @pyengwoei rtmpdump 试了一下你这个链接应该过期了. 直接返回了 NetStream.Failed. 重新找个新的再来吧.
    pyengwoei
        20
    pyengwoei  
       2016-06-22 16:41:32 +08:00
    @fcicq 稍等,我重新找一个,因为有一个项目要 用到。。
    yueye
        21
    yueye  
       2016-06-22 16:46:09 +08:00
    没有登陆不是过一段时间高清就播放不了了?
    MajestySolor
        22
    MajestySolor  
    OP
       2016-06-23 07:27:15 +08:00
    @m939594960 弹幕可以关闭我知道,但是显示在 flash 上的礼物特效关闭不了,我只是想第一时间看比赛,等优酷上能看都过了 2-3 天了~
    @Mikewu 这个具体怎么使用呢?
    jc654123
        23
    jc654123  
       2018-08-26 15:02:01 +08:00
    现在还行吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:07 · PVG 15:07 · LAX 23:07 · JFK 02:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.