Synology Share Downloader: the feature hiding inside a workaround

A fragile folder ZIP becomes resumable file-by-file transfer, then grows into a verifiable portable application.

A shared Synology folder offers a deceptively simple download button. For a large folder, that button asks the server to create one giant ZIP. There is no useful resume, progress is opaque, and one broken connection can send the person back to the beginning.

Synology Share Downloader replaces that brittle bundle with individual transfers. Paste a public share link, browse the folder tree, choose what to fetch, and the application preserves the hierarchy, empty directories, and original timestamps. HTTP Range requests let interrupted files resume, while completed files are skipped on the next run.

Preserve the shape of the thing

Reliability is not only about moving all the bytes. A rescued collection should still feel like the collection its owner arranged. Folder structure and dates are part of that meaning, particularly for photo, project, and archival shares.

The app performs a few concurrent downloads—enough to use the connection without becoming reckless—and presents per-file and overall speed, progress, and estimated time. The total-size warning before downloading an entire share is another small respect for the person operating it.

Harden the workaround

The first bricoleur move is often a script that solves today’s problem. The next is deciding whether the problem belongs to more people. Here, the Synology client became a reusable Python library and a portable desktop application for Windows, macOS, and Linux.

Unsigned binaries create a trust problem, so releases include checksums and build-provenance attestations. The build happens in visible GitHub workflows, and the documentation explains the operating-system warnings rather than pretending they do not exist. That does not equal commercial code signing, but it gives a user meaningful evidence about where an artifact came from.

This project demonstrates the full path from irritation to tool: identify the missing behavior, use the service’s existing web API and standard range requests, preserve the human shape of the data, and package the result so the person with the problem does not need a development environment.

The project is public at shawnrancatore/synology-share-downloader.