Sign inSign up

nqdev/py-restream

By nqdev

•Updated about 17 hours ago

Giải pháp Python 24/7 restream TikTok Live lên YouTube Live, tích hợp Web Dashboard.

Image
Content management system
0

10K+

nqdev/py-restream repository overview

⁠py-restream

Restream TikTok Live, Twitch hoặc Bigo sang YouTube Live 24/7, quản lý bằng web dashboard. Đã đóng gói sẵn FFmpeg.

  • Nhiều phiên cùng lúc: mỗi phiên có log, terminal và chat riêng.
  • Ít tốn CPU: video được copy thẳng (stream copy), chỉ encode lại audio sang AAC.
  • Ba chế độ restream: RTMP bypass, direct URL, auto-extract (yt-dlp).
  • Chạy ổn định: tự reconnect, tự làm mới URL, xử lý hạn mức YouTube API.
  • YouTube Live Chat: đọc và trả lời chat ngay trong dashboard (OAuth 2.0).
  • Playlist restream: phát liên tục danh sách link video YouTube/TikTok thành một buổi live.

⁠Chạy nhanh

docker run -d --name py-restream \
  -p 8000:8000 \
  -e TZ=Asia/Ho_Chi_Minh \
  -v py-restream-data:/app/data \
  -v py-restream-logs:/app/logs \
  --restart unless-stopped \
  nqdev/py-restream:latest

Mở http://localhost:8000⁠.

⁠Docker Compose
services:
  py-restream:
    image: nqdev/py-restream:latest
    container_name: py-restream-app
    restart: unless-stopped
    ports:
      - "8000:8000"
    env_file:
      - .env            # tuỳ chọn, xem mục "Cấu hình"
    environment:
      - TZ=Asia/Ho_Chi_Minh
    volumes:
      - py-restream-data:/app/data
      - py-restream-logs:/app/logs
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/healthz"]
      interval: 60s
      timeout: 10s
      retries: 3

volumes:
  py-restream-data:
  py-restream-logs:

⁠Tag

TagÝ nghĩa
latestBản release mới nhất
vX.Y.Z (ví dụ v1.4.0)Một bản release cụ thể, nên dùng để cố định phiên bản

Image chỉ build cho linux/amd64 và chỉ được publish khi có tag release.

⁠Whisper (phụ đề / phiên âm)

Image trên Docker Hub không có Whisper (speech-to-text chạy local) để giữ dung lượng nhỏ, khoảng 680 MB thay vì khoảng 1,6 GB. Tính năng phụ đề tự động (WHISPER_ENABLE_CAPTIONS) và phiên âm trong Audio Tools sẽ báo lỗi nếu bạn bật.

Cần Whisper thì tự build từ source (chỉ chạy CPU):

git clone https://gitlab.com/quyit/vps-minipc/py-restream.git
cd py-restream
docker build -f docker/Dockerfile --build-arg WITH_WHISPER=1 -t py-restream:whisper .

⁠Cấu hình

Phần lớn cài đặt (đường dẫn FFmpeg, giới hạn phiên, TikTok/LLM, ...) lưu trong SQLite tại /app/data và chỉnh ở trang Settings của dashboard. Hãy gắn volume cho /app/data để không mất cài đặt khi nâng cấp.

Các khoá bí mật có thể truyền qua biến môi trường (đều tuỳ chọn):

BiếnCông dụng
YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRETOAuth YouTube, cần cho Live Chat
YOUTUBE_API_KEY, GCP_API_KEYAPI key YouTube Data
DASHBOARD_ADMIN_PASSMật khẩu bảo vệ dashboard
ANTHROPIC_API_KEY, OPENAI_API_KEY, NICEROUTER_API_KEYTính năng LLM (phân tích video/chat)
TWITCH_CLIENT_ID, TWITCH_OAUTH_TOKENChat/sự kiện Twitch (không cần để restream)
TZMúi giờ của container
LOG_LEVELMức log (mặc định INFO)

Dashboard không có đăng nhập nếu không đặt DASHBOARD_ADMIN_PASS. Nếu mở cổng 8000 ra ngoài localhost, hãy đặt biến này và đặt container sau reverse proxy có TLS.

⁠Volume và cổng

Đường dẫn / cổngCông dụng
/app/dataSQLite (app.db: cài đặt và API key), file video tạm
/app/logsLog dashboard và log từng phiên
8000Web dashboard và API (health check: GET /healthz)

⁠Mã nguồn

Source, issue và tài liệu đầy đủ: https://gitlab.com/quyit/vps-minipc/py-restream⁠

⁠Giấy phép

Public domain (Unlicense).

Tag summary

Content type

Image

Digest

sha256:38786d4af…

Size

155.1 MB

Last updated

about 17 hours ago

docker pull nqdev/py-restream:1.3.29