叔叔我啊,最討厭不登入帳號看視頻的孩子了。
Mikuinvidious是模仿 Invidious Youtube 的網頁前端,專為Bilibili設計。
主打保護隱私的觀看體驗。
1. Mikuinvidious功能#
Mikuinvidious是由趙喜娜 (Bing Chilling) 開發的開源專案,去掉了Bilibili主站的臃腫界面與追蹤器,只保留影片播放功能,不需要JavaScript就能用。
用意在於讓用戶可以免登入觀看Bilibili影片,不會播放到一半被「登入享高清」的訊息干擾。還可以下載現正播放的影片。
Mikuinvidious也可以用來追番(需要輸入av號),只要不是大會員的公開番劇都能播放。依照Mikuinvidious伺服器部署的地理位置IP不同,能看的番劇也會不同。
可以用RSS訂閱UP主更新。不過看不到動態和文字專欄,只有影片。
Bilibili對外開放的影片畫質有限制。而且搜尋影片很容易被限流。
支援登入Bilibili帳號觀看更多內容。
2. 打包Mikuinvidious專案#
參考Gitlab,這個專案似乎已經一年以上沒更新了(悲)作者的README是空白的。我實測當下還是勉強可以用,一些頁面會報錯。彈幕無法顯示。
沒有現成的Docker映像檔,需要自己打包。Mikuinvidious目前似乎沒有公共站臺,需要自架。
在Linux安裝Docker
複製儲存庫
git clone https://0xacab.org/johnxina/mikuinvidious.git
cd mikuinvidious- 原作者寫的有問題,Docker容器會無法連線資料庫,這裡小改一下,修改
shared.py讓它能連其他位址的資料庫。
# Connect to our nice redis database.
redis_conf = appconf.get('redis', {})
redis_host = os.environ.get('REDIS_HOST') or redis_conf.get('host', 'localhost')
redis_port = int(os.environ.get('REDIS_PORT') or redis_conf.get('port', 6379))
redis_db = int(os.environ.get('REDIS_DB') or redis_conf.get('db', 0))
appredis = redis.Redis(host=redis_host, port=redis_port, db=redis_db)- 新增Dockerfile
vim Dockerfile- 填入以下內容,使用uv安裝Python 3.12,填入以下內容,使用uv安裝Python 3.12
FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder
ENV UV_COMPILE_BYTECODE=1 \
UV_LINK_MODE=copy
WORKDIR /app
COPY requirements.txt .
RUN uv venv /opt/venv \
&& uv pip install --python /opt/venv/bin/python -r requirements.txt
FROM python:3.12-slim-bookworm
ENV PATH="/opt/venv/bin:${PATH}" \
PYTHONUNBUFFERED=1
WORKDIR /app
COPY --from=builder /opt/venv /opt/venv
COPY . .
EXPOSE 8888
CMD ["sh", "-c", "test -f config.toml || cp config.toml.sample config.toml; exec python main.py"]- 打包為Docker image
docker build -t mikuinvidious:local .3. 部署MikuInvidious#
- 新增設定檔
cp config.toml.sample config.toml
vim config.toml- 修改
config.toml,設定網域。沒網域就填寫http://IP:8888。然後設定Redis連線網址。
[site]
site_name = 'MikuInvidious'
site_url = 'http://網域'
[redis]
host = 'redis'
port = 6379
db = 0- (選擇性)登入Bilibili帳號以解鎖更多內容,參考bilibili-api。可能被ban,風險自負。
[credential]
use_cred = true
sessdata = ''
bili_jct = ''
buvid3 = ''
dedeuserid = ''- 撰寫docker-compose
vim docker-compose.yaml- 內容如下,使用自己建置的Docker映像檔,還需要跑一個Redis當作資料庫
services:
mikuinvidious:
image: mikuinvidious:local
container_name: mikuinvidious
restart: unless-stopped
depends_on:
redis:
condition: service_healthy
environment:
REDIS_HOST: redis
REDIS_PORT: "6379"
REDIS_DB: "0"
ports:
- "8888:8888"
volumes:
- ./config.toml:/app/config.toml:ro
redis:
image: redis:7-alpine
container_name: mikuinvidious-redis
restart: unless-stopped
command: ["redis-server", "--appendonly", "yes"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 5
volumes:
- ./redis-data:/data- 啟動Docker服務
docker compose up -d- 啟動服務後,使用
http://IP:8888打開。
4. 將Bilibili網址重新導向到Mikuinvidious#
安裝LibRedirect。
MikuInvidious對Bilibili鏈接的處理不是很智慧,一些網址重新導向後會404。建議使用av號才能精準打開。


