Skip to content

rumikucom/ioFetch

Repository files navigation

ioFetch

ioFetch is a custom web-based application designed to download media (video/audio) from online platforms. Utilizing yt-dlp as its core engine, ioFetch is specifically architected to run on standard shared hosting environments (like Hostinger), overcoming strict PHP execution timeouts, lack of root access, and limitations on long-running synchronous processes.

ioFetch is intentionally a hybrid exception for future Kitsyu integration: the interface is kept portable and Kitsyu-style, but real media downloading still requires a Laravel worker with yt-dlp and FFmpeg. It is not a static-only browser tool.

Screenshots

Homepage

Homepage Light Homepage Dark

Download

Download Light Download Dark

Key Features

  • Asynchronous Architecture: All yt-dlp operations run as background PHP processes, preventing web server timeouts. A polling mechanism in the frontend tracks progress.
  • Background Queue Worker: A php artisan queue:work process handles download jobs asynchronously.
  • Format Options: Supports MP4 (video) and MP3 (audio) output formats.
  • Storage Management: iofetch:cleanup-downloads deletes completed or failed downloads older than 2 hours to conserve disk space.

Tech Stack

  • Backend: Laravel 13 (PHP 8.4+)
  • Frontend: Livewire 3, Alpine.js, Tailwind CSS 4
  • Core Engine: yt-dlp (with FFmpeg for media processing)
  • Database: SQLite
  • Design System: Industrial-Brutalist / Mono-Terminal aesthetic

Installation

Prerequisites

  • PHP >= 8.4
  • Composer
  • Node.js & NPM
  • yt-dlp binary
  • FFmpeg binary (for audio extraction / format conversion)

Setup

  1. Clone the repository:

    git clone https://github.com/Yenzy77/ioFetch.git
    cd ioFetch
  2. Install dependencies:

    composer install
    npm install
  3. Configure environment:

    cp .env.example .env
    php artisan key:generate
  4. Set binary paths in .env:

    YTDLP_BIN_PATH=/path/to/yt-dlp
    FFMPEG_BIN_PATH=/path/to/ffmpeg
  5. Run database migrations:

    php artisan migrate
  6. Build frontend assets:

    npm run build
  7. Start the development server:

    php artisan serve
  8. Start the queue worker (required for downloads):

    php artisan queue:work
  9. Schedule the cleanup command (optional):

    php artisan iofetch:cleanup-downloads

About

A high-performance, web-based media downloader utilizing yt-dlp and FFmpeg, architected specifically for shared hosting environments using Laravel 13, Livewire 4, and an industrial-brutalist UI.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages