English · Русский
Parallel downloader for large HTTPS files from SharePoint / OneDrive-style URLs (including download.aspx?…). Uses several curl requests with Range over HTTP/1.1 and merges chunks in order.
Unlike some multi-connection download managers targeting the same download.aspx endpoint, this tool avoids nghttp2 PROTOCOL_ERROR and bogus small HTML “downloads” when the server mis-handles parallel HTTP/2 streams.
- bash, curl, awk, GNU date (
%N) - Python 3 + browser-cookie3 only if you use
@…browser cookie tokens (a venv is created automatically under$XDG_DATA_HOME/sharepoint-dl/venv, usually~/.local/share/sharepoint-dl/venv)
git clone https://github.com/DataArchitectPro/sharepoint-dl.git
cd sharepoint-dl
make install PREFIX="$HOME/.local"Ensure $HOME/.local/bin is on your PATH. Man page:
man -M "$HOME/.local/share/man" sharepoint-dl
# or add to MANPATHsharepoint-dl [OPTIONS] <cookies|@token> <URL> <output-file> [chunks]
cookies— Netscape cookie file forcurl, or a@token(@auto,@firefox,@chrome, …) to read cookies from local browser profiles.URL— fullhttps://…link.output-file— destination path.chunks— optional parallel range count (default 8; overridden by-p).
| Option | Meaning |
|---|---|
-h, --help |
Full help (Russian text in the script). |
--version |
Print version. |
-p, --parts N |
Number of parallel byte ranges. |
--merge-cookies |
With @… tokens, pass --merge-all to the cookie exporter. |
--keep-chunks |
Keep temporary *.chunks.* directory after success. |
--cookie-domain S |
Host substring for browser cookie export (default sharepoint.com). |
-v, --verbose |
Print each chunk size after download. |
sharepoint-dl browse-cookies --browser firefox sharepoint.com -o ./cookies.txtCOOKIE_DOMAIN, COOKIE_MERGE_ALL=1, KEEP_CHUNKS=1, VERBOSE=1 mirror the corresponding flags.
Treat Netscape cookie files like passwords. Do not commit them or paste them into chats.
make uninstall PREFIX="$HOME/.local"-
Install GitHub CLI and run
gh auth login, or exportGITHUB_TOKEN/GH_TOKEN(classic token withreposcope, or fine‑grained equivalent). -
From the project directory:
cd /path/to/sharepoint-dl
./tools/publish-github.shThis creates a public repo sharepoint-dl, sets origin, and pushes main.
Override repo name: REPO_NAME=other-name ./tools/publish-github.sh
Manual equivalent:
gh repo create sharepoint-dl --public --source=. --remote=origin --pushThe clone URL above matches the GitHub user detected on this workstation (DataArchitectPro). Forks should change the URL.
MIT — see LICENSE.