日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

斗鱼直播源解析工具

發布時間:2023/12/10 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 斗鱼直播源解析工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前天在網上搜抓取斗魚直播源的時候,搜到了一個帖子(點擊進入原貼).我按照樓主的方法試了一下用手機端X瀏覽器抓取直播源(用pc端的安卓模擬器實現的),然后按照樓主的思路解析了一下地址,發現大部分直播間還是有效果的,然后就用java寫了個小程序,實現了這個簡單的功能。

另外,除了樓主說的這種抓取方式,還可以用chrome或者firefox瀏覽器的F12抓源,以chrome為例,把調試終端調成手機模式,在network里 把size降序排列,那個一直在返回響應不斷增大的就是直播源,測試了好多次,斗魚的直播源很怪,有時候抓取到的是可以直接在potplayer里播放的,但絕大多數是加密的,而且加密的形式也有區別,這個工具目前只支持兩種格式的解析,這兩種已經能支持多數直播間了,但部分直播間的地址還是無法正確解析。
另外,某些直播間利用chrome的12直接抓取獲取到的源后綴是.xs的,這種有的也是可以直接播放的.

利用這個工具解析得到的直播源,可以直接在potplayer里播放,不用再看直播間里亂七八糟的廣告、彈幕、禮物啦。

第一種能解析的格式:上述帖子樓主說的,形如http://hls1a.douyucdn.cn/live/1525851rffvVYsm7_2200/playlist.m3u8?wsSecret=0a0646be9c7bfed2b222bfff0652de51&wsTime=1557997214&token=h5-douyu-0-1525851-f16629cd8a409e970ca6c948ef2144ce&did=eefe85593b4a4e28b8983f1700061531,這種,利用手機端(或者安卓模擬器)的X瀏覽器嗅探到的直播源地址。

第二種能解析的格式:利用chrome瀏覽器抓取到的,形如https://3graurmtigrzdnctzfa5dy.ourdvsss.com/hdls3a.douyucdn.cn/live/5160335rggibOFpp_4000p.flv?wsAuth=25f9545a530998a7c43dc628e2c48c90&token=web-h5-1402795-5160335-77e1ef2c8c3e412411ae6de16b779de76539f3a62efd0510&logo=0&expire=0&did=371a20aa30732e582f3fbb9300071501&ver=Douyu_219051755&pt=2&st=0&mix=0&isp=&wshc_tag=0&wsts_tag=5cde9fff&wsid_tag=b7e959de&wsiphost=ipdbm的格式

通過測試,抓取的直播源的格式各種各樣的都有,所以解析方式肯定也各不相同,如果大家發現了其他的解析方式,可以在本貼下留言,我也會及時更新工具的解析方法。

下面附上下載:

鏈接:https://pan.baidu.com/s/1w9OXikdYP19_lX0cdOOb8A
提取碼:al2l

源碼:

public class Test implements ActionListener {private JButton btn1 ;//開始解析按鈕private JButton btn2 ;//退出程序按鈕private TextField url1;//輸入解析文本框private TextField result;//輸出解析地址文本框//程序運行入口public static void main(String[] args) {new Test();}public Test(){//界面設置JFrame frame = new JFrame();frame.setVisible(true);frame.setTitle("斗魚直播源解析 by故事而已");frame.setLocation(700,400);frame.setSize(400,200);//生成容器Container con = frame.getContentPane();//生成容器con.setLayout(new GridLayout(3,1));//版面設置JPanel pan1 = new JPanel();//生成一個新的版面JLabel urlStr = new JLabel("解析");pan1.add(urlStr);url1 = new TextField(40);url1.setText("在此輸入需要解析的直播源地址");pan1.add(url1);con.add(pan1);JPanel pan2 = new JPanel();//版面2JLabel urlResult = new JLabel("解析結果");pan2.add(urlResult);result = new TextField(40);pan2.add(result);con.add(pan2);JPanel pan3 = new JPanel();//版面3btn1 = new JButton("開始解析");btn2 = new JButton("退出");btn1.addActionListener(this);//綁定監聽btn2.addActionListener(this);//綁定監聽pan3.add(btn1);pan3.add(btn2);con.add(pan3);//關閉窗口事件frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});}//按鈕事件@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==btn1){method();//點擊開始解析按鈕,調用解析方法}else if(e.getSource()==btn2){System.exit(1);//點擊關閉按鈕,退出程序}}//解析地址的方法private void method() {try {//x瀏覽器嗅探到直播源解析String url = url1.getText();if(url.startsWith("http://")){//解析方案1String[] split = url.split("\\?");String sub = split[0].substring(split[0].indexOf("."));String source = "http://tx2play1"+sub+"?"+split[1].substring(split[1].indexOf("token"));source = source.replace("/playlist.m3u8",".flv");//輸出解析地址result.setText(source);}//chrome獲取到的直播源解析if(url.startsWith("https://")){//解析方案2String regex = "\\.flv";String[] split = url.split(regex);String part1 = split[0].substring(split[0].lastIndexOf("/"));String part2 = split[1].substring(split[1].indexOf("token"));String source = "https://tx2play1.douyucdn.cn/live"+part1+".flv?"+part2;result.setText(source);}} catch (Exception e) {result.setText("該地址暫時無法解析");//輸出異常信息}} }

其實這個實現很簡單,就是對加密的直播源url進行還原,變成未加密的狀態,但是斗魚的加密形式很多,目前我只發現了這兩種。后續如果再有新的發現,我會繼續更新本工具。

總結

以上是生活随笔為你收集整理的斗鱼直播源解析工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。