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.
- Asynchronous Architecture: All
yt-dlpoperations run as background PHP processes, preventing web server timeouts. A polling mechanism in the frontend tracks progress. - Background Queue Worker: A
php artisan queue:workprocess handles download jobs asynchronously. - Format Options: Supports MP4 (video) and MP3 (audio) output formats.
- Storage Management:
iofetch:cleanup-downloadsdeletes completed or failed downloads older than 2 hours to conserve disk space.
- Backend: Laravel 13 (PHP 8.4+)
- Frontend: Livewire 3, Alpine.js, Tailwind CSS 4
- Core Engine:
yt-dlp(withFFmpegfor media processing) - Database: SQLite
- Design System: Industrial-Brutalist / Mono-Terminal aesthetic
- PHP >= 8.4
- Composer
- Node.js & NPM
yt-dlpbinaryFFmpegbinary (for audio extraction / format conversion)
-
Clone the repository:
git clone https://github.com/Yenzy77/ioFetch.git cd ioFetch -
Install dependencies:
composer install npm install
-
Configure environment:
cp .env.example .env php artisan key:generate
-
Set binary paths in
.env:YTDLP_BIN_PATH=/path/to/yt-dlp FFMPEG_BIN_PATH=/path/to/ffmpeg
-
Run database migrations:
php artisan migrate
-
Build frontend assets:
npm run build
-
Start the development server:
php artisan serve
-
Start the queue worker (required for downloads):
php artisan queue:work
-
Schedule the cleanup command (optional):
php artisan iofetch:cleanup-downloads



