為家人添置多一個新聞選擇 —— 利用 Raspberry Pi 接駁 NowTV 新聞台上電視

Alex Lau 劉光曆

Alex Lau 劉光曆

2019-11-11

看 NowTV 新聞台是不是只有訂戶才能享用的特權?

blog_20191111_nowtv.jpg

當然不是!其實網上早有 NowTV 新聞台直播,但仍然有不少人習慣看家裡的大電視,如果沒有安裝 NowTV 或有線電視,那麼新聞台的選擇就只有 83 台,即使知道以 HDMI 或 Chromecast 接駁電腦能夠看到其他頻道甚至 Facebook Live,繁複的設置也往往令人卻步。

今天,讓我們教大家把網上的 NowTV 新聞台,無縫連接上電視,為自己、為家人,輕鬆添置多一個新聞台選擇!

硬件準備

我們今次會使用坊間容易買到 Raspberry Pi 微電腦

IMG_9802.jpg

  • Raspberry Pi 第三代 Model B 或 Model B+ (第四代也可以,但需要配置 Mini-HDMI to HDMI 的接駁器)
  • Raspberry 火牛 (其他火牛也可以,不過若供電不穩,可能會出現「疾機」的情況)
  • 可選 Raspberry 外殻
  • 8GB 或以上的 MicroSD Card
  • HDMI 線

另外我們需要燒錄 MicroSD Card,所以也要一台電腦和 SD Card Reader。

軟件準備

因為時間關係,我們已經預先把軟件安裝好,並製成「懶人包」,成為一個可直接燒錄的系統映像檔 (zip, 1.2GB):

https://github.com/teckyio/nowpi/releases/download/v0.1.2/nowpi-0.1.2.img.zip

先把以上「映像檔」下載到你的電腦,把 MicroSD Card 插上,然後把映像檔燒錄至 MicroSD Card。

應該怎樣燒錄?我們推薦使用 balenaEtcher (下載) 去燒錄,只需選擇下載好的映像檔和 MicroSD Card,輕鬆簡單便可完成。

etcher.png

接下來,如果你會使用 LAN 線接駁 Raspberry Pi,那麼便可跳到下一章了!如果你會使用 Wi-Fi,便按以下步驟設定。

設定網絡

先把 MicroSD Card 抽出再插回電腦,電腦會詢問是否需要格式化 MicroSD Card,可以按略過,然後會見到 MicroSD Card 的磁區,在這裡打開名為 wpa_supplicant.conf 的檔案,如果沒有這個檔案,亦可以新增這個檔案。

Screen Shot 2019-11-11 at 3.32.17 PM.png

然後用 記事本 (Windows) 或 Visual Studio Code (Mac),寫入以下資料:

country=HK
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="你的Wi-Fi名稱"
    psk="你的Wi-Fi密碼"
}

Screen Shot 2019-11-11 at 11.07.19 PM.png

設定好之後,把 MicroSD Card 退出。

在下一步開動 Raspberry Pi 時,它便會自動連上相對應的 Wi-Fi 網絡。

駁上電視

好,最期待的畫面到了!先插好 MicroSD Card,再接上 HDMI (這很重要!要先讓 Raspberry Pi 偵測電視的型號!),然後把電源接駁好 Raspberry Pi,把電視調至相應的 HDMI 頻道,等待約一分鐘,NowTV 的畫面便出來了!

IMG_9658.jpg

IMG_7058.jpg

大功告成!雖然設置有一定難度,但成功安裝後便一勞永逸了。

如果途中出現黑畫面,只需要開關電源,重新啟動 Raspberry Pi 便可。能夠順利製作的朋友,亦不妨為朋友多做一兩隻,贈送和協助他們安裝呢!

進階專用:我想自己動手從零做起

如果你覺得「懶人包」太簡單,想一手一腳從 Raspberry Pi 的原始 Raspbian 系統由頭做起,可按照以下步驟:

1) 到 https://www.raspberrypi.org/downloads/raspbian/ 下載 Raspbian Buster with desktop

2) 同樣地可以 balenaEtcher 去燒錄

3) 成功起動 Raspberry Pi 後,打開 Terminal

4) 執行以下指令:

sudo apt update
sudo apt install jq

5) 然後我們使用了以下 Shell Script 取到 NowTV live 的網址,並以 ffmpeg 在本機串流,最後以 omxplayer 配合硬體加速播放高清 NowTV

until $(curl --output /dev/null --silent --head --fail http://duckduckgo.com); do
    printf '.'
    sleep 5
done

LINK=`curl -X POST -d '{"channelno":"332","mode":"prod","audioCode":"","format":"HLS","callerReferenceNo":"20140702122500"}' -H 'Content-Type: application/json' https://hkt-mobile-api.nowtv.now.com/09/1/getLiveURL | jq -r ".asset.hls.adaptive[0]"`

ffmpeg -re -i $LINK -fflags +genpts+igndts -c copy -f mpegts udp://localhost:1234 &

omxplayer udp://localhost:1234

6) 在 Terminal 執行以上 Shell Script 便大功告成!


補充:在哪購買硬體?

如果想購買 Raspberry Pi,一般在 STEM 的商戶、華輝電子行也有現貨可以買到,或者在網上訂購:

Model 3B: https://hkcn.rs-online.com/web/p/processor-microcontroller-development-kits/1826547/

Model 3B+: https://hkcn.rs-online.com/web/p/processor-microcontroller-development-kits/1373331/

Power Supply: https://hkcn.rs-online.com/web/p/products/1770222/

留言

延伸閱讀

天文台的理想與現實

軟件工程師成長手冊

做個精明消費者 : Python 簡單數據科學日常應用例子

新年願望:學寫程式懶人包