一個老年朋友在微信小程序中學習彈鋼琴,昨天他告訴我,他喜歡的一個老師即將下線,以后看不到他的視頻,希望我能下載保存。好的我試試吧!
1、打開小程序,一看是個直播的,不過可以回放。嗯,先弄到電腦上打開抓包分析一下。微信PC版登起,點開小程序.......沒反映,打不開,百度,結果就是部分小程序不支持PC端打開,好另外想辦法。
2、突然想起我的iKuai軟路由可以抓包,好的開始,進入路由開始對手機的IP進行抓包,然后用wireshark分析抓到包,好順利得到m3u8的播放列表。打開列表一看,20秒一段,1分鍾一個ts文件
2644716208_1968568419_1.ts?start=0&end=372427&type=mpegts&resolution=544x960 #EXT-X-PROGRAM-DATE-TIME:2020-09-28T10:27:04+08:00 #EXTINF:2.025, 2644716208_1968568419_1.ts?start=372428&end=756135&type=mpegts&resolution=544x960 #EXT-X-PROGRAM-DATE-TIME:2020-09-28T10:27:06+08:00 #EXTINF:2.007, 2644716208_1968568419_1.ts?start=756136&end=1117283&type=mpegts&resolution=544x960 #EXT-X-PROGRAM-DATE-TIME:2020-09-28T10:27:08+08:00 #EXTINF:2.025, 2644716208_1968568419_1.ts?start=1117284&end=1482567&type=mpegts&resolution=544x960 #EXT-X-PROGRAM-DATE-TIME:2020-09-28T10:27:10+08:00 #EXTINF:2.018,
解析出來的下載連接重復名很多,打開VS,用C#篩選吧!直接WinFrom簡單
private void button1_Click(object sender, EventArgs e) { OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.InitialDirectory = "C:\\"; //打開對話框后的初始目錄 fileDialog.Filter = "文本文件|*.m3u8|所有文件|*.*"; fileDialog.RestoreDirectory = false; //若為false,則打開對話框后為上次的目錄。若為true,則為初始目錄 if (fileDialog.ShowDialog() == DialogResult.OK) label1.Text = System.IO.Path.GetFullPath(fileDialog.FileName);//將選中的文件的路徑傳遞給TextBox “FilePath” } private void button2_Click(object sender, EventArgs e) { richTextBox1.Text = ""; List<string> vok = new List<string>(); if (label1.Text == null || label1.Text == "") { MessageBox.Show("請先選擇m3u8播放列表文件"); } if (textBox1.Text == null || textBox1.Text == "") { MessageBox.Show("請輸入http連接"); } else { foreach (string str in System.IO.File.ReadAllLines(label1.Text, Encoding.Default)) { if (str.Contains("?start")) { //刪除?start后所有字符串(菜鳥級別) string str2 = Regex.Unescape(str); int index = str2.IndexOf("?start"); str2 = str2.Remove(index); //richTextBox1.Text = richTextBox1.Text + "\r\n" + str2; string str3 = str2 + "\r\n"; vok.Add(str2); } } } HashSet<string> hs = new HashSet<string>(vok); //此時已經去掉重復的數據保存在hashset中 foreach (string item in hs) { richTextBox1.Text =@"http://"+textBox1.Text+ item.ToString() + "\r\n" + richTextBox1.Text; } }
3、拿到所有TS文件真實下載地址,導入迅雷開始下載。
4、百度找到一個ReNamer軟件可以批量改名,支持關鍵字前后刪除,正合適,去掉文件名無用字符串,只保留順序字符。
5、百度找到一個“ts合並工具",軟件很小,很方便。
自此大功告成。