三星電視安裝Jellyfin

Jellyfin是什么?Jellyfin是開源構建的媒體解決方案,可以收集、管理流媒體,并通過運行Jellyfin服務器,通過web、移動終端甚至TV訪問Jellyfin服務器。

三星的TIZEN系統(tǒng)和蘋果的IOS系統(tǒng)一樣都是閉源系統(tǒng),表面上APP只能安裝官方APP,官方源少之有少,要實現影院級的觀影效果要么借助藍光播放機,要么就開發(fā)一個類似于KODI的媒體中心,所以,Jellyfin能不能在三星電視上實現呢?
不過方法肯定是有的,三星Tizen系統(tǒng)還提供了一種安裝其他源的方法,那就是開發(fā)者模式,換句話說,就是軟件的提供者必須是官方認證的開發(fā)者,其實認證的方法很簡單,直接在三星官網注冊就行了,然后就是軟件的開發(fā),所幸Jellyfin的開發(fā)者也考慮了TIZEN系統(tǒng),相應的也出了開發(fā)教程,但是筆者第一次按照教程來的時候,也遇到了許多坑,足足花了8個小時才安裝成功,初探之后發(fā)現方法還是挺簡單的,因為有些教程確實在誤導你,下面我就結合windows和Ubuntu系統(tǒng)說一下具體的流程。
一、前期準備
? ? ? ?開發(fā)軟件:
Tizen Studio with IDE or Tizen Studio with CLI (https://developer.tizen.org/development/tizen-studio/download)

Git(windows安裝)
Node.js 16+
Samsung account
Windows系統(tǒng)可以直接安裝Tizen Studio 5.0 with IDE installer和Tizen Studio 5.0 with CLI(command line interface) installer?,而Ubuntu系統(tǒng)不建議用root權限安裝,直接在下載目錄下:
這樣就自動安裝了。
現在在Windows系統(tǒng)或者Ubuntu系統(tǒng)下我們都可以看到'TIZEN STUDIO'和'TIZEN STUDIO Package Manager'這兩個開發(fā)軟件。

在'Package Manager'上選擇除了mobile和wearable外的所有支撐軟件(這里也可以通過命令安裝,但是經過踩坑,我是嚴重不建議的),安裝完畢后,你將會看到如下軟件(‘Certificate Manager’、'Device Manager'是必須的安裝)。

二、安裝Node最新版
Windows系統(tǒng)可以從官網直接下載最新版Node16安裝,而Ubuntu系統(tǒng)則需要通過一定的方法(唯一有效的)安裝,這也是踩坑最多的地方,因為Ubuntu系統(tǒng)默認最新的是Node12。
首先在官網(https://nodejs.org/en/)下載最新的版本:

先在Ubuntu系統(tǒng)安裝默認的nodejs,再安裝最新的nodejs,這個過程一定要注意,在終端輸入如下命令:
下載得到gz壓縮包,輸入:
得到node-v18.12.1LTS文件夾,并移到通用的軟件安裝目錄 /opt/:
建立軟連接,變?yōu)槿郑苯犹鎿Q原來版本的node(切記:?運行完第一行命令后可能會出現sudo權限不可用的情況,所以一定要另外打開一個終端,并輸入:'sudo -i', 保持登錄root賬戶,方便第一個終端出錯后直接糾正?。。?!):
驗證是否安裝成功:
如果不是對應的版本號,則說明沒有安裝成功,需要重新安裝。
三、構建Jellyfin-tizen
Clone 或者直接下載Jellyfin Web repository (https://github.com/jellyfin/jellyfin-web):
Clone 或直接下載?Jellyfin Tizen (this) repository(建議用git Clone):
構建 Jellyfin Web,輸入:
等待完成,時間可能有點久,失敗一般是網絡問題,重來就行。
構建Tizen-Interface,終端輸入:
等待完成,時間可能有點久,失敗一般是網絡問題,重來就行。
同時可打開‘Certificate Manager’配置證書文件了(官網鏈接:Creating Certificates | Samsung Developers)
四、構建證書
在菜單欄中,單擊Tizen STUDIO?> 證書管理器。
單擊?+?按鈕以創(chuàng)建證書配置文件。
證書配置文件將包含作者證書和分發(fā)服務器證書。
選擇三星以生成證書以開發(fā)和安裝到三星設備,您可以將應用程序上傳到應用商店。但是,如果要使用模擬器并且沒有任何計劃將應用程序上傳到應用商店,只需選擇SAMSUNG即可在本地創(chuàng)建證書。

選擇設備類型,然后單擊下一步。
選擇“創(chuàng)建新的證書配置文件”以創(chuàng)建新的證書配置文件。如果是選擇現有證書配置文件,請參閱管理證書配置文件。

選擇“創(chuàng)建新的作者證書”。如果是選擇現有作者證書,請參閱管理證書配置文件。

使用高級選項菜單,您可以選中使用現有作者證書選項以選擇 Android 密鑰庫,也可以選擇現有的三星作者證書。

相同的簽名密鑰有助于維護Tizen Gear應用程序和Android移動應用程序之間的安全對等身份驗證。您可以從附件 SDK?中找到更多詳細信息。如果選擇三星作者證書,您只需使用相同的信息續(xù)訂證書即可。此續(xù)訂的證書將與原始 RSA 密鑰相同,因此可以保證升級應用程序。
輸入作者名稱和密碼。建議設置一個強密碼,不要忘記它。如果要在下一步中對分發(fā)服務器證書使用相同的密碼,請選中下面的框。其他字段包含更多要輸入的 CSR 信息,但不是必填字段。

在下一步中,將彈出三星帳戶登錄。登錄幾秒鐘后,即可獲取作者證書。

作者證書應該是安全的。因此,我們建議您進行備份。您可以通過單擊“瀏覽”按鈕來指定備份位置。
注:要獲得證書,您應該擁有一個三星帳戶。
如果您還沒有,請創(chuàng)建一個新帳戶。
下一步是創(chuàng)建分發(fā)服務器證書。

選擇“創(chuàng)建新的分發(fā)服務器證書”。如果是“選擇現有分發(fā)服務器證書”,請參閱管理證書。

選擇分發(fā)服務器證書的權限級別。若要確保實現的 API 在設備中正常工作,應使用具有適當權限級別的分發(fā)服務器證書對應用程序進行簽名。
為了有效保護設備系統(tǒng)和用戶私有數據,Tizen 安全架構基于 Linux 基礎安全模型的權限和應用簽名,包括進程隔離和強制訪問控制。用戶必須能夠授予安全敏感操作的權限
公共 - 對所有 Tizen 應用程序開發(fā)人員使用沒有限制。
合作伙伴 - 請求和獲取此級別的分銷商證書沒有限制。但是,當應用程序上傳到應用商店時,應用商店會使用官方合作伙伴級別分銷商證書對應用程序重新簽名,僅針對三星的注冊合作伙伴開發(fā)人員。
單擊完成。您可以找到創(chuàng)建的配置文件及其信息。

五、構建WGT
配置好證書就可以構建wgt文件了,首先確保tizen環(huán)境以及部署完成,如果出錯則是環(huán)境出錯,需要重新構建環(huán)境。
對于windows系統(tǒng):

進入STUDIO的安裝文件夾‘\tizen-studio\tools\ide\bin’文件夾下,找到‘tizen’批處理文件
選中‘tizen’,并按住鍵盤的‘shift’按鍵,鼠標右擊‘在終端中打開’,并輸入如下命令:
得到Jellyfin.wgt文件。
對于Ubuntu系統(tǒng),在終端輸入如下命令創(chuàng)建tizen環(huán)境:
創(chuàng)建環(huán)境成功后直接在終端輸入:
得到Jellyfin.wgt文件。
六、連接電視和開發(fā)工具包
要將電視作為遠程設備連接到 SDK,請執(zhí)行以下操作:
在電視上啟用開發(fā)人員模式:
在電視上,打開“智能集線器”。
選擇“應用程序”面板。

在“應用程序”面板中,使用遙控器或屏幕數字鍵盤輸入“12345”。
此時將顯示開發(fā)人員模式配置彈出窗口。

將“開發(fā)人員模式”切換到“開”。
輸入要連接到電視的你的電腦的IP地址,然后單擊“確定”。
重新啟動電視。

重新啟動后打開“應用程序”面板時,屏幕頂部會標記“開發(fā)模式”。

將電視連接到 SDK:
在Tizen Studio中,選擇“工具>設備管理器”。
設備管理器將啟動。

要添加電視,請單擊“遠程設備管理器”和“+”。

在“添加設備”彈出窗口中,定義要連接的電視的信息:包括名稱,三星電視IP地址和端口號(端口號固定是26101),然后單擊“添加”。

在“設備管理器”窗口中,從列表中選擇電視,然后將“連接”切換到“ON”

現在,您可以直接從Tizen工作室在電視上啟動應用程序。如果提升證書錯誤,則需要重新安裝證書。
七、安裝Jellyfin.wgt
在Jellyfin生成的文件夾下打開終端并輸入:
等待安裝成功:

安裝后的樣子:

參考文獻:
[Jellyfin for Tizen](https://github.com/jellyfin/jellyfin-tizen)
[Using SDK for Web APPlications](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-device.html)
[Creating Certificates](https://developer.samsung.com/galaxy-watch-tizen/getting-certificates/create.html)