NeoDownloader 6
Version 6 is written from scratch. We set out to make NeoDownloader better and easier to live with: to run on more than Windows; to speak your language and look the way you like; to pick up a new site without a new release of the program. Below is how far we have got.
Windows · 177 MB · signed installer
It is a separate program with its own folders. Installing it leaves version 5 where it is, and the two run side by side.
How many sites are supported
The short answer is hundreds and thousands. A lot comes from the two bundled engines: yt-dlp for video and gallery-dl for pictures, and between them thousands of sites — the cards below say how many each reaches. Our own recipes already cover many sites, named ones for a particular place and general ones that take any gallery, forum thread or profile with a predictable shape, and the list keeps growing, because a recipe is a file rather than a release of the program.
What is here, and what is coming
Every item carries its state: available, partial, or planned.
How it looks
A modern interface: dark theme and twelve accent colours
AvailableLight, dark, or whatever the system is set to — switched on the fly, with no restart. The accent is one of twelve (teal, blue, violet, pink, red, orange, green and the rest), and the whole interface repaints to match, project cards and progress bars included.
Thirteen languages — and yours, if you ask
AvailableThe earlier versions spoke English and nothing else. Version 6 speaks thirteen languages, and the language is chosen inside the program, with no restart. Is yours missing? Write to us — we will translate into any language, if you are ready to check the result in the running interface afterwards.
The viewer and the player — faster, and easier to live with
AvailableLooking through what you downloaded, without leaving the project, has become considerably easier. A picture opens full-screen with a strip of thumbnails along the bottom — the rest of the project stays at hand, and paging through it never means leaving full screen. The player is faster: it decodes on the graphics card and carries video up to 8K, where version 5 stopped at 4K. PDF and the text formats are new — txt, md, csv, json — so telling whether a file is the one you wanted no longer needs another program at all.
What it downloads with
Plugins — what the product is assembled from
AvailableThe program used to be a monolith: the browser, the page parsing and the downloading all lived inside a single file, and a new way of fetching meant a new release of everything. Now the work with a source belongs to a plugin — a separate program with its own runtime and its own dependencies, up to a browser of its own. Four arrive in the box so far: yt-dlp for video, gallery-dl for galleries, a crawler of our own, and one for a plain direct link. Paste an address and they answer which of them can handle it; the project goes to the one that did. Each is added, updated and removed on its own, and a plugin that falls over does not take the program down with it.
yt-dlp, bundled
Availableyt-dlp is what video is downloaded with these days — the actively maintained successor to youtube-dl, reaching more than fifteen hundred platforms. It takes a video at the best quality on offer, with its sound, subtitles and chapters; it takes whole playlists and channels; and it catches a livestream from its start rather than from the moment you arrived. yt-dlp itself is a command-line tool; here the quality is a list to pick from, and the destination folder and the log belong to the application.
gallery-dl, bundled
Availablegallery-dl is the same thing for pictures: close to three hundred sites where what matters is an author, an album, a tag or a collection rather than a page. It follows pagination to the end, and it can sign in as you do — by password, by the cookies already in your browser, or through OAuth — so it sees what you see. Files come out named by rules rather than dropped in a heap. Also a command-line tool by nature, also in the box, and also without a single command typed.
Our own crawler, and the recipes that steer it
AvailableThe plugin we wrote ourselves, for everything the two engines above do not cover: it walks the site — a gallery, a profile, a board, a forum thread, a page of search results — and collects what it finds. What to look for on a particular site is written in a recipe, a small file beside the plugin rather than code inside the program. Recipes come for 500px, Bing Images, Flickr, Google Images, IMDb, Reddit and others, plus general ones — a forum thread, a gallery, a single page, and a whole site at once.
A visual editor for recipes
PartialThe window where the program is taught a new site: a recipe for the site you want is assembled on the live page itself — a tree of what the recipe extracts on the left, the page on the right, and the element you want chosen with the mouse. Pointing stands in for knowing markup, so a recipe is within reach of somebody with no experience of it at all. The same window mends a recipe that stopped working after a site changed its layout. Still being written — part of it works, part is under construction, and the application says so in advance.
Direct links and fusker ranges
AvailableAn address that points straight at a file is downloaded without parsing anything. So is a range like photo[1-50].jpg — the fusker of version 5: one pattern expands into fifty addresses.
Open source code for the plugins
AvailableThe code that handles a site sits in the installation folder in plain Python, readable as it is: open it to see exactly how a site is walked, change it for your own purposes, or take it as the starting point for something else. Keeping it uncompiled was the decision that makes this possible, and it was taken for exactly this reason.
Your own plugins and recipes — for developers
PlannedA plugin is a separate Python process, not a class inside ours, and the SDK is MIT precisely so that somebody else’s plugin has the right to link against it. A recipe for a particular site is assembled in the editor out of selectors, and where selectors run out, out of a handler written in Python or JavaScript.
How it is used, and what comes next
Running a project again takes only what is new
AvailableStart a project a second time and it collects only the files that are missing, rather than everything again: what has already been saved is remembered file by file and left alone. Version 5 called this a smart update. Here it is simply how a run behaves, with nothing to switch on.
Windows, macOS and Linux
PartialThe earlier versions ran on Windows and nowhere else — that is the system they were written for. Version 6 treats the operating system as a detail: the Windows build is ready and signed, and it is the one on this page. Builds for macOS and Linux are coming soon — the core is cross-platform already, and what remains is packaging and signing.
Controlling it from a phone or another computer
PlannedA running copy will be reachable from outside, and it will look exactly the way it does on your own machine. Manage downloads from a phone, or from a laptop in another room, watch them run, and page through what has already been downloaded — pictures, video, sound, documents.
A full HTTP API
PartialThe program can be driven from a script of your own: create a project, start it, and collect the result — all of it ordinary requests to the core. The interface uses that same API, so from outside you can reach exactly what it reaches. And the core itself will run with no window at all — on a server, say.
Recipes that arrive on their own
PlannedKeeping recipes separate from the program is for exactly this: a site breaks, and what reaches you is a file rather than a new version. Today a broken recipe can be repaired on your own machine, but nothing delivers one to you — the channel that would is not built.
Scheduled runs
PlannedRestart a project on a timetable and take only what is new — what version 5 called a smart update, with nobody at the keyboard. The core is made to run without an interface; the scheduler is the next thing to be written.
Updating itself
PartialThe program notices that a new version exists and says so. Downloading and installing it is still your click.
Something missing?
The list above is what exists today, not what it will end at. Requests are welcome: if you are waiting for something that is not there yet, or for a site that is not covered, write to us. Letters like that are what the next round of work is made of, and sites are the quickest thing to add.
Your licence, and your projects
If you bought version 5, the key has been sent by email
A version 5 purchase carries a year of free updates, and version 6 is one of them. We have sent the key in a separate email — there was nothing to claim and nothing to buy again. If you bought version 5 and no key has reached you, write to us.
A version 6 key registers versions 4 and 5
The activation page those versions call understands the new key format and answers them with a valid registration. One key covers three versions, so moving forward does not un-register what is already installed.
Projects and settings do not carry over
The inside of version 6 is arranged very differently from version 5's. Carrying settings and projects across from one to the other is therefore impossible: what was a single checkbox there may live inside a plugin here rather than in the program itself. Both versions can be kept at once, though — each has its own folders and its own settings, and neither gets in the other's way. Start new projects in version 6 and let the ones you already have finish downloading in version 5.
Version 6 is still in testing
A beta is an almost-finished product being tried on real work: it is how bugs we missed get found, and how we learn whether what we built is actually convenient. In return you get early access — everything new before everyone else. Spotted a failure or an awkward corner? Write to us: the page's address, what you expected, and what happened instead.