Flucto - creator-first desktop media downloader for short-form and long-form captures.
Flucto is an open-source desktop application for creators and curators who want one reliable way to capture media from YouTube, X, Reddit, Bilibili, and Instagram.
- ✨ Stunning UI: Apple-inspired dark mode with glassmorphism & smooth animations
- 🌍 Universal Support: Download from YouTube, X, Reddit, Bilibili, Instagram
- 📦 Batch Processing: Import
.txtlists to download huge queues automatically - ⚡ Auto-Setup: Automatically fetches and configures
yt-dlpandffmpegbinaries - 🔒 Privacy First: No tracking, local processing, and proxied thumbnail loading
- 🎵 Format Choice: High-quality video (MP4) or audio extraction (MP3) support
- 🛡️ Type Safe: Built with 100% TypeScript for stability and reliability
- Smart Media Engine: Flucto intelligently parses URLs to support single videos and playlists. It handles complex platforms like Bilibili and Twitter using specialized headers and User-Agents.
- Batch Queue System: Supports loading hundreds of URLs via text files. Perfect for archiving channels or downloading curated lists.
- Zero Configuration: Unlike other GUI wrappers, Flucto includes a
setup-binariesscript that automatically downloads the correct version ofyt-dlpandffmpegfor your OS upon installation. - Performance Focused: Built on Vite and React 19, offering a snappy experience compared to traditional Electron apps.
- Network Resilience: Implements auto-retry logic with exponential backoff for unstable connections or API rate limits.
Flucto uses GitHub Actions for automated CI/CD:
- Automatic Versioning: Semantic versioning based on commit messages
- Multi-Platform Builds: Windows, macOS, and Linux binaries built automatically
- Auto-Release: New GitHub releases created on push to main/master branch
Follow Conventional Commits to trigger automatic releases:
# Feature release
git commit -m "feat: add new feature"
# Bug fix
git commit -m "fix: resolve download issue"
# Breaking change
git commit -m "feat!: redesign API"See COMMIT_CONVENTIONS.md for full guidelines.
-
Clone the repository to your local machine.
git clone https://github.com/yourusername/flucto.git cd flucto -
Install dependencies
npm install
-
Setup Binaries - This script will detect your OS and download the required
yt-dlpandffmpegbinaries to the/bindirectory.npm run postinstall
-
Set Supabase environment variables before running forum features
cp .env.example .env
Required values:
SUPABASE_URLSUPABASE_PUBLISHABLE_KEY(orSUPABASE_ANON_KEY)SUPABASE_SERVICE_ROLE_KEY(optional)
You can verify Supabase auth/RLS write behavior with:
npm run supabase:smoke
-
Start the development server - This runs both the Vite renderer and the Electron main process concurrently.
npm run dev
Flucto is built with a modern stack prioritizing performance and developer experience:
- Runtime: Electron + Node.js
- Frontend: React 19, Tailwind CSS v4, Framer Motion
- Language: TypeScript (Strict Mode)
- Core Engine:
yt-dlp(Python backend),ffmpeg(Media processing) - Build Tooling: Vite, Electron-Builder, Rolldown
- State Management: React Hooks (
useDownloader,useDownloadMonitor)
To create installers for your platform (NSIS for Windows, DMG for macOS, AppImage for Linux):
# Build the renderer and main process
npm run build
# Package the application
npm run distContributions are welcome! Whether it's fixing bugs, improving the documentation, or proposing new features.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Made with ❤️ by Flucto Team
