遼寧電信部分地區(qū)IPTV回看方法

書接上回:https://www.bilibili.com/read/cv18853590
上次說到要發(fā)一下時移和回看的方法,這里要有一部分食言了,因?yàn)闀r移的方案變了,而我的機(jī)頂盒又退了,無法重新抓包,所以只能發(fā)一下回看的方法了,其實(shí)可以替代時移,就是麻煩一些。
再說這不世界杯了嗎,后半夜比賽還是挺多的,對于那些不想熬夜看球的人應(yīng)該還是有點(diǎn)兒用的。
前提:
首先你要搞定上一篇文章的內(nèi)容
https://www.bilibili.com/read/cv18853590
從這里獲取到播放列表。
之后打開播放列表,

看著有點(diǎn)兒累,可以去https://www.json.cn/這里格式化一下

之后找到你想要回看的頻道,比如CCTV1。
之后找出"zx"這個成員

把這個成員的值,也就是后面的URL復(fù)制出來。
之后我們要修改這個URL。
第一步,在”?"前面加上”/1000.m3u8“,也就成了
第二步,在virtualDomain=hls.tvod_hls.zte.com的后面加上一個連接符”&",之后加上一個GET參數(shù)zte_bandwidth=1000,這個應(yīng)該是帶寬,是個固定值。之后再一個連接符,加上參數(shù)timeformat=local,時間戳格式,這個也是固定的,雖說寫的是local,實(shí)際是UTC。之后再來一個連接符和固定參數(shù)m3u8_level=2
最后這個地址就變成了這樣
后面兩個參數(shù)不再是固定的了,而是節(jié)目起始時間和結(jié)束時間的時間戳。精確到秒。
比如,我們想看今天中午的新聞30分,我們知道這個節(jié)目的開始時間是中午12點(diǎn)整,結(jié)束時間是中午12點(diǎn)30分。
那么,精確到秒就是:
20221120120000
到
20221120123000
但是?。。。?br>
重點(diǎn)來了??!因?yàn)槭荱TC時間,而我們在東八區(qū)(和塘主無關(guān)?。。。。?,所以要把這兩個時間戳再減去8小時,最終變成
20221120040000
到
20221120043000
12點(diǎn)變4點(diǎn)。
此外還要在后面加上一個修正
變成這樣
20221120040000+00
到
20221120043000+00
好了,到此為止我們搞定了時間戳,就可以把它們作為GET參數(shù)加到之前修改好的URL里了。
節(jié)目起始時間的變量名為”programbegin“,結(jié)束時間為”programend“
所以就是”programbegin=20221120040000+00“以及”programend=20221120043000+00“
按照之前的方法,用連接符”&"連接到之前修改過的URL里,最終變成這樣:
到此,這個URL就修改完成,可以播放了,用Potplayer播放是這樣的:

一般會多出十秒左右的誤差,應(yīng)該是電信那邊TS切片長度造成的,不要緊。

以上就是回看的方法了,通??梢曰乜匆恢芮暗墓?jié)目。關(guān)鍵是時間戳要寫對,注意咱們是東八區(qū)(真的和塘主無關(guān)),所以要減去8小時。另外注意無論是開始時間和結(jié)束時間都不要大于當(dāng)前時間,因?yàn)槟壳癐PTV還不支持穿越時空。當(dāng)然也不要太小,你搞個一個月之前的時間那肯定看不了。還有,開始時間和結(jié)束時間最好也不要間隔的太長,你要是間隔1星期,鬼知道電信的服務(wù)器會不會抗議。
最好的辦法就是配合節(jié)目單,也就是EPG信息,找到你想看的節(jié)目的開始時間和結(jié)束時間,之后根據(jù)節(jié)目時間來修改地址進(jìn)行觀看。
最后,還是老一套,如果你覺得麻煩,或者懶得自己動手的話,可以用我寫的這個應(yīng)用。

但是?。?!我只是個二手程序員,這玩意兒寫的我都不好意思給人看源代碼。所以BUG肯定不少,也就是湊合著用。但放心,搞不壞你的電腦。
由于是用.net 3.5寫的,所以向下兼容到win7,win10和win11都能用,但可能首次打開時會提示你安裝.net 3.5,如果你之前沒裝的話。
另外,由于電信的EPG信息加了請求令牌,我搞不定,所以用的都是第三方的EPG,什么央視網(wǎng)的,搜視網(wǎng)的等等,所以不保證EPG信息能一直用,萬一人家那邊變更方案了,我這邊肯定要重新弄,但估計(jì)多久能弄好我也不敢保證。但我估計(jì)世界杯結(jié)束前應(yīng)該能用。
根據(jù)EPG信息,可以直接選擇回看節(jié)目:


由于是用winform調(diào)用vlc的控件,所以會同時帶32位和64位的vlc庫,導(dǎo)致整個程序比較大,解壓后400M,起始其中很多庫沒用,但我懶得一個個去測試去刪除了,你可以根據(jù)自己的情況清理一下,至少,如果你是64位系統(tǒng)的話,libvlc/win-x86這個是可以刪除的。
而且,由于用的是vlc的控件,而vlc打開視頻流和拖動進(jìn)度條時要比ptoplayer慢得多,這些也只能忍了。
最后,第一次打開的時候會要求你輸入播放列表的地址,

在前一篇文章里:
遼寧電信部分地區(qū)的IPTV頻道列表 - 嗶哩嗶哩 (bilibili.com)
找到你當(dāng)?shù)氐牡刂?,然后粘貼進(jìn)去,點(diǎn)“保存”就行了

打開主窗體

之后,如果你沒開跨vlan組播的話,去“視圖”--“設(shè)置選項(xiàng)”

里面修改一下“直播流媒體協(xié)議”

改成“中興http”或者“華為http”

點(diǎn)擊“確定”,之后就可以選擇頻道進(jìn)行播放了。
還有,之前說了,電信的時移方案改了,而我沒有機(jī)頂盒,沒法抓包,所以就沒更新這個功能,所以,播放直播節(jié)目的時候,那進(jìn)度條你就別拖了,沒用!不過回看的時候進(jìn)度條還是可以用的。
gofile下載地址:
https://gofile.io/d/qAalJt