Skip to content

Repository files navigation

🌙 Big Moon

Big Moon is a self-hosted Twitch VOD downloader with a web interface, user authentication, and hardware acceleration for Intel GPUs.

🚀 Features

  • VOD Discovery: Search for any Twitch channel and browse their available VODs with built-in player previews.

  • Hardware Accelerated: Uses Intel VA-API via /dev/dri to speed up video processing.

  • AV1 Support: Integrated with official Intel GPU drivers for AV1 hardware encoding (requires Intel Arc or 14th Gen+ CPUs).

  • Parallel Hardware Processing: Automatically detects all available VA-API devices (e.g., iGPU + dGPU) and distributes compression tasks across them in parallel to maximize throughput.

  • Auto-Download Pipeline:

    • Smart Monitoring: Automatically detect and download new VODs from monitored channels.
    • Task Chaining: Fully automated Download $\rightarrow$ Compress pipeline based on customizable presets.
    • Flexible Scheduling: Background polling with configurable lookback windows.
  • Advanced Library:

    • Smart Management: Search and filter your collection with bulk compression and deletion.
    • Size Analytics: Real-time file size comparison showing space saved after compression.
  • Modern UI/UX:

    • Glassmorphism: A polished, semi-transparent interface with dynamic accents.
    • Collapsible Navigation: Adaptive sidebar for maximum workspace.
    • Live Feedback: Visual progress bars with pulsing animations and toast notifications, including real-time task progress in log views.
    • Resilient Processing: Automatic reconnection for network-streamed VODs and robust task recovery/retry systems that preserve original compression settings.
    • Rich Channel Info: Integrated channel descriptions and robust avatar loading for discovery and favorites.
  • User Management:

    • Admin Command Center: High-level dashboard with disk utilization gauges and hardware health monitoring.
    • User: Search, request VOD downloads, and manage a personal library.
  • Dockerized: Easy deployment with Docker Compose using an Ubuntu 22.04 base for maximum driver compatibility.

  • Persistent Storage: All VODs and user data are stored in mapped volumes.

🛠️ Setup

1. Prerequisites

  • Docker and Docker Compose installed.
  • A Twitch App Client ID and Client Secret (get them from the Twitch Dev Console).
  • An Intel GPU (for hardware acceleration).
    • Note: For AV1 encoding, an Intel Arc GPU or 14th Gen+ CPU is required.
    • Ensure the host kernel has the i915 or xe driver installed.

2. Configuration

Copy the example environment file and fill in your credentials:

cp .env.example .env

Edit .env:

  • TWITCH_CLIENT_ID: Your Twitch App Client ID.
  • TWITCH_CLIENT_SECRET: Your Twitch App Client Secret.
  • ADMIN_USERNAME: The username for the initial admin account.
  • ADMIN_PASSWORD: The password for the initial admin account.
  • USE_GPU: Set to true to enable Intel acceleration.

3. Deployment

Start the application:

docker compose up -d --build

The app will be available at http://localhost:5000.

For local development instructions (non-Docker), please refer to DEVELOPMENT.md.

🔍 Hardware Verification

To check which codecs your GPU supports within the container:

docker exec -it <container_id> vainfo

📂 Directory Structure

  • /app: Source code for the Flask backend and templates.
  • /data: Persistent SQLite database for users.
  • /downloads: Location where downloaded VODs are stored.

🛡️ Security

  • No public sign-up page.
  • Initial admin is created automatically from .env on first run.
  • Subsequent users must be created by an administrator through the Admin Dashboard.

📜 Credits

This project was created by Some Watson with the assistance of opencode, an AI software engineering agent.

📄 License

This project is licensed under the MIT License.

About

BIg Moon

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages