這些指南將產業的概念對應到平台目前具備的物件(頻道包、線路、方案、合作夥伴帳號、節點、API)。這些是概念上的對應,並非產業專屬功能,而且合作夥伴帳號是委派帳號,不是隔離的租戶。
概念對應
面板裡沒有任何東西叫梯隊或會員。下表說明哪個物件扮演哪個角色;以下各章依該順序進行設定。
| 在您的產業中 | 在平台上 | 在面板中的位置 |
|---|---|---|
| 比賽或訓練訊號 | 直播頻道:含來源、EPG 與輸出格式的串流 | Streams → 新增直播串流(來源 URL 或 RTMP 推流) |
| 分析與重播片庫 | VOD 內容目錄:電影與含季和集的影集、分類與中繼資料 | Movies 與 Series,或 VOD 匯入工作 |
| 梯隊或賽事方案 | 頻道包(bouquet):由方案授予的一組具名頻道、電影或影集 | Bouquets,由 Streams 與 Movies / Series 建立 |
| 會員或家人的存取權 | 線路:一份存取權,含其方案、頻道包、到期日、連線數上限與輸出 | Lines → 新增,或使用啟用碼,或 Reseller API |
| 球季或會員期間 | 線路的到期日,可由方案、點數或 API 續期 | 線路的到期日與方案的期限 |
| 球隊或學院職員帳號 | 合作夥伴帳號(經銷商):具備點數、權限與自己線路的委派 dashboard | Users → 新增經銷商;其權限在 Groups 設定 |
| 商店或俱樂部管理整合 | Reseller API 與 webhook:從您自己的系統執行面板的各項操作 | 經銷商 dashboard 中的 Reseller API 金鑰與 webhook |
前置條件
安裝前需要準備什麼。
- 一台具公開位址或網域的伺服器(Ubuntu 22.04 或 24.04),以及足以應付您計畫直播的比賽的上行頻寬。
- 球場上能推送 RTMP 的攝影機與編碼器,以及教練已經儲存的訓練與分析錄製檔案。
- 關於誰看得到什麼的決定:哪些梯隊共用素材、哪些比賽僅限會員,以及哪些職員取得面板帳號。
基礎架構部署
先部署學院,比賽日需要時再加入節點。
- 在學院伺服器上執行安裝程式,並將面板放在具 TLS 的反向代理之後;設定受信任代理,使日誌與 IP 規則能看到觀眾的真實位址。
- 將播放基底網址設為觀眾連線的公開位址,使面板發出的連結在家裡也能使用。
- 若許多家庭觀看同一場比賽,從 Servers 登錄一個節點;面板會透過 SSH 安裝它,並由它向外分送直播頻道。
- 為教練團隊建立一個擁有目錄權限、沒有會員線路權限的合作夥伴帳號(reseller)。
內容整理
梯隊與球季是分類,存取權是頻道包。
- 依年齡組與球季建立分類,為各項賽事建立影集,每場比賽一集。
- 每個梯隊的分析素材建立一個頻道包,比賽直播頻道一個,整個學院一個。
- 每種會員資格建立一個方案:它授予的頻道包,以球季作為時效;若由職員銷售,再設定以點數計的價格。
- 以梯隊或賽事的名稱來命名頻道包,讓職員知道該給一個家庭哪個方案。
合作夥伴(經銷商)設定
若俱樂部有此需求,讓職員管理各自的會員。
- 為教練建立一個擁有目錄權限的群組,為會員秘書建立一個擁有線路權限的群組。
- 將他們各自新增為 reseller,使用對應的群組;只有透過面板銷售會員資格時,才給秘書點數。
- 擁有自己會員的分院或球迷俱樂部,取得自己的合作夥伴帳號與自己的方案。
會員與家人存取設定
每位會員或每個家庭一條線路。
- 為商店或俱樂部管理系統建立一個 Reseller API 金鑰,並儲存在該系統的機密資訊中。
- 報名時,系統以會員資格的方案與請求 ID 呼叫 action=create_line;球季就是方案的時效。
- 將最大連線數設為一個家庭所需的裝置數(通常三四個),這樣一份會員資格就不會被共用到家庭之外。
- 對於試用比賽日,透過 Lines → add 使用試用方案新增線路,或為看台上的支持者列印啟用碼。
分析與重播片庫
隨選比賽與訓練。
- 將每場比賽或訓練作為一集的來源上傳,或以 VOD 匯入工作匯入;在標題中保留日期、對手與梯隊。
- 透過影集把錄影關聯到該梯隊的頻道包,這樣只有該梯隊的線路看得到它。
- 以每種會員資格的測試線路檢查播放,確認誰看得到什麼。
比賽與訓練訊號
把球場攝影機變成直播頻道。
- 為球場上的每台編碼器新增一個直播串流(RTMP 推送),並放入比賽日頻道包。
- 啟用回看,讓遲到的家庭可以倒轉,並在終場哨響後把錄影加入片庫。
- 比賽日繁忙時,檢查節點是否從來源伺服器只拉取一次該頻道,並服務導向它的觀眾。
會員資格到期
存取權跟隨球季。
- 線路在其方案期間結束時到期;下一球季的費用付清時,商店以 action=renew_line 為其續期。
- 讓商店訂閱 webhook:在 line.expiring 時發送提醒,在 line.expired 時結束會員資格。
- 球季中途離隊的球員,由商店以 action=disable_line 停用;該線路會保留以備查。
與商店或俱樂部軟體整合
由系統驅動存取,由播放器負責播放。
- 在商店端安裝您的電商平台(WooCommerce、Shopify 等)的連接器,使購買建立線路、付款續期線路。
- 俱樂部管理或票務系統透過 Reseller API 與 webhook 接入;沒有針對它的原生連接器。
- 沒有面向觀眾的單一登入:會員使用商店寄給他們的線路憑證登入播放器。
安全考量
梯隊素材只留在梯隊內部。
- 透過 TLS 提供面板與播放基底網址,並將 TRUSTED_PROXIES 設為您的反向代理。
- 每個面板帳號使用雙重驗證登入,並設定權限群組,使秘書無法更改目錄,教練看不到線路。
- 播放連結經過簽章並會過期,每條線路設定連線數上限,職員線路綁定 IP 或國家。
- 加密的資料庫備份並保留異地副本,以稽核日誌記錄線路與目錄的每一次變更。
疑難排解
常見的初步檢查。
- 家長看到了一線隊的分析:檢查線路的方案及其授予的頻道包。
- 新會員付款後沒有存取權:檢查商店請求在 Reseller API 呼叫日誌中的紀錄以及線路的到期日。
- 比賽訊號在開球時卡頓:檢查球場上編碼器的上傳,若有節點為觀眾服務,再檢查該節點的心跳。
- 稽核日誌顯示的是代理的位址:將 TRUSTED_PROXIES 設為該代理並重新啟動面板。