一個老年朋友在微信小程序中學習彈鋼琴,昨天他告訴我,他喜歡的一個老師即將下線,以后看不到他的視頻,希望我能下載保存。好的我試試吧!
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合並工具",軟件很小,很方便。
自此大功告成。
