yoink is an all-in-one media tool. download videos from 1000+ sites, convert between formats, and compress for discord. no ads, no trackers, free and fast, forever.
- download videos and audio from 1000+ sites (youtube, tiktok, twitter, reddit, etc.)
- playlists download entire youtube playlists as a zip
- images download image galleries from supported sites (gallery-dl)
- convert between formats with different codecs
- compress videos to a target file size for discord
- clips download specific youtube clips with timestamps
- gifs auto-detect and download as gif from twitter/x
- pwa install as a mobile app, share links directly from your phone
- admin panel built-in dashboard for analytics, banners, and server status
- frontend — svelte 5 SPA with vite, deployed on cloudflare pages
- api — node.js + express with modular route/service architecture
- tools — yt-dlp, ffmpeg, gallery-dl, cobalt api
see docs/self-hosting.md for full setup guide
git clone https://github.com/coah80/yoink.git
cd yoink/api
npm install
cp ../docs/admin-config.example.js admin-config.js
node index.jsthe API serves on http://localhost:3001. for the frontend:
cd frontend
npm install
npm run buildthe built frontend goes in frontend/dist/ — serve it with any static host or reverse proxy.
powered by:
- yt-dlp — media downloading
- gallery-dl — image downloading
- ffmpeg — video processing
- cobalt — youtube fast path
inspired by: