快轉到主要內容

以Docker架設Invidious站台,Youtube去廣告、網頁下載影片

· 民國115年丙午年
·
切換繁體/簡體
分類 Linux系統 Self-hosting自架
標籤 Invidious Youtube RSS Feed
目錄

想要在電腦和手機無廣告看Youtube影片?你有「Invidious」這個解決方案。

Invidious為一款輕量的第三方Youtube前端,我在Invidious用法討論了Invidious網站的使用方式,現在我們要來自架Invidious站台!

為啥要這樣幹呢?首先,公共Invidious站台因為太多人用,很容易因為流量過高被Youtube官方封鎖,導致影片無法載入。

並且,Invidious提供帳號註冊功能,裡面有簡單的訂閱功能與觀看紀錄。雖然Invidious網頁設計不用JavaScript就能用,儘量杜絕被追蹤的可能性,但你怎麼知道公共站點註冊帳號,背後的管理員會不會偷看你的紀錄呢?

為此,自己架一個Invidious站台看影片,你就不用跟其他人搶資源,並對站台資料有完全掌控權。

1. 撰寫docker-compose
#

有趣的是為強調開源隱私,Invidious官方映像檔是放在RedHat的Quay.io而非Docker Hub。在拉取映像檔之前可能要執行docker login quay.io登入帳號。

  1. 在Linux電腦安裝Docker

  2. 因為部署需要指令稿初始化,建議複製Invidious官方的儲存庫

git clone https://github.com/iv-org/invidious.git

cd invidious
  1. 產生兩組16位的金鑰,填入下面的docker-compose.yml
pwgen 16 1 # for Invidious (HMAC_KEY)
pwgen 16 1 # for Invidious companion (invidious_companion_key)
  1. 編輯docker-compose.yml,按需修改。詳細設定檔參考官方範本。這個docker-compose應該會有三個服務:invidious網頁、companion負責取得Youtube信任的token、invidious-db資料庫。因為Youtube隨時會修改網站功能,如果Invidious不能看,先到Github回報issue,或者改用最新版git commit的映像檔invidious:master

  2. 啟動容器服務

docker compose up -d
  1. 瀏覽器開啟http://localhost:3000就可以看Youtube了。

  2. Invidious沒有帳號密碼驗證機制,所以任何人都能存取。

2. Nginx範本
#

架在自己電腦,要從外部存取請使用通訊埠轉發或是內網穿透軟體

若是架在VPS,推薦使用子網域 + 反向代理:

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;
        http2 on;

    server_name <子網域>;

    access_log off;
    error_log /var/log/nginx/error.log crit;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;    # so Invidious knows domain
        proxy_http_version 1.1;     # to keep alive
        proxy_set_header Connection ""; # to keep alive
    }

    if ($https = '') { return 301 https://$host$request_uri; }  # if not connected to HTTPS, perma-redirect to HTTPS
}  

3. Invidious的IP被Youtube封鎖的問題
#

Youtube為了防止被免費仔吃垮,所以會限制IP存取伺服器,導致連線的時候出現Sign in to confirm you are not a bot - This helps protect our community錯誤訊息。

VPS的IP通常會被Youtube封鎖,致使Invidious的影片根本打不開。

如果是將Invidious部署在個人電腦,通常只要重開數據機重新取得一個新的公共IP就行了。

那麼VPS的要怎麼辦呢?參考Invidious社群撰寫的教學:All the YouTube error messages explained with solutions

4. 功能用法
#

  1. 按「趨勢」顯示熱門影片。內容地區可以在右上角設定裡面調整。

  2. 點選右上角按照喜好自行設定,「預設聆聽」是指只播放音訊不播放影片。啟用DASH格式的話,就能夠播放1080p影片,並且會自動切換畫質比較流暢。不然Invidious預設只有720p。

  3. Invidious內建帳號註冊功能。帳號的功能僅是紀錄觀看歷史和訂閱列表,不會讓Google知道使用者的動向。訂閱列表還能匯出為RSS,與其他軟體共享。

  4. 使用者能從網頁端下載影片,不過最高畫質可能不會太高,其他畫質要手動合併影音檔案。

  5. 即使是自架伺服器,也有小機率被Youtube暫時封鎖,這時能夠點選網頁底部切換其他站台。不過也有可能其他公共站台也跟著被封就是了XD

5. Invidious客戶端APP
#

如果你認為網頁不好用,那麼請使用支援Invidious技術的APP。你可以用這些客戶端,連線到自架的Invidious站台。

Android請用Clipious

iOS請用Yattee

電腦請用FreeTube

6. 將Youtube連結自動重新導向Invidious
#

根據Invidious官方推薦的APP,瀏覽器安裝擴充元件LibRedirect便能將所有Youtube連結自動導向自架的Invidious站點。

如果你有興趣自架代理搜尋引擎SearXNG,它也支援將影片搜尋結果導向自己架的Invidious站點。

相關文章


此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。您可以匿名留言。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。