English

Video & subtitles · Direct Media Downloader

From FTP and wget to the download attribute: a history of saving files

· Background

web-history downloads browser

A sequence from file transfer terminal to browser Blob and download control
Original ToolAcre vector illustration

Saving a file from the internet has changed from FTP sessions and command-line tools to a single browser API. This post traces that history and shows where a browser-only direct-link downloader fits in it.

Downloading used to be an event — the dial-up era of resume buttons and overnight transfers

Slow connections made saving a file a planned event: users watched elapsed time, guarded the phone line, and valued tools that could continue after interruption.

Those constraints shaped expectations for queues, resume, and visible progress. Modern interfaces are simpler, but reliability features did not become unnecessary merely because the button became smaller. A failed overnight transfer also had a conspicuous opportunity cost, encouraging tools to expose continuation and integrity information rather than only a final success message. Failure also carried a visible opportunity cost, encouraging resume controls and integrity checks rather than a single optimistic completion message.

FTP and early file transfer: explicit remote sessions and individual resources

FTP predates web pages and presents explicit remote file operations through a dedicated protocol. Its session and transfer modes differ substantially from an HTTPS Fetch, so “one file per connection” is too broad as history.

The useful contrast is user intent: select a remote resource and copy bytes. ToolAcre refuses FTP entirely because its validator accepts only encrypted HTTPS addresses. FTP can use separate control and data connections and several transfer modes, so simplified web-era analogies should not replace protocol-specific history. FTP can use separate control and data connections plus several transfer modes, so web-era summaries should not flatten its protocol history.

wget, curl and the command line — scripted downloads, retries and the habits that shaped modern tools

Command-line clients such as wget and curl made transfers scriptable and observable. Redirects, headers, output names, retry policies, authentication, ranges, and exit statuses became composable options.

That power remains appropriate for administrators handling authorized automation. A browser page has a smaller permission surface and should not imitate credentials, TLS overrides, or identity-changing retries. Scripts also made silent mistakes repeatable, which is why exit status, verified destinations, and conservative credential handling remain important. Automation made mistakes repeatable too, preserving the need for destination review, exit-status handling, and conservative credential practices. Logged commands also create audit evidence when they avoid leaking tokens into shared shell history.

Download managers and browser 'Save as' — the era of segmented downloads, resume and the download bar

Download managers added queues, segmented transfer, scheduling, and resume; browsers integrated a download shelf and native Save as behavior. These tools can write progressively without first building one application Blob.

Direct Media Downloader does not compete on those features. It offers explicit URL policy, host announcement, CORS explanation, progress, cancellation, and browser-local saving for a bounded single response. For a visible permitted link, native browser saving is still the most direct choice and can avoid this application’s CORS and Blob-memory constraints. For a visible authorized link, native browser saving remains simpler and can avoid script-level CORS and Blob accumulation.

HTML5's download attribute and Blobs — how the browser itself gained the ability to save a generated or fetched file

The HTML download attribute lets an anchor suggest saving rather than navigation, and object URLs let scripts address generated Blob data temporarily. Together they enable a page to offer bytes it has produced or fetched.

ToolAcre receives chunks, constructs a Blob, then invokes its shared download utility with a selected filename. Browser behavior still controls the dialog, folder, duplicates, and completion. The object URL should be revoked by the saving utility after use so the temporary reference does not outlive its purpose in the document. The temporary object URL should be revoked after use so its document-scoped reference does not remain available indefinitely.

Where this browser-only tool fits: one GET, streamed chunks, one Blob, one save

This implementation performs one GET for Download, though an optional earlier HEAD can inspect headers. It streams for progress and cancellation but retains chunks until one Blob is assembled, with a default 2 GiB limit.

No server stands between source and browser. That design preserves the direct path while accepting CORS and memory costs that native or command-line download mechanisms may handle differently. Cancellation discards partial data, and the interface offers no queued second job; both facts distinguish it from a full transfer manager. Cancellation discards partial data and no queue launches another job, distinguishing this focused interaction from a transfer manager.

Takeaway: simpler than it has ever been — how the Direct Media Downloader uses the browser's own APIs to do a once-complicated job

Saving is easier to initiate than in earlier eras, not universally solved. Direct Media Downloader represents one browser-native point in a larger toolbox and keeps its boundaries visible.

Use it for a permitted direct HTTPS file when its host allows cross-origin reading. Choose native Save link as, an authorized transfer client, or the source’s official facility when size, resume, authentication, or policy requires another path. The modern convenience is valuable precisely when its limits are understood, allowing users to select a more capable authorized mechanism without misusing this one. Modern convenience is most useful when users can move to an authorized specialist method without pretending this browser path includes its features.