GDM can be driven without its window in three ways:
- Dòng lệnh của ứng dụng, các tùy chọn giống như của IDM: chuyển một lượt tải xuống cho ứng dụng đang chạy từ một tập lệnh, tệp bó hoặc chương trình khác.
misterdownloadmanager-cli, một công cụ dòng lệnh riêng biệt: tải xuống tệp, video và torrent trong một thiết bị đầu cuối, có hiển thị tiến độ, mà không cần ứng dụng.- The automation API: other programs list the running app's downloads (as JSON) and pause, start, remove or delete them, over a local, token-protected channel. AI assistants use it through GDM's MCP server: see AI assistants.
To run the whole app without a window, on a home server or a NAS, see Run GDM on a server (misterdownloadmanager --headless); to control it from a phone, Control GDM from your phone.
Các ví dụ sử dụng đường dẫn của Windows; trên macOS và Linux, các chương trình có cùng tên mà không có .exe.
Dòng lệnh của ứng dụng
misterdownloadmanager.exe /d URL [/p folder] [/f name] [/a] [/n] [/s]
| Tùy chọn | Chức năng |
|---|---|
/d URL |
Địa chỉ để tải xuống. |
/p folder |
Lưu vào thư mục này (nếu không sẽ là thư mục của danh mục từ Tùy chọn → Lưu vào). |
/f name |
Lưu với tên này. |
/a |
Thêm vào hàng đợi tải xuống chính mà không bắt đầu. |
/n |
Im lặng: không có cửa sổ Thông tin tệp tải xuống, quá trình tải xuống bắt đầu (hoặc được xếp hàng, với /a) ngay lập tức. |
/s |
Bắt đầu hàng đợi tải xuống chính. |
/exit |
Lưu và đóng ứng dụng đang chạy (trình cài đặt sử dụng nó trước khi nâng cấp). |
/startup |
Start in the notification area, the window hidden: what Launch GolinksPRO Download Manager on startup starts GDM with when you sign in. Where no notification area shows GDM's icon (some Linux desktops), GDM starts minimized. A running GDM stays as it is. |
một tệp .torrent hoặc liên kết magnet: |
Open it in Add torrent (what Windows passes when GDM opens torrents). |
Switches can start with / or -, in any case. If GDM is running, the command goes to it; if not, GDM starts and carries it out. For example:
misterdownloadmanager.exe /d https://example.com/files/report.pdf /p D:\Reports /n
misterdownloadmanager.exe /d https://example.com/big.iso /a
misterdownloadmanager.exe /s
misterdownloadmanager-cli
It comes with every download of GDM, next to the app (the installer puts it in GDM's folder). It works on its own: the app needn't run, except for status and api.
| Lệnh | Chức năng |
|---|---|
get URL [-o folder\|file] [-c connections] [-H "Header: value"]... [--checksum hash] [--dns choice] [--adapter name] |
Tải xuống một tệp bằng tối đa 8 kết nối (-c, từ 1 đến 128), có hiển thị tiến trình. Ctrl+C tạm dừng tải xuống; resume tiếp tục tải xuống. --checksum kiểm tra tệp sau khi tải xong bằng mã MD5, SHA-1, SHA-256, SHA-512 hoặc CRC32 ở dạng hex; có thể đặt tên cho mã kiểm tra (sha256:…). --dns chọn DNS: system (mặc định); dịch vụ và cách truy vấn dịch vụ đó, cloudflare-https, quad9-tls, google-plain, adguard-https, nextdns-tls; địa chỉ máy chủ DNS, 9.9.9.9,149.112.112.112; hoặc địa chỉ DNS-over-HTTPS. Công cụ không chuyển sang dùng DNS của hệ thống nếu DNS đã chọn không hoạt động. --adapter gửi mọi kết nối qua một bộ điều hợp mạng, được chọn theo tên (Ethernet, wg0) hoặc một trong các địa chỉ của bộ điều hợp đó; nếu bộ điều hợp chưa kết nối, không có dữ liệu nào được gửi và quá trình tải xuống sẽ thất bại. Liên kết từ máy chủ lưu trữ tệp sẽ được tải qua tài khoản debrid hỗ trợ liên kết đó (Tùy chọn → Tài khoản), giống như trong ứng dụng; get cho biết through Real-Debrid; --direct tải xuống trực tiếp địa chỉ đó (Tài khoản dịch vụ debrid). |
resume file.mdm.json [-c connections] [-H ...] [--direct] |
Tiếp tục tải xuống bị tạm dừng hoặc bị gián đoạn từ tệp .mdm.json nằm cạnh tệp tải xuống. Qua tài khoản debrid, như get: dịch vụ cung cấp liên kết mới khi liên kết cũ hết hạn; --direct tiếp tục tải xuống từ chính địa chỉ đó. |
install-gallery-dl |
Cài đặt hoặc cập nhật gallery-dl để tải thư viện ảnh: danh sách mã kiểm tra được xác minh bằng khóa ký của tác giả, rồi chương trình được xác minh bằng danh sách đó (Windows và Linux x86-64; trên các hệ điều hành khác, tự cài đặt). |
gallery-get URL [-o folder] [--limit N] [--adapter name] |
Tải ảnh trong một thư viện (danh mục Wikimedia Commons, album Flickr, ...) vào thư mục mang tên thư viện đó trong -o; --limit giới hạn số ảnh được tải xuống, tính từ những ảnh đầu tiên trang web liệt kê. Khi chạy lại, công cụ chỉ tải các ảnh mới. --adapter gửi các kết nối của gallery-dl qua một bộ điều hợp mạng, như với get. |
video-info URL |
Trang này chứa video nào (YouTube, Vimeo, ...), và các chất lượng để lựa chọn. |
playlist-info URL [--from N] [--count N] |
Các video trong danh sách phát hoặc kênh, mỗi video một dòng theo thứ tự liệt kê: vị trí, thời lượng, tiêu đề và địa chỉ. |
playlist-get URL [-f selector] [-o folder] [--from N] [--count N] |
Tải xuống lần lượt các video trong danh sách phát hoặc kênh vào một thư mục có tên theo danh sách đó, nằm trong -o. -f là một chất lượng áp dụng cho tất cả, giống như đối với video-get (mặc định là chất lượng tốt nhất của mỗi video; bv*[height<=720]+ba/b[height<=720] = tối đa 720p; ba = âm thanh gốc; mp3:320, opus:, flac: giống như đối với video-get). |
video-get URL [-f selector] [-o folder] [--subs langs] [--auto-subs] [--embed-subs] [--adapter name] |
Tải xuống một video; -f chọn chất lượng từ video-info (b = tệp đơn tốt nhất; ba = chỉ âm thanh như trang web có, không chuyển đổi; mp3:320, mp3:256, mp3:192 hoặc mp3:128 = âm thanh dưới dạng MP3 ở tốc độ bit đó, mp3:0 ở tốc độ biến đổi tốt nhất; opus: = dưới dạng Opus; flac: = dưới dạng FLAC, không mất dữ liệu nhưng không tốt hơn âm thanh của trang web; chuyển đổi cần ffmpeg). --subs lưu phụ đề bên cạnh: mã ngôn ngữ từ video-info (en,fr), hoặc all cho mọi ngôn ngữ người tải lên đã cung cấp; --auto-subs thay vào đó lấy phụ đề tự động của trang web; --embed-subs đặt chúng vào video (cần ffmpeg, MP4 hoặc MKV). --adapter gửi các kết nối của yt-dlp (và ffmpeg) qua một bộ điều hợp mạng, giống như đối với get; khi nó không được kết nối, không có gì bắt đầu. |
install-ytdlp, install-ffmpeg |
Install or update the helpers videos need: yt-dlp (checked against its signing key) and ffmpeg (Windows; on macOS and Linux GDM uses the system's). |
torrent-info SOURCE |
Tên, các tệp (được đánh số) và kích thước của một torrent; SOURCE là liên kết magnet hoặc tệp .torrent. |
torrent-get SOURCE [-o folder] [--files 0,2] [--use-existing] |
Tải xuống torrent hoặc chỉ một số tệp trong torrent đó. Nếu một số tệp đã có trong thư mục, lệnh sẽ dừng và liệt kê tên các tệp đó; --use-existing sẽ dùng các tệp này thay thế (giữ lại tệp trùng khớp và tải xuống phần còn lại). |
torrent-create PATH -o file.torrent |
Tạo .torrent từ tệp hoặc thư mục (các peer tìm thấy tệp đó qua DHT). |
status |
Các lượt tải xuống của ứng dụng đang chạy, dưới dạng JSON, với ID của chúng (API tự động hóa phải được bật). |
pause ID..., start ID... |
Tạm dừng các lượt tải xuống đang chạy hoặc bắt đầu (tiếp tục) các lượt đã dừng, đang chờ hoặc thất bại trong ứng dụng đang chạy. |
remove ID..., delete ID... |
Xóa các lượt tải xuống khỏi danh sách của ứng dụng đang chạy: remove giữ lại các tệp, delete cũng xóa các tệp. Lượt tải xuống đang chạy sẽ được tạm dừng trước (pause). |
api on, api off |
Bật hoặc tắt API tự động hóa của ứng dụng đang chạy. |
misterdownloadmanager-cli help <command>hiển thị mọi tùy chọn. Lệnh thất bại (ứng dụng không chạy, trả lời bằng lỗi hoặc lượt tải xuống bị gián đoạn) sẽ thoát với mã 1. Ví dụ:
misterdownloadmanager-cli get https://example.com/big.iso -o D:\Downloads -c 16 --checksum sha256:9f86d0…
misterdownloadmanager-cli video-get "https://www.youtube.com/watch?v=aqz-KE-bpKQ" -f "b[height=720]"
misterdownloadmanager-cli torrent-get "magnet:?xt=urn:btih:…" --files 0
JSON cho tập lệnh và chương trình
Với --json (trước hoặc sau lệnh), mọi lệnh đều xuất JSON thay vì văn bản, mỗi dòng một đối tượng, để tập lệnh và tác nhân AI đọc:
| Lệnh | In |
|---|---|
get, resume |
{"event": "through", "service"}đầu tiên nếu lượt tải xuống đi qua tài khoản debrid, sau đó xuất một dòng {"event": "progress", "downloaded", "size", "speed", "connections", "segments"} mỗi nửa giây, rồi {"event": "done", "path", "size", "seconds"}, hoặc {"event": "paused", "state"} sau Ctrl+C (state là tệp mà resume tải xuống). |
video-get |
{"event": "progress", "downloaded", "size", "speed"}dòng, sau đó là {"event": "done", "path", "subtitles", "subtitle_problems"}: các tệp phụ đề được lưu bên cạnh video và các ngôn ngữ mà trang web từ chối ({"code", "name", "reason", "beside"}; beside: phụ đề được tải xuống trong lần thử thứ hai, lưu bên cạnh video thay vì ghép vào video). |
torrent-get |
{"event": "progress", "phase", "downloaded", "size", "speed", "peers", "peers_seen"}dòng, sau đó là {"event": "done", "path", "size"}, hoặc {"event": "stopped", "downloaded", "seconds"} với --seconds. |
video-info |
{"title", "choices": [{"label", "format", "size"}], "subtitles": [{"code", "name", "automatic"}]}; format của một lựa chọn là tệp mà video-get -f tải xuống, còn code của phụ đề là tệp mà --subs tải xuống. |
torrent-info |
{"name", "info_hash", "size", "files": [{"index", "size", "path"}]}. |
torrent-create |
{"info_hash", "path"}. |
install-ytdlp, install-ffmpeg |
{"tool", "version", "path"}. |
status, pause, start, remove, delete,api |
Phản hồi của ứng dụng, vốn đã ở dạng JSON (xem bên dưới). |
Kích thước tính bằng byte (null nếu chưa xác định), tốc độ tính bằng byte mỗi giây. Khi có lỗi, lệnh xuất {"error": "…"} rồi thoát với mã 1. Ví dụ:
misterdownloadmanager-cli --json get https://example.com/big.iso -o D:\Downloads
{"event":"progress","downloaded":4194304,"size":1073741824,"speed":52428800,"connections":8,"segments":8}
…
{"event":"done","path":"D:\\Downloads\\big.iso","size":1073741824,"seconds":20.4}
API tự động hóa
Các chương trình khác có thể hỏi ứng dụng đang chạy xem ứng dụng đang tải xuống những gì, cũng như tạm dừng, bắt đầu, gỡ khỏi danh sách hoặc xóa các lượt tải xuống. API tắt theo mặc định; bật bằng misterdownloadmanager-cli api on (và tắt bằng api off).
How a program talks to GDM
- While it runs, GDM listens on a port of
127.0.0.1(this computer only) and writes the port and a secret token toipc.jsonin its data folder: - Windows:%APPDATA%\misterdownloadmanager\ipc.json- macOS:~/Library/Application Support/misterdownloadmanager/ipc.json- Linux:~/.local/share/misterdownloadmanager/ipc.json- A portable copy:data\ipc.jsonnext to the program.
The token changes at every start; only programs that can read your data folder (yours) can use it.
2. Connect to that port and send one line of JSON: the token and the command's fields, e.g. {"token": "<token>", "query": "list"}.
3. GDM answers with one line: ok for a command, or a JSON object for a question.
Các lệnh được hỗ trợ
Các trường (ngoài token) |
Phản hồi |
|---|---|
{"query": "list"} |
Mỗi lượt tải xuống và tổng tốc độ: {"downloads": [{"id", "file", "url", "path", "status", "size", "downloaded", "speed", "added", "category", "error"}], "speed": bytes per second, "queues": [{"name", "running", "ids"}], "categories": [{"key", "name"}], "free": bytes}. status là Queued, Downloading, Stopped, Complete hoặc Error; size là null khi không xác định; error (lý do thất bại) chỉ có cho lượt tải xuống ở Error; category là key của một danh mục; free là dung lượng trống nơi các lượt tải xuống được lưu (null khi không xác định). Chỉ khi API đang bật. |
{"action": "pause", "ids": [3, 4]} |
Thao tác với lượt tải xuống theo ID: "pause", "start", "remove" (giữ lại tệp) hoặc "delete" (cũng xóa tệp). Phản hồi là {"done": [3], "skipped": [{"id": 4, "why": "not running"}]}; phải tạm dừng lượt tải xuống đang chạy trước khi gỡ khỏi danh sách hoặc xóa. Chỉ khả dụng khi API đang bật. |
{"action": "start_queue", "queue": "Main download queue"} |
Bắt đầu (hoặc với "stop_queue", dừng) hàng đợi có tên đó (một tên từ queues của danh sách). Trả lời {"done": [], "skipped": []}, hoặc {"error": …, "code": "unknown-queue"}. Chỉ khi API đang bật. |
{"api": true} / {"api": false} |
Bật hoặc tắt API: {"api": true}. |
{"url": "https://…", "dir": "D:\\Files", "name": "a.zip", "silent": true} |
Thêm một lượt tải xuống, như /d /p /f /n của dòng lệnh ("later": true là /a); ok. "category" (một khóa từ categories của danh sách) đặt nó vào thư mục của danh mục đó thay vì thư mục mà loại của nó chọn; "queue" (tên của một hàng đợi) là hàng đợi mà nó chờ cùng với "later". Cũng hoạt động khi API tắt, giống như dòng lệnh. |
{"start_queue": true} |
Bắt đầu hàng đợi tải xuống chính; ok. |
Câu hỏi hoặc hành động không xác định sẽ nhận được phản hồi {"error": "…"}. Câu hỏi khi API đang tắt cũng nhận được phản hồi này (kèm theo "code": "api-off", để chương trình kiểm tra; nội dung lỗi có thể thay đổi). Mã thông báo không hợp lệ sẽ nhận được phản hồi denied.
Mọi yêu cầu và câu trả lời đều được mô tả chi tiết theo từng trường trong một JSON Schema: automation-api.schema.json (cũng có tại https://misterdownloadmanager.com/automation-api.schema.json). Schema này được tạo từ mã mà ứng dụng dùng để trả lời, nên luôn chính xác. Các chương trình có thể dùng schema này để kiểm tra dữ liệu gửi đi và nhận về, hoặc tạo các kiểu dữ liệu từ schema.
Ví dụ
PowerShell (Windows):
$ep = Get-Content "$env:APPDATA\misterdownloadmanager\ipc.json" | ConvertFrom-Json
$client = New-Object Net.Sockets.TcpClient("127.0.0.1", $ep.port)
$stream = $client.GetStream()
$writer = New-Object IO.StreamWriter($stream); $reader = New-Object IO.StreamReader($stream)
$writer.WriteLine((@{ token = $ep.token; query = "list" } | ConvertTo-Json -Compress))
$writer.Flush()
$reader.ReadLine() | ConvertFrom-Json | Select-Object -ExpandProperty downloads | Format-Table file, status, downloaded, size
$client.Close()
Python:
import json, os, socket
ipc = os.path.join(os.environ["APPDATA"], "misterdownloadmanager", "ipc.json") # see above elsewhere
ep = json.load(open(ipc))
with socket.create_connection(("127.0.0.1", ep["port"])) as s:
s.sendall((json.dumps({"token": ep["token"], "query": "list"}) + "\n").encode())
answer = json.loads(s.makefile().readline())
for d in answer["downloads"]:
print(d["file"], d["status"], d["downloaded"], d["size"])
Để thêm một lượt tải xuống, hãy gửi {"token": "…", "url": "https://example.com/a.zip", "silent": true}.
Miễn phí, mã nguồn mở, không quảng cáo, không dùng thử.
Download GolinksPRO Download Manager