个人不太喜欢快手抖音之类的这样的平台,往往是看完一笑而过的东西加起来浪费了大量的时间,还不如看一个正常的直播,连贯、舒服。
如果遇到喜欢的直播主,肯定就有想把他的超神操作录下来的想法。使用OBS之类的工具呢一个是要消耗CPU进行二次编码,再一个是水印、或者恶俗弹幕影响观看体验。怎么办呢?
这个方法探索的灵感来源于IDM加载到浏览器里面后可以帮助你嗅探到真实flv下载地址的悬浮框,经过了一些摸索和完善之后形成了这样的方案。
1、准备工具
浏览器(能打开直播页面,本文以Chrome为例);
IDM(Internet Download Manager):多线程下载神器,帮助我们下载flv流;
MediaCoder:转码用(其他转码工具也可以)
2、开干!
Setp1:找到你想要录制的主播的直播页面
Setp2:F12打开控制台,切换到Network选项卡,F5刷新页面,等待直播页面开始播放直播
Setp3:分直播平台获取地址
确保自己的页面可以流畅播放直播,建议选择备线;
在Network下的Filter内输入flv,寻找.live-play.acgvideo.com域名的flv
(连接大概格式http://???.live-play.acgvideo.com/live-???/???/live_???_???.flv?wsSecret=???&wsTime=???)
这个地址就是我们要的地址。如果你偷懒,可以试试我写的小工具(抱歉目前不太会其他语言,姑且用易语言写了一个,可能报毒)
链接: 点击这里
B站的PK功能系B站服务器进行串流,因而每次开始PK和结束PK的时候flv地址都会更换,所以不建议用这种方法录制这种的主播。
(当然,如果你能很合理的控制IDM进行连接添加和保存,那就差不多可以用这种方法了)
确保自己的页面可以流畅播放直播,建议选择备线;
在下方的(或者上面的)Console中寻找形似这样的输出信息:
这个地址就是我们要的地址。
Chrome/Firefox下斗鱼(的自有直播源)在单独的房间页面都是HLS切片数据,直播被分成了数个大大小小的片段,自然不适合这种方案去下载了。
斗鱼获取rtmp的接口我抓到了,但是目前不知道Post进去的sign和did的具体算法(定位到了大概位置但是没往下弄了)。Rtmp的接口斗鱼不是没有,在支持HLS的情况下不优先展示。因而就想到了另外一种思路:模拟UA。
但似乎斗鱼的flv也很贼,为了不暴露真实地址不走浏览器的socket,按这样讲用一些其他抓包工具就可以抓到了,在此不继续深挖了,感兴趣的朋友可以自己试一试。
另外一种傻瓜级方法:安装IDM的IE浏览器拓展(正常安装IDM的时候会一起安装),打开IE10/IE9,点击悬浮窗按钮下载即可。
全民的Rtmp流地址很简单:https://flvdh.quanmin.tv/live/[Livekey]_L[X].flv
https://flvdh.quanmin.tv/live/[Livekey].flv(最高清画质)
https://flvdh.quanmin.tv/live/[Livekey]_L6.flv(蓝光?M,取决于有没有和主播推流规格)
https://flvdh.quanmin.tv/live/[Livekey]_L5.flv(超清,取决于有没有和主播推流规格)
https://flvdh.quanmin.tv/live/[Livekey]_L4.flv(高清,取决于有没有和主播推流规格)
https://flvdh.quanmin.tv/live/[Livekey]_L3.flv(流畅,取决于有没有和主播推流规格)
(应该还有其他规格,各位自行探索)
Livekey获取方法:看图
不论是不是Chrome/Firefox,龙珠在单独的房间页面都是HLS切片数据,直播被分成了数个大大小小的片段,自然不适合这种方案去下载了。
只有首页使用的是flash播放器,可以用Chrome的F12抓到首页正在播放的连接。方法请参考前面Bilibili章节。
遗憾的是,我现在未能得到其他方法获取其直播地址。
其他的直播平台大同小异,不是Rtmpflv就是HLS切片。捕获flv地址的方法也基本大同小异:可以直接用浏览器工具抓(参考Bilibili章节),或者拼合而成(参考全民TV。
如果还有什么需要我帮忙抓和分析的,可以在下面留言,我有兴趣的时候会尝试研究一下。
4、使用IDM下载:
拿到了flv的地址,一定要及时添加到IDM中开始下载,因为大部分的地址都是有有效期的。
以Bilibili得到的地址为例:
5、录制完成:
如果主播结束直播,那么IDM会自动结束下载。如果主播并没有停止直播而我们不希望继续录制了,那就可以点击取消,IDM就会暂停进行本次下载。
但是,如果这样操作,由于没有下载完成,IDM不会将文件写出。这个时候我们需要去IDM的临时文件夹把我们的数据取出来。
IDM的临时文件夹可以这样查看:点击“选项”,然后点“保存至”(如图)
让我们进入到这个目录\DwnlData\[你的Windows账户名]
根据域名和修改时间就可以判断哪个是我们正在下载的文件了。点进去,将这个比较大的文件复制到其他地方并改名,文件格式是flv。
这个时候,使用大多数播放器就可以播放了,原汁原味的流,味道怎样?
不过,我们发现在播放器内快进快退、播放条等和时间有关的功能失去了作用。原因很简单,就是这种flv流的时间帧数据并不是从0分0秒000开始的(你总不可能主播一开播你就开始录制,而且直播平台大概率会吃掉前1-2秒的流)。我们还需要做一些处理。
6、处理录制文件
MediaCoder这个时候就要排上用场了。MediaCoder不仅支持CUDA编码加速,而且可以复制流,乃处理这种flv的神器了。
我们把待处理的flv拖进去,找到下面视频选项卡,勾中“复制视频流”,再找到音频选项卡,选择“复制音频流”。其他设定随意,别忘了改一改保存地址,然后Start就可以了。
(也许会报错,报错之后可以看一下输出的文件,如果正常就可以不用理。)
这样之后,我们的文件也就正常了,可以用来收藏或者二次创作了!
3、后记
(我:)“我和你讲,蔡文姬打野超强的,平A输出一下就可以1k多伤害。”
(TA:)“AD蔡文姬?我玩过的呀。AD嬴政伤害也爆炸。”
(我:)“王者怎么现在可以这样玩! :pen: ”
(TA:)“我鬼谷子 上大神排行榜了 49名”
(我:)“可以 很强。哎不行了 看那个直播笑到爆炸”
(TA:)“双排么”
(我:)“下一把?我写完这点东西”
(TA:)“好”
(我:)“唔 你先玩吧 我教练喊我去练车”
(TA:)“吼”
发表回复