MDM kann auf drei Arten ohne sein Fenster gesteuert werden:
- Die eigene Befehlszeile der App, die gleichen Schalter wie bei IDM: Übergeben Sie einen Download von einem Skript, einer Batch-Datei oder einem anderen Programm an die laufende App.
misterdownloadmanager-cli, ein separates Befehlszeilen-Tool: Laden Sie Dateien, Videos und Torrents in einem Terminal mit Fortschritt herunter, ohne die App.- Die Automatisierungs-API: Andere Programme listen die Downloads der laufenden App (als JSON) auf und pausieren, starten, entfernen oder löschen sie über einen lokalen, Token-geschützten Kanal. KI-Assistenten verwenden sie über den MCP-Server von MDM: siehe KI-Assistenten.
Die Beispiele verwenden Windows-Pfade; unter macOS und Linux haben die Programme die gleichen Namen ohne .exe.
Die Befehlszeile der App
misterdownloadmanager.exe /d URL [/p folder] [/f name] [/a] [/n] [/s]
| Schalter | Was es tut |
|---|---|
/d URL |
Die Adresse zum Herunterladen. |
/p folder |
Speichern Sie es in diesem Ordner (sonst der Ordner der Kategorie aus Optionen → Speichern unter). |
/f name |
Speichern Sie es unter diesem Namen. |
/a |
Fügen Sie es der Haupt-Download-Warteschlange hinzu, ohne es zu starten. |
/n |
Leise: kein Fenster Dateiinformationen herunterladen, der Download startet (oder wird mit /a in die Warteschlange gestellt) sofort. |
/s |
Starten Sie die Haupt-Download-Warteschlange. |
/exit |
Speichern und schließen Sie die laufende App (der Installer verwendet dies vor einem Upgrade). |
eine .torrent-Datei oder ein magnet:-Link |
Öffnen Sie es in Torrent hinzufügen (was Windows übergibt, wenn MDM Torrents öffnet). |
Schalter können mit / oder - beginnen, in jedem Fall. Wenn MDM läuft, wird der Befehl an MDM gesendet; wenn nicht, startet MDM und führt ihn aus. Zum Beispiel:
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
Es wird mit jedem Download von MDM geliefert, neben der App (der Installer legt es in MDMs Ordner ab). Es funktioniert eigenständig: Die App muss nicht laufen, außer für status und api.
| Befehl | Was es tut |
|---|---|
get URL [-o folder\|file] [-c connections] [-H "Header: value"]... [--checksum hash] |
Lädt eine Datei mit bis zu 8 Verbindungen (-c, 1 bis 128) herunter und zeigt den Fortschritt an. Ctrl+C pausiert; resume setzt fort. --checksum prüft die fertige Datei: Hex MD5, SHA-1, SHA-256, SHA-512 oder CRC32, optional benannt (sha256:…). |
resume file.mdm.json [-c connections] [-H ...] |
Setzen Sie einen pausierten oder unterbrochenen Download aus der .mdm.json-Datei daneben fort. |
video-info URL |
Welche Videos eine Seite enthält (YouTube, Vimeo, ...), und die verfügbaren Qualitäten zur Auswahl. |
video-get URL [-f selector] [-o folder] |
Laden Sie ein Video herunter; -f nimmt den Selektor einer Qualität von video-info (b = die beste einzelne Datei). |
install-ytdlp, install-ffmpeg |
Installieren oder aktualisieren Sie die Helfer, die Videos benötigen: yt-dlp (geprüft anhand seines Signierschlüssels) und ffmpeg (Windows; unter macOS und Linux verwendet MDM die des Systems). |
torrent-info SOURCE |
Name, Dateien (nummeriert) und Größe eines Torrents; SOURCE ist ein Magnet-Link oder eine .torrent-Datei. |
torrent-get SOURCE [-o folder] [--files 0,2] |
Laden Sie einen Torrent oder nur einige seiner Dateien herunter. |
torrent-create PATH -o file.torrent |
Erstellen Sie eine .torrent einer Datei oder eines Ordners (Peers finden sie über das DHT). |
status |
Die Downloads der laufenden App als JSON, mit ihren IDs (die Automatisierungs-API muss aktiviert sein). |
pause ID..., start ID... |
Laufende Downloads anhalten oder gestoppte, in der Warteschlange befindliche oder fehlgeschlagene Downloads in der laufenden App starten (fortsetzen). |
remove ID..., delete ID... |
Downloads aus der Liste der laufenden App entfernen: remove behält die Dateien, delete löscht sie ebenfalls. Ein laufender Download wird zuerst angehalten (pause). |
api on, api off |
Die Automatisierungs-API der laufenden App ein- oder ausschalten. |
misterdownloadmanager-cli help <command>zeigt alle Optionen. Ein Befehl, der fehlschlägt (die App läuft nicht, sie antwortet mit einem Fehler, ein Download bricht ab), wird mit dem Code 1 beendet. Zum Beispiel:
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 für Skripte und Programme
Mit --json (vor oder nach dem Befehl) gibt jeder Befehl JSON anstelle von Text aus, ein Objekt pro Zeile, damit Skripte und KI-Agenten es lesen können:
| Befehl | Gibt aus |
|---|---|
get, resume |
Eine {"event": "progress", "downloaded", "size", "speed", "connections", "segments"}-Zeile jede halbe Sekunde, dann {"event": "done", "path", "size", "seconds"}, oder {"event": "paused", "state"} nach Ctrl+C (state ist die Datei, die resume benötigt). |
video-get |
{"event": "progress", "downloaded", "size", "speed"}Zeilen, dann {"event": "done", "path"}. |
torrent-get |
{"event": "progress", "phase", "downloaded", "size", "speed", "peers", "peers_seen"}Zeilen, dann {"event": "done", "path", "size"}, oder {"event": "stopped", "downloaded", "seconds"} mit --seconds. |
video-info |
{"title", "choices": [{"label", "format", "size"}]}; die format einer Auswahl ist das, was video-get -f benötigt. |
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 |
Die Antwort der App, die bereits JSON ist (siehe unten). |
Größen sind in Bytes (null während unbekannt), Geschwindigkeiten in Bytes pro Sekunde. Ein Fehler gibt {"error": "…"} aus und beendet sich mit Code 1. Zum Beispiel:
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}
Die Automatisierungs-API
Andere Programme können die laufende App fragen, was sie herunterlädt, und Downloads anhalten, starten, entfernen oder löschen. Die API ist standardmäßig ausgeschaltet; schalten Sie sie mit misterdownloadmanager-cli api on ein (und mit api off aus).
Wie ein Programm mit MDM kommuniziert
- Während MDM läuft, lauscht es an einem Port von
127.0.0.1(nur dieser Computer) und schreibt den Port und ein geheimes Token inipc.jsonin seinem Datenordner: - Windows:%APPDATA%\misterdownloadmanager\ipc.json- macOS:~/Library/Application Support/misterdownloadmanager/ipc.json- Linux:~/.local/share/misterdownloadmanager/ipc.json- Eine portable Kopie:data\ipc.jsonneben dem Programm.
Das Token ändert sich bei jedem Start; nur Programme, die Ihren Datenordner (Ihren) lesen können, können es verwenden. 2. Verbinden Sie sich mit diesem Port und senden Sie eine Zeile JSON: das Token und die Felder des Befehls, z.B. {"token": "<token>", "query": "list"}. 3. MDM antwortet mit einer Zeile: ok für einen Befehl oder ein JSON-Objekt für eine Frage.
Was es versteht
Felder (außer token) |
Antwort |
|---|---|
{"query": "list"} |
Jeder Download und die Gesamtgeschwindigkeit: {"downloads": [{"id", "file", "url", "path", "status", "size", "downloaded", "speed", "added", "error"}], "speed": bytes per second}. status ist Queued, Downloading, Stopped, Complete oder Error; size ist null während unbekannt; error (warum es fehlgeschlagen ist) ist nur für einen Download in Error vorhanden. Nur wenn die API eingeschaltet ist. |
{"action": "pause", "ids": [3, 4]} |
Handelt bei Downloads nach ID: "pause", "start", "remove" (Datei behalten) oder "delete" (Datei ebenfalls gelöscht). Antwortet {"done": [3], "skipped": [{"id": 4, "why": "not running"}]}; ein laufender Download muss angehalten werden, bevor er entfernt oder gelöscht wird. Nur wenn die API eingeschaltet ist. |
{"api": true} / {"api": false} |
Schaltet die API ein oder aus: {"api": true}. |
{"url": "https://…", "dir": "D:\\Files", "name": "a.zip", "silent": true} |
Fügt einen Download hinzu, wie es die /d /p /f /n der Befehlszeile tun ("later": true ist /a); ok. Auch bei ausgeschalteter API, wie die Befehlszeile. |
{"start_queue": true} |
Startet die Haupt-Download-Warteschlange; ok. |
Eine unbekannte Frage oder Aktion wird mit {"error": "…"} beantwortet, ebenso eine Frage, während die API ausgeschaltet ist (dann mit "code": "api-off", damit Programme dies überprüfen können: der Fehlertext kann sich ändern). Ein falsches Token wird mit denied beantwortet.
Jede Anfrage und Antwort wird Feld für Feld in einem JSON-Schema beschrieben: automation-api.schema.json (auch unter https://misterdownloadmanager.com/automation-api.schema.json). Es wird aus dem Code erstellt, mit dem die App antwortet, sodass es genau bleibt; Programme können überprüfen, was sie senden und lesen, oder ihre Typen daraus generieren.
Beispiele
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"])
Um stattdessen einen Download hinzuzufügen, senden Sie {"token": "…", "url": "https://example.com/a.zip", "silent": true}.
Kostenlos, Open Source, keine Werbung, keine Testversion.
Mister Download Manager herunterladen