MDM có thể được điều khiển mà không cần cửa sổ theo ba cách:
- 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.- API tự động hóa: các chương trình khác liệt kê các lượt tải xuống của ứng dụng đang chạy (dưới dạng JSON) và tạm dừng, bắt đầu, xóa hoặc loại bỏ chúng, thông qua một kênh cục bộ, được bảo vệ bằng mã thông báo. Các trợ lý AI sử dụng nó thông qua máy chủ MCP của MDM: xem Trợ lý AI.
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). |
một tệp .torrent hoặc liên kết magnet: |
Mở nó trong Thêm torrent (những gì Windows chuyển khi MDM mở torrent). |
Các tùy chọn có thể bắt đầu bằng / hoặc -, trong mọi trường hợp. Nếu MDM đang chạy, lệnh sẽ được chuyển đến nó; nếu không, MDM sẽ khởi động và thực hiện lệnh. Ví dụ:
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
Nó đi kèm với mọi bản tải xuống của MDM, bên cạnh ứng dụng (trình cài đặt đặt nó vào thư mục của MDM). Nó hoạt động độc lập: ứng dụng không cần chạy, ngoại trừ status và api.
| Lệnh | Chức năng |
|---|---|
get URL [-o folder\|file] [-c connections] [-H "Header: value"]... [--checksum hash] |
Tải xuống một tệp với tối đa 8 kết nối (-c, từ 1 đến 128), hiển thị tiến độ. Ctrl+C tạm dừng; resume tiếp tục. --checksum kiểm tra tệp đã hoàn tất: hex MD5, SHA-1, SHA-256, SHA-512 hoặc CRC32, tùy chọn đặt tên (sha256:…). |
resume file.mdm.json [-c connections] [-H ...] |
Tiếp tục một lượt tải xuống bị tạm dừng hoặc bị hỏng từ tệp .mdm.json bên cạnh nó. |
video-info URL |
Trang này chứa video nào (YouTube, Vimeo, ...), và các chất lượng để lựa chọn. |
video-get URL [-f selector] [-o folder] |
Tải xuống một video; -f lấy bộ chọn chất lượng từ video-info (b = tệp đơn tốt nhất). |
install-ytdlp, install-ffmpeg |
Cài đặt hoặc cập nhật các công cụ hỗ trợ cần thiết cho video: yt-dlp (được kiểm tra bằng khóa ký của nó) và ffmpeg (Windows; trên macOS và Linux MDM sử dụng của hệ thống). |
torrent-info SOURCE |
Tên, tệp (được đánh số) và kích thước của một torrent; SOURCE là một liên kết magnet hoặc một tệp .torrent. |
torrent-get SOURCE [-o folder] [--files 0,2] |
Tải xuống một torrent, hoặc chỉ một số tệp của nó. |
torrent-create PATH -o file.torrent |
Tạo một .torrent của một tệp hoặc thư mục (các peer tìm thấy nó thông 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 tệp, delete xóa cả tệp. Một 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. Một lệnh thất bại (ứng dụng không chạy, nó trả lời bằng lỗi, một lượt tải xuống bị hỏng) 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 các tập lệnh và chương trình
Với --json (trước hoặc sau lệnh), mọi lệnh sẽ in JSON thay vì văn bản, mỗi đối tượng một dòng, để các tập lệnh và tác nhân AI đọc:
| Lệnh | In |
|---|---|
get, resume |
Một dòng {"event": "progress", "downloaded", "size", "speed", "connections", "segments"} mỗi nửa giây, sau đó {"event": "done", "path", "size", "seconds"}, hoặc {"event": "paused", "state"} sau Ctrl+C (state là tệp mà resume lấy). |
video-get |
{"event": "progress", "downloaded", "size", "speed"}dòng, sau đó {"event": "done", "path"}. |
torrent-get |
{"event": "progress", "phase", "downloaded", "size", "speed", "peers", "peers_seen"}dòng, sau đó {"event": "done", "path", "size"}, hoặc {"event": "stopped", "downloaded", "seconds"} với --seconds. |
video-info |
{"title", "choices": [{"label", "format", "size"}]}; format của một lựa chọn là những gì video-get -f lấy. |
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 |
Câu trả lời của ứng dụng, vốn đã là JSON (xem bên dưới). |
Kích thước tính bằng byte (null khi không xác định), tốc độ tính bằng byte mỗi giây. Một lỗi sẽ in {"error": "…"} và 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 nó đang tải xuống gì, và tạm dừng, bắt đầu, xóa hoặc loại bỏ các lượt tải xuống. API tắt theo mặc định; bật nó bằng misterdownloadmanager-cli api on (và tắt bằng api off).
Cách một chương trình giao tiếp với MDM
- Khi chạy, MDM lắng nghe trên một cổng của
127.0.0.1(chỉ máy tính này) và ghi cổng cùng một mã thông báo bí mật vàoipc.jsontrong thư mục dữ liệu của nó: - Windows:%APPDATA%\misterdownloadmanager\ipc.json- macOS:~/Library/Application Support/misterdownloadmanager/ipc.json- Linux:~/.local/share/misterdownloadmanager/ipc.json- Một bản sao di động:data\ipc.jsonbên cạnh chương trình.
Mã thông báo thay đổi mỗi khi khởi động; chỉ các chương trình có thể đọc thư mục dữ liệu của bạn (của bạn) mới có thể sử dụng nó. 2. Kết nối với cổng đó và gửi một dòng JSON: mã thông báo và các trường của lệnh, ví dụ {"token": "<token>", "query": "list"}. 3. MDM trả lời bằng một dòng: ok cho một lệnh, hoặc một đối tượng JSON cho một câu hỏi.
Những gì nó hiểu
Các trường (ngoài token) |
Trả lờ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", "error"}], "speed": bytes per second}. 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 một lượt tải xuống trong Error. Chỉ khi API đang bật. |
{"action": "pause", "ids": [3, 4]} |
Thực hiện hành động trên các lượt tải xuống theo ID: "pause", "start", "remove" (giữ tệp) hoặc "delete" (xóa cả tệp). Trả lời {"done": [3], "skipped": [{"id": 4, "why": "not running"}]}; một lượt tải xuống đang chạy phải được tạm dừng trước khi nó bị xóa hoặc loại bỏ. 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 làm ("later": true là /a); ok. Cũng có thể 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. |
Một câu hỏi hoặc hành động không xác định được trả lời {"error": "…"}, cũng như một câu hỏi khi API tắt (sau đó với "code": "api-off", để các chương trình kiểm tra: văn bản lỗi có thể thay đổi). Một mã thông báo sai được trả lời denied.
Mọi yêu cầu và câu trả lời được mô tả, từng trường một, trong một JSON Schema: automation-api.schema.json (cũng tại https://misterdownloadmanager.com/automation-api.schema.json). Nó được tạo từ mã mà ứng dụng trả lời, vì vậy nó luôn chính xác; các chương trình có thể kiểm tra những gì chúng gửi và đọc dựa trên nó, hoặc tạo các kiểu của chúng từ nó.
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ử.
Tải xuống Mister Download Manager