Mister Download Manager
  1. Startseite
  2. Hilfe
  3. Befehlszeile und Automatisierung

Befehlszeile und Automatisierung

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

  1. 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 in ipc.json in 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.json neben 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