在Synology NAS Docker安裝 youtube-dl 容器來下載影片
NAS的已經不再是NAS那麼簡單,這幾年的蛻變讓人刮目相看,尤其虛擬技術與全方位的備援更是NAS的戰鬥舞台,群暉(Synology)自從DSM 6.0版後就有「Virtual DSM」、「Docker DSM」與「Virtual Machine Manager」的虛擬技術,或許筆者是個MIS人員,虛擬技術可說是企業的最愛,但以企業角度來說,虛擬主機還是會以專門的虛擬系統(如VMware)架設較務實,而Docker輕量級軟體虛擬化技術,才是NAS的最佳搭檔,這篇文章就來談談下載影音網站的 youtube-dl Docker運用。
Synology提供「Virtual Machine Manager」與 「Docker」 兩種類型的虛擬運用,「Virtual Machine Manager」像VMware或Hyper-V一樣可建立不同系統的虛擬機器,就是讓你可以完整的建立Windows、Linux等系統的虛擬機器,Docker 是屬於應用層的虛擬化,就是將應用程式打包成容器,可說是一個佔資源極小的輕量級虛擬化。不僅如此,Synology NAS更將自身運作的DSM系統也融入虛擬化的技術,且分別在 「Virtual Machine Manager」與 「Docker」 兩種類型下衍生 Virtual DSM 與 Docker DSM 虛擬化技術,Virtual DSM就是Virtual Machine Manager下的一個限制專屬的DSM虛擬機器,讓一台NAS布署多個 DSM 虛擬機,並提供可靠、彈性且直覺的 DSM 功能,想要不停機的虛擬機轉移與系統升級,在既有的NAS運作中也能輕鬆完成。
Docker DSM 是屬於應用層的虛擬化,適合多租戶環境下運作,如企業也可以不同部門來分配不同的Docker DSM,各單位擁有自己的系統管理員帳戶等,但Docker當然並非僅侷限於DSM Docker上的運用,一般Docker 的部署也不成問題,且更將字命令列指令的方式改成圖形介面的操作,讓Docker應用平臺更平易近人,是初學者學習 Docker 的無痛之殿堂。
Docker 套件安裝與啟動請參考「Synology DSM 6.0 的「Virtual DSM」與「Docker DSM」虛擬技術」文章中的Docker章節,Docker是屬於應用層的虛擬化,就是將應用程式打包成容器,可說是一個佔資源極小的輕量級虛擬化,可讓IT人員可以透過Docker輕量虛擬化技術,更具有彈性IT管理或多租戶環境來使用。安裝後進入Docker套件,首先看到的是「Docker概況」頁面,會顯示CPU、RAM與DSM Docker的狀況,由於目前仍未建立任何的 Docker,因此看到目前沒有正在執行中的容器。
在Docker視窗上,左邊點選「倉庫伺服器」,右邊上面輸入「youtube-dl」找到kmb32123/youtube-dl-server,按下來並下載。
下載後可以在「映像檔」頁面上找到下載的應用程式,在佈署布置之前請先點選紅色框內的圖示連結,來查看此Docker的應用程式的細節。
Docker應用程式的佈署是重點,也是一般使用者難駕馭的地方,進入說明網頁後切換「Dockerfile」分頁,密密麻麻的文字有點看不下去。其實許多的指令不用理會,只要注意 EXPOSE 與 VOLUME 的值即可,EXPOSE就是youtube-dl服務網站的入口 Port,VOLUME是下載影片儲存的名稱對應位置。
然後在切換「Overview」頁面,HTML 區塊上,其描述的就是服務的網址,就是使用瀏覽器開啟的輸入「http:// [NAS位址或網域名稱]:8080/youtube-dl」來開啟。
回到Docker的套件視窗,點選kmb32123/youtube-dl-server後按下〔佈署〕來安裝設定。
佈署時出現容器的名稱、資源與權限的設定,點選〔進階設定〕來調整一些參數。
將服務的網址建立在桌面上,以方便日後點選進入,請注意其Port 為 8080。
切換到「儲存空間」頁面上,新增資料夾來設定下載影片存方的位置,也就指定要下載至哪個共用資料夾,筆者選擇Synology Video Station套件預設的位置。
這樣讓下載的影片也能利用Video Station來管理與播放。掛載路徑就是NAS位址後便所輸入的「/youtube-dl」,就是前面文件提到的 「VOLUME」,其實就是有點類似虛擬主機目錄對應的方式,將不同的路徑名稱對應至不同的共用資料夾。
佈署容器是架設在Synology NAS下,NAS對外IP位置不可能知道要對哪個容器與服務運作,當然是靠Port來通知運作轉向,配合路徑達到想要執行程式。容器連接埠一樣就是之前說明文件中的EXPOSE(8080)。
最後確定容器的名稱是否要更改,筆者使用員先預設。
按下〔套用〕即可完成「youtube-dl」容器的佈署。
如果你有自己的網域名稱,且要從外面連近來,哪請你使要在路由器上設定器設定 8080 Port的轉向,下圖是使用Synology RT2600ac的畫面。
之前在進階設定中有指定建立捷徑,故在DSM桌面上看到「youtube-dl-server1」容器名稱的圖示。
點選即可進入youtube-dl網頁,其實就是在瀏覽器上的網址列輸入「http://[NAS位址]:8080/youtube-dl」一樣。
Synology Docker 佈署完後會出現在容器頁面上出現已安裝的容器,看到目前是執行中。
下載各式串流平台的影片很簡單,只要將影音播放的網址複製下來並貼到畫面中的輸入欄位,並選擇想要的格式,按下〔Submit〕即可開始下載。
看到白底的網頁寫了「Success: true」,表示已將網址放入佇列於背景下載,並不是已下載成功喔!
可以到「容器」→「詳細資訊」→「終端機」頁面上查看目前運作的狀態,由於筆者下載的7.8GB需要一段時間,你可以在這裡看到下載完成的百分比。
也就是說將網址貼上成功後,只是於佇列上開始下載,真正的下載成果與否,「終端機」頁面上可以看到很清楚,下圖是下載愛奇藝的影片出現的錯誤。
將下載的目錄指定到Video資料夾的好處是可以讓Video Station套件來管理,不過透過Docke方式放入是不會觸發索引的動作,你可以自己手動來重新索引。
果然在畫面上看到了youtube-dl下載的屏東燈節的影片。
不管在任何地方,靠著瀏覽器即可播放,是不是很方便呢?
youtube-dl並非支援所有的影音平台,較具知名的YouTube、Facebook 都可以下載,但僅於Full HD(1080P) 的影片,4K就愛莫能助了。其實Synology Downloader也可以下載Youtube的影片,一樣只要將網址貼上即可下載。
直接下載各式串流平台的影片成MP4檔,算是相當省時又方便,其實這類的下載雲端服務不少,像貼上網址就能下載影片的Savieo網站是筆者常使用的雲端服務。Synology NAS上提供的應用程式不算少,但也不可包山包海,不過透過Docker 套件可以讓你無所不能,因為Docker上有超過萬種容器應用程式輕鬆佈署於Synology NAS上。
成功設定後, 一段時間會無法使用, 須至docker中的容器重新啟動才能找到下在網頁,是否有解決的方案呢?