Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

60 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.
  • ๐ŸŽฎ A handheld you can hold: The whole frontend is a 3D console rendered in CSS โ€” extruded shell, tactile buttons, pointer-tracked tilt, a 160ร—144 dot-matrix screen and a chiptune synth. Zero runtime dependencies.

๐Ÿ› ๏ธ 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

๐ŸŽฎ The Handheld

The UI is a single device โ€” the AK-01 Pocket. Flip POWER on the top edge and it boots.

Control Does
A / Enter Feed the cat the link (starts the download)
B / Esc Back out of a menu, cancel a running job, clear the field
START / Space Settings โ€” format, quality, codec, sound, shell and screen themes
SELECT / L Litter log โ€” recent downloads
D-pad / arrows Move through menus, change values, poke the cat
POWER / P On/off, with the boot jingle
VOL / CON wheels Drag the side wheels for volume and screen contrast

Drag the shell itself to turn it in 3D. Click the cat to pet it. Pull the cartridge out of the top slot if you want to see what happens.

Everything is laid out in one --u unit, so the console scales as a single object from a phone to a desktop with no separate mobile layout.

Frontend build: public/script.ts compiles to a standalone public/script.js (it is gitignored). npm run build:web produces it, and npm run dev does it for you.

โš™๏ธ 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

Packages

Contributors

Languages