EPGrab,把 DVB 數位電視的 EPG 電子節目表輸出成 XMLTV 格式

EPGrab,是我拿 tv_grab_dvb 來改的一個小程式,算是對自己想過的〈不曉得有沒有辦法推 XMLTV 讓電視台廣為採用〉的一個起步。我修正了幾個地方,讓多位元組字元可以正常顯示。

根據 DVB 標準規範 EN 300 468,以及《台灣數位電視相關影音技術規範》,台灣(代碼 0x14)的 DVB 資訊文字編碼,很可能一開始就被誤讀,之後便一路錯下去,很多自由軟體、開放源碼軟體的實作都用 Big5,實則應該是「採用 Unicode/UTF16-BE 編碼 (encoding),ISO10646 字集 (character set),但是至少應該能夠顯示 Big5 有收錄的字」。包括 LinuxTV dvb-apps, Me-TV, Kaffeine 等,都弄錯了,或曾經弄錯。

tv_grab_dvb 的情況則更微妙,作者除了同樣弄錯台灣的編碼,亦沒有考慮到多位元組字元的情況,而使用 strlen() 函式去偵測節目資訊的字串長度,遇到 0x00 開頭的字元編碼,就直接掛了。我只好把這個問題修掉,否則此程式幾乎在台灣無用武之地。

基礎設施有了,接下來是拿輸出的 XMLTV 檔案來玩…。

CC BY-SA 4.0 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Leave a Reply

Your email address will not be published. Required fields are marked *