MDM można obsługiwać bez okna na trzy sposoby:
- Wiersz poleceń aplikacji, te same przełączniki co w IDM: przekazanie pobierania do uruchomionej aplikacji ze skryptu, pliku wsadowego lub innego programu.
misterdownloadmanager-cli, oddzielne narzędzie wiersza poleceń: pobieranie plików, filmów i torrentów w terminalu, z postępem, bez aplikacji.- API automatyzacji: inne programy wyświetlają listę pobrań uruchomionej aplikacji (jako JSON) oraz wstrzymują, uruchamiają, usuwają lub kasują je za pośrednictwem lokalnego, chronionego tokenem kanału. Asystenci AI używają go za pośrednictwem serwera MCP MDM: zobacz Asystenci AI.
Przykłady używają ścieżek Windows; w systemach macOS i Linux programy mają te same nazwy bez .exe.
Wiersz poleceń aplikacji
misterdownloadmanager.exe /d URL [/p folder] [/f name] [/a] [/n] [/s]
| Przełącznik | Co robi |
|---|---|
/d URL |
Adres do pobrania. |
/p folder |
Zapisz w tym folderze (w przeciwnym razie w folderze kategorii z Opcje → Zapisz w). |
/f name |
Zapisz pod tą nazwą. |
/a |
Dodaj do głównej kolejki pobierania bez uruchamiania. |
/n |
Cichy: brak okna Informacje o pliku do pobrania, pobieranie rozpoczyna się (lub jest kolejkowane, z /a) natychmiast. |
/s |
Uruchom główną kolejkę pobierania. |
/exit |
Zapisz i zamknij uruchomioną aplikację (instalator używa tego przed aktualizacją). |
plik .torrent lub link magnet: |
Otwórz w Dodaj torrent (co Windows przekazuje, gdy MDM otwiera torrenty). |
Przełączniki mogą zaczynać się od / lub -, w dowolnej wielkości liter. Jeśli MDM jest uruchomiony, polecenie trafia do niego; jeśli nie, MDM uruchamia się i wykonuje je. Na przykład:
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
Jest dołączony do każdego pobrania MDM, obok aplikacji (instalator umieszcza go w folderze MDM). Działa samodzielnie: aplikacja nie musi być uruchomiona, z wyjątkiem status i api.
| Polecenie | Co robi |
|---|---|
get URL [-o folder\|file] [-c connections] [-H "Header: value"]... [--checksum hash] |
Pobiera plik z maksymalnie 8 połączeniami (-c, od 1 do 128), pokazując postęp. Ctrl+C wstrzymuje; resume kontynuuje. --checksum sprawdza ukończony plik: hex MD5, SHA-1, SHA-256, SHA-512 lub CRC32, opcjonalnie nazwany (sha256:…). |
resume file.mdm.json [-c connections] [-H ...] |
Kontynuuj wstrzymane lub przerwane pobieranie z pliku .mdm.json obok niego. |
video-info URL |
Jakie wideo zawiera strona (YouTube, Vimeo, ...), i dostępne jakości do wyboru. |
video-get URL [-f selector] [-o folder] |
Pobierz wideo; -f pobiera selektor jakości z video-info (b = najlepszy pojedynczy plik). |
install-ytdlp, install-ffmpeg |
Zainstaluj lub zaktualizuj pomocników potrzebnych do filmów: yt-dlp (sprawdzane względem klucza podpisu) i ffmpeg (Windows; w systemach macOS i Linux MDM używa systemowych). |
torrent-info SOURCE |
Nazwa torrenta, pliki (numerowane) i rozmiar; SOURCE to link magnet lub plik .torrent. |
torrent-get SOURCE [-o folder] [--files 0,2] |
Pobierz torrent, lub tylko niektóre z jego plików. |
torrent-create PATH -o file.torrent |
Utwórz .torrent pliku lub folderu (użytkownicy znajdują go przez DHT). |
status |
Pobrania uruchomionej aplikacji, jako JSON, z ich identyfikatorami (API automatyzacji musi być włączone). |
pause ID..., start ID... |
Wstrzymuje aktywne pobieranie lub uruchamia (wznawia) zatrzymane, oczekujące lub nieudane pobieranie w działającej aplikacji. |
remove ID..., delete ID... |
Usuwa pobieranie z listy aktywnej aplikacji: remove zachowuje pliki, delete usuwa je również. Aktywne pobieranie jest najpierw wstrzymywane (pause). |
api on, api off |
Włącza lub wyłącza API automatyzacji działającej aplikacji. |
misterdownloadmanager-cli help <command>pokazuje wszystkie opcje. Komenda, która zakończy się niepowodzeniem (aplikacja nie działa, odpowiada błędem, pobieranie zostaje przerwane), kończy działanie z kodem 1. Na przykład:
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 dla skryptów i programów
Z --json (przed lub po komendzie) każda komenda drukuje JSON zamiast tekstu, jeden obiekt na linię, do odczytu przez skrypty i agentów AI:
| Polecenie | Drukuje |
|---|---|
get, resume |
Linia {"event": "progress", "downloaded", "size", "speed", "connections", "segments"} co pół sekundy, następnie {"event": "done", "path", "size", "seconds"}, lub {"event": "paused", "state"} po Ctrl+C (state to plik, który pobiera resume). |
video-get |
{"event": "progress", "downloaded", "size", "speed"}linie, następnie {"event": "done", "path"}. |
torrent-get |
{"event": "progress", "phase", "downloaded", "size", "speed", "peers", "peers_seen"}linie, następnie {"event": "done", "path", "size"}, lub {"event": "stopped", "downloaded", "seconds"} z --seconds. |
video-info |
{"title", "choices": [{"label", "format", "size"}]}; format wyboru to to, co pobiera video-get -f. |
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 |
Odpowiedź aplikacji, która jest już w formacie JSON (patrz poniżej). |
Rozmiary są w bajtach (null, gdy nieznane), prędkości w bajtach na sekundę. Błąd drukuje {"error": "…"} i kończy działanie z kodem 1. Na przykład:
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 automatyzacji
Inne programy mogą pytać działającą aplikację, co pobiera, oraz wstrzymywać, uruchamiać, usuwać lub kasować pobieranie. API jest domyślnie wyłączone; włącz je za pomocą misterdownloadmanager-cli api on (i wyłącz za pomocą api off).
Jak program komunikuje się z MDM
- Podczas działania MDM nasłuchuje na porcie
127.0.0.1(tylko ten komputer) i zapisuje port oraz tajny token doipc.jsonw swoim folderze danych: - Windows:%APPDATA%\misterdownloadmanager\ipc.json- macOS:~/Library/Application Support/misterdownloadmanager/ipc.json- Linux:~/.local/share/misterdownloadmanager/ipc.json- Przenośna kopia:data\ipc.jsonobok programu.
Token zmienia się przy każdym uruchomieniu; tylko programy, które mogą odczytać Twój folder danych (Twój), mogą go używać. 2. Połącz się z tym portem i wyślij jedną linię JSON: token i pola komendy, np. {"token": "<token>", "query": "list"}. 3. MDM odpowiada jedną linią: ok dla komendy lub obiekt JSON dla pytania.
Co rozumie
Pola (oprócz token) |
Odpowiedź |
|---|---|
{"query": "list"} |
Każde pobieranie i całkowita prędkość: {"downloads": [{"id", "file", "url", "path", "status", "size", "downloaded", "speed", "added", "error"}], "speed": bytes per second}. status to Queued, Downloading, Stopped, Complete lub Error; size to null, gdy nieznane; error (dlaczego się nie powiodło) jest dostępne tylko dla pobierania w Error. Tylko gdy API jest włączone. |
{"action": "pause", "ids": [3, 4]} |
Działa na pobieraniach według ID: "pause", "start", "remove" (plik zachowany) lub "delete" (plik również usunięty). Odpowiada {"done": [3], "skipped": [{"id": 4, "why": "not running"}]}; aktywne pobieranie musi zostać wstrzymane, zanim zostanie usunięte lub skasowane. Tylko gdy API jest włączone. |
{"api": true} / {"api": false} |
Włącza lub wyłącza API: {"api": true}. |
{"url": "https://…", "dir": "D:\\Files", "name": "a.zip", "silent": true} |
Dodaje pobieranie, tak jak robi to /d /p /f /n w wierszu poleceń ("later": true to /a); ok. Również przy wyłączonym API, tak jak w wierszu poleceń. |
{"start_queue": true} |
Uruchamia główną kolejkę pobierania; ok. |
Nieznane pytanie lub działanie jest odpowiadane {"error": "…"}, podobnie jak pytanie, gdy API jest wyłączone (wtedy z "code": "api-off", aby programy mogły sprawdzić: tekst błędu może się zmienić). Błędny token jest odpowiadany denied.
Każde żądanie i odpowiedź są opisane, pole po polu, w schemacie JSON: automation-api.schema.json (również pod https://misterdownloadmanager.com/automation-api.schema.json). Jest on tworzony z kodu, którym odpowiada aplikacja, więc pozostaje dokładny; programy mogą sprawdzać, co wysyłają i odczytują, lub generować z niego swoje typy.
Przykłady
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"])
Aby zamiast tego dodać pobieranie, wyślij {"token": "…", "url": "https://example.com/a.zip", "silent": true}.
Darmowy, open source, bez reklam, bez wersji próbnej.
Pobierz Mister Download Manager