Mister Download Manager
  1. Strona główna
  2. Pomoc
  3. Wiersz poleceń i automatyzacja

Wiersz poleceń i automatyzacja

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

  1. Podczas działania MDM nasłuchuje na porcie 127.0.0.1 (tylko ten komputer) i zapisuje port oraz tajny token do ipc.json w 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.json obok 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