Cypher Downloader
A cross-platform media downloader with four animated themes and a proper download manager.
What Cypher Downloader is
A desktop downloader built around the things that actually go wrong: broken connections, long playlists, and a text file of two hundred links someone sent you. A Python engine does the downloading and conversion with yt-dlp and FFmpeg; a Node server hosts an animated browser interface and passes jobs between the two. Video up to 4K, audio to MP3, WAV or FLAC, whole playlists, and bulk lists that download in parallel.
Cypher Downloader features
What it actually does.
Where it downloads from
YouTube up to 4K; Instagram, Facebook and TikTok without the watermark at up to 1080p; and direct video links, detected automatically.
Quality and format
360p through 1080p, then 2K and 4K where the source has them, at 30 or 60 fps. Audio extracts to MP3, WAV or FLAC at 120 or 320 kbps.
Whole playlists
One link, every video in it, in the format you picked.
Bulk from a text file
One URL per line in a .txt file. The settings you choose apply to every link, and the engine downloads them in parallel.
Resume and retry
Broken downloads resume, network failures retry on their own, and separate audio and video streams are merged for you.
Four animated themes
Kuromi, Cyberpunk 2077, PlayStation 4 and Elden Ring, each with a light and a dark variant.
How to use Cypher Downloader
From a fresh install to the thing working.
1 Get it running
- Install Python 3.10+ and Node.js 18+.
- Clone the repository, create a Python virtual environment and pip install -r requirements.txt, then npm install.
- Start the Python engine with python main.py in one terminal and the Node server with npm start in another.
- Open http://localhost:3000.
2 Download a video or a playlist
- Paste the link.
- Choose video or audio, then the quality and the format.
- Start it, and watch the speed, percentage and remaining size as it goes.
3 Download a list of links
- Put the links in a plain .txt file, one per line.
- Open the Bulk Upload tab and choose Video or Audio.
- Pick the quality and format. They apply to every link in the file.
- Choose the text file and press Download. Every valid link downloads in parallel.
4 Run it as a service on Linux
- The repository carries a start script and a systemd unit that run both halves as one service.
- sudo systemctl enable cypher-downloader starts it at boot.
Built with
Licence
Made by Kencypher. Not open source.
Cypher Downloader was written by Kencypher. The source is not published and is not licensed for reuse. You have permission to run it — that is the whole of it.
You may
- Run it on as many of your own machines as you like
- Use it for anything, including commercial work
- Pass an unmodified copy to a friend, free
You may not, without asking
- Sell it or charge for access
- Re-upload or mirror it anywhere
- Rebrand it or publish it as your own
- Decompile it or lift its assets
This is enforced. Re-uploading it, repackaging it, stripping the author's name off it or passing it off as your own is copyright infringement — protected without registration under the Berne Convention — and is pursued with DMCA takedowns to the host, CDN, app store and search engine, platform reports for impersonation, and legal proceedings where the infringement is commercial, repeated, or involves falsely claiming authorship.
Asking first is free, and the answer is usually yes — kencypher56@gmail.com. The only official source is this store; a copy from anywhere else is not one Kencypher published.
Good to know
- Files land in ~/Downloads/cypher-downloader by default, and the folder can be changed.
- The two halves are separate on purpose: Python does the work that needs yt-dlp and FFmpeg, and Node only serves the page and relays requests, so the interface never waits on a download.
- Instagram, Facebook and TikTok are video only. Audio extraction is for YouTube.
- The two halves talk over a REST bridge on the machine itself: Node serves the page and relays requests, Python does the downloading. Neither waits on the other, which is why the interface stays responsive while eight files are coming down.
- A bulk list is read line by line and bad links are reported rather than stopping the run, so one dead URL in two hundred does not cost you the other hundred and ninety-nine.
- Every icon and font comes from one npm package, so the interface loads nothing from a CDN.