iKirby's Blog/

不用 Flash 观看 bilibili 直播

最近发现, Linux 中的 Chrome Dev 已经禁用了 Flash Player 插件。这导致了很多国内视频网站无法观看。不过我一般常看的也就是 YouTube , Twitch ,和 哔哩哔哩 。前两者都支持 HTML5 播放器,哔哩哔哩也支持了主站使用 HTML5 播放器,但是直播还不支持,也没有什么客户端,这样就无法观看直播了。

之前另一个系统是 Windows 10 ,看 b 站直播直接用 UWP 客户端,资源占用很低,但是前两天 Bug 10 又爆炸了,于是干脆重装了 Windows 7 ,只能用 flash 了。

今天突然想起来,b 站有个对于手机网页端的 API ,于是就试了一下,获取到的 m3u8 用 SMPlayer 可以正常播放,这样就不用使用 flash 观看直播了。

API 为: https://api.live.bilibili.com/room/v1/Room/playUrl?cid=[room_id]&platform=h5&otype=json&quality=4 ,直接用浏览器打开即可看到 m3u8 的地址。
需要注意的是有些直播并不是房间页面链接中的数字为房间号,比如“哔哩哔哩官方音乐台”,打开房间页面,地址为 https://live.bilibili.com/3 ,但是实际上房间号为 23058 ,可以直接在页面源码中搜索 room_id 找到。另外,这个页面源代码中也包含了 flv 地址,直接用播放器打开就可以。(2019/07/23 测试可用)

留下一条评论

共有 35 条评论

  1. Jimmy:

    我好菜啊.jpg

    2016-10-11 19:35 回复
    1. iKirby:

      向 dalao 低头.jpg

      2016-10-11 19:36 回复
  2. 天幻:

    我觉得 Safari 的评论按钮还可以再改改……
    另外,涨姿势了。

    2016-10-15 09:50 回复
    1. iKirby:

      没用过 Safari 查看这页面,不是很懂你们的按钮什么样子(反正 Chrome 看起来很正常

      2016-10-15 09:53 回复
      1. 天幻:

        就是渐变色灰椭圆纽。当然这条评论发自手机,这个效果是赏心悦目的。

        2016-10-15 22:57 回复
        1. iKirby:

          感觉那是 Safari 的锅

          2016-10-15 23:05 回复
          1. 天幻:

            对啊……不过这 buff 可以让我一眼识破假冒伪劣网站。
            顺便一提,你的通知邮件投进我的垃圾箱了……

            2016-10-16 11:03 回复
            1. iKirby:

              你用 QQ 邮箱... QQ 邮箱最厉害的地方就是正常邮件进垃圾,垃圾邮件全在收件箱

              2016-10-16 11:08 回复
              1. 天幻:

                我也不明白,管他的……我实在是懒得换邮箱了……

                2016-10-16 13:58
  3. Instrye:

    这是换回本地评论系统了啊

    2016-10-15 19:09 回复
    1. iKirby:

      Disqus 被墙了

      2016-10-15 20:59 回复
  4. Nita:

    Disqus被墙,恍恍惚惚

    2016-10-22 09:36 回复
  5. KamiDaze:

    原来有API的,半年看 AlphaGO vs 李世石 时为了听B站妹子解说,
    F12改了移动端User-Agent然后在Network里人肉抓的m3u8地址...
    (我好菜啊www

    2016-11-13 11:17 回复
  6. Franz:

    F12里可以找到直播的flv网址,虽然每次都会变就是了

    2017-03-15 20:48 回复
  7. 言文方广:

    现在b站官方有直播HTML5的公测,开启地址是http://live.bilibili.com/help/#uh5-3

    2017-04-17 23:02 回复
    1. iKirby:

      多谢提醒,最近没怎么看直播,没注意到这个

      2017-04-18 22:26 回复
  8. RIDE:

    这个方法提取的源码非常卡顿!有其他格式么

    2018-11-24 10:53 回复
    1. iKirby:

      我用这个播放倒是一点也不卡,不过现在官方也早就支持 HTML5 播放了,直接在网页端就可以看。在网页的时候可以用浏览器的开发者工具抓到 FLV 地址,也可以看到网页端使用的 API 地址。

      2018-11-24 10:59 回复
      1. RIDE:

        我提取这个源码自定义到超级直播等APP上,很卡顿,你是什么网络?

        2018-11-24 11:01 回复
        1. RIDE:

          FLV地址也是临时的,隔一天也就失效了!如何改RTMP源码,长久点!

          2018-11-24 11:08 回复
          1. iKirby:

            那没办法啊... 它是从 API 获取的,应该没办法搞 RTMP 。我这边用那个 m3u8 电信和联通都不会卡。

            2018-11-24 11:18 回复
  9. :

    非常感谢

    2019-01-30 18:05 回复
    1. 萌蓝:

      现在好像都不行了,按这方法提取到的m3u8地址没法在smplayer打开,frash地址我打开是一片黑是怎么回事,播放不了

      2019-07-23 15:48 回复
      1. iKirby:

        这文章很早以前的,已经失效了。而且也很早就支持 HTML5 了,直接用网页看就是了。另外我更新了一下内容,新的获取方法我这边测试可以用。

        2019-07-23 23:01 回复
          1. 萌蓝:

            不过flv地址确实是隔一天就没用了,谢谢大佬提供的api

            2019-07-29 11:15 回复
  10. Arc:

    大佬,打扰了,想请教一下这个API是怎么找到的呢?我通过F12并没有找到,是要用抓包工具么

    2019-08-11 09:44 回复
    1. iKirby:

      移动端网页

      2019-08-11 09:49 回复
      1. Arc:

        哦哦好的,谢谢大佬。我去尝试一下。

        2019-08-11 10:06 回复
      2. Arc:

        抱歉这么晚打扰大佬,遇到一些小问题。就在通过API返回的连接有时间戳,播放1小时后就会断掉。直接去除连接中的wsSecret和wsTime字段无法播放。请教大佬有什么解决办法么,我看有个sig字段=no,但是在看主站视频时sig会变为ssig并且有数据。再次感谢,打扰了

        2019-08-11 22:28 回复
        1. iKirby:

          这个我也不清楚了,我这边看 sig 还是 no,没变... 不过印象中之前用移动端网页就会出现播放一段时间后需要刷新才可以继续播放的问题...

          2019-08-11 22:40 回复
          1. Arc:

            好吧,还是很感谢大佬的。因为我无意中尝试时有次抓到了带有ssig的直播源,ssig也能复用,但是直播间销毁后就失效了。而且现在无法复现出来,还有就是控制台调整为手机模式后,页面无法播放直播,大佬有什么思路么。谢谢

            2019-08-11 22:45 回复
            1. iKirby:

              移动端的在电脑上的 Chrome 不能播放,从控制台的报错来看,CDN 域名使用的是旧的赛门铁克的证书,被阻止了。用 Edge 可以播放。

              2019-08-11 22:48 回复
              1. Arc:

                哦哦好的,感谢大佬,我这去试一下。抱歉深夜打扰了

                2019-08-11 22:49