Skip to content

therahul-yo/All-kitty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

58 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AllKitty 🐾 - Production-Grade Media Processing Platform

A robust, production-ready media downloading service built with Node.js, TypeScript, and Redis. Engineered for reliability.

CI Status Coverage License

🌟 Key Features

  • 🎬 Multi-Platform Support: High-performance media extraction from YouTube, TikTok, Twitter/X, and more.
  • πŸ“Š Advanced Job Queue: Redis-backed background processing using Bull for handling concurrent high-load requests.
  • πŸ“œ Persistent History: SQLite-powered download history tracking with status management.
  • πŸ”’ Security Hardened:
    • Strict input validation via Zod.
    • Rate limiting to prevent API abuse.
    • Secure HTTP headers via Helmet.
  • πŸ§ͺ Comprehensive Testing: Unit and integration tests using Jest and Supertest.
  • 🐳 DevOps Ready: Fully containerized with Docker and Docker Compose.
  • 🎨 Modern UI: Zero-dependency Vanilla JS frontend with real-time queue polling and interactive animations.

πŸ› οΈ Tech Stack

Layer Technology
Runtime Node.js 20 (LTS)
Language TypeScript (Strict Mode)
Framework Express.js
Queue Bull + Redis
Database SQLite (better-sqlite3)
Testing Jest + Supertest
Security Zod, Helmet, Rate-Limit
Engine yt-dlp + ffmpeg
DevOps Docker, GitHub Actions

πŸš€ Getting Started

Prerequisites

Local Development

  1. Clone & Install:

    git clone https://github.com/therahul-yo/All-kitty.git
    cd All-kitty
    npm install
  2. Environment Setup:

    cp .env.example .env
  3. Start Dev Server:

    npm run dev

Running Tests

npm test                 # Run all tests
npm run test:coverage    # Generate coverage report

Docker Deployment

The easiest way to run the full stack (App + Redis):

docker-compose up --build

βš™οΈ Configuration

Variable Description Default
PORT Server port 3000
REDIS_URL Redis connection string redis://localhost:6379
MAX_FILE_AGE File cleanup threshold (ms) 3600000 (1h)
FILE_PREFIX Default download filename allkitty

πŸ“œ License

Distributed under the MIT License. See LICENSE for more information.


Built with 🧑 by therahul-yo

About

AllKitty 🐾 β€” Production-grade media processing platform. Extract and download videos/audio from YouTube, TikTok, Twitter/X, and more. Built with TypeScript, Express, Bull/Redis queues, and yt-dlp. Fully Dockerized with CI/CD.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors