MDMは、ウィンドウを表示せずに次の3つの方法で操作できます。
- アプリ独自のコマンドライン。IDMと同じスイッチを使用します。スクリプト、バッチファイル、または別のプログラムから実行中のアプリにダウンロードを渡します。
misterdownloadmanager-cli。別のコマンドラインツールです。アプリなしで、進行状況を表示しながら、ターミナルでファイル、ビデオ、トレントをダウンロードします。- 自動化API。他のプログラムが、ローカルのトークン保護されたチャネルを介して、実行中のアプリのダウンロードを(JSONとして)一覧表示し、一時停止、開始、削除、または消去します。AIアシスタントはMDMのMCPサーバーを介してこれを使用します。詳しくはAIアシスタントをご覧ください。
例ではWindowsのパスを使用しています。macOSとLinuxでは、プログラムは.exeなしで同じ名前です。
アプリのコマンドライン
misterdownloadmanager.exe /d URL [/p folder] [/f name] [/a] [/n] [/s]
| スイッチ | 機能 |
|---|---|
/d URL |
ダウンロードするアドレス。 |
/p folder |
このフォルダーに保存します(それ以外の場合は、オプション → 保存先で設定されたカテゴリのフォルダー)。 |
/f name |
この名前で保存します。 |
/a |
開始せずにメインのダウンロードキューに追加します。 |
/n |
サイレント: ダウンロード ファイル情報ウィンドウは表示されず、ダウンロードはすぐに開始されます(または/aでキューに入れられます)。 |
/s |
メインのダウンロードキューを開始します。 |
/exit |
実行中のアプリを保存して閉じます(インストーラーはアップグレード前にこれを使用します)。 |
.torrentファイルまたはmagnet:リンク |
トレントを追加で開きます(MDMがトレントを開くときにWindowsが渡すもの)。 |
スイッチは/または-で始まり、大文字小文字は問いません。MDMが実行中の場合、コマンドはMDMに送られます。実行中でない場合、MDMが起動して実行します。例:
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
MDMのすべてのダウンロードにアプリの隣に付属しています(インストーラーはMDMのフォルダーに入れます)。statusとapiを除いて、アプリが実行されている必要はありません。
| コマンド | 機能 |
|---|---|
get URL [-o folder\|file] [-c connections] [-H "Header: value"]... [--checksum hash] |
最大8接続(-c、1〜128)でファイルをダウンロードし、進捗を表示します。Ctrl+Cで一時停止し、resumeで再開します。--checksumで完了したファイルをチェックします。オプションで名前を指定して(sha256:…)、MD5、SHA-1、SHA-256、SHA-512、またはCRC32の16進値をチェックします。 |
resume file.mdm.json [-c connections] [-H ...] |
一時停止または中断されたダウンロードを、隣にある.mdm.jsonファイルから再開します。 |
video-info URL |
ページに含まれるビデオ(YouTube、Vimeoなど)と、選択できる品質。 |
video-get URL [-f selector] [-o folder] |
ビデオをダウンロードします。-fはvideo-infoから品質のセレクターを取得します(b = 最良の単一ファイル)。 |
install-ytdlp, install-ffmpeg |
ビデオに必要なヘルパー(yt-dlp(署名キーでチェック済み)とffmpeg(Windows用、macOSとLinuxではMDMはシステムのものを利用))をインストールまたは更新します。 |
torrent-info SOURCE |
トレントの名前、ファイル(番号付き)、サイズ。SOURCEはマグネットリンクまたは.torrentファイルです。 |
torrent-get SOURCE [-o folder] [--files 0,2] |
トレント、またはその一部のファイルのみをダウンロードします。 |
torrent-create PATH -o file.torrent |
ファイルまたはフォルダーの.torrentを作成します(ピアはDHTを介してそれを見つけます)。 |
status |
実行中のアプリのダウンロードをJSON形式で、ID付きで表示します(自動化APIがオンになっている必要があります)。 |
pause ID..., start ID... |
実行中のアプリで、実行中のダウンロードを一時停止したり、停止中、キューに入っている、または失敗したダウンロードを開始(再開)したりします。 |
remove ID..., delete ID... |
実行中のアプリのリストからダウンロードを削除します。removeはファイルを保持し、deleteはファイルも削除します。実行中のダウンロードは最初に一時停止されます(pause)。 |
api on, api off |
実行中のアプリの自動化APIをオンまたはオフにします。 |
misterdownloadmanager-cli help <command>すべてのオプションを表示します。コマンドが失敗した場合(アプリが実行されていない、エラーで応答する、ダウンロードが中断する)は、コード1で終了します。例:
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
--json(コマンドの前または後)を使用すると、すべてのコマンドはテキストの代わりにJSONを出力します。スクリプトやAIエージェントが読み取れるように、1行に1つのオブジェクトです。
| コマンド | 出力 |
|---|---|
get, resume |
0.5秒ごとに{"event": "progress", "downloaded", "size", "speed", "connections", "segments"}行、その後{"event": "done", "path", "size", "seconds"}、またはCtrl+Cの後に{"event": "paused", "state"}(stateはresumeが取得するファイルです)。 |
video-get |
{"event": "progress", "downloaded", "size", "speed"}行、その後{"event": "done", "path"}。 |
torrent-get |
{"event": "progress", "phase", "downloaded", "size", "speed", "peers", "peers_seen"}行、その後{"event": "done", "path", "size"}、または--secondsで{"event": "stopped", "downloaded", "seconds"}。 |
video-info |
{"title", "choices": [{"label", "format", "size"}]}。選択肢のformatは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 |
アプリの応答。これはすでにJSONです(下記参照)。 |
サイズはバイト(不明な場合はnull)、速度はバイト/秒です。失敗すると{"error": "…"}を出力し、コード1で終了します。例:
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
他のプログラムは、実行中のアプリが何をダウンロードしているかを問い合わせたり、ダウンロードを一時停止、開始、削除したりできます。APIはデフォルトでオフです。misterdownloadmanager-cli api onでオンにし(api offでオフにします)。
プログラムがMDMと通信する方法
- MDMは実行中に
127.0.0.1のポート(このコンピューターのみ)でリッスンし、そのデータフォルダー内のipc.jsonにポートと秘密トークンを書き込みます。 - Windows:%APPDATA%\misterdownloadmanager\ipc.json- macOS:~/Library/Application Support/misterdownloadmanager/ipc.json- Linux:~/.local/share/misterdownloadmanager/ipc.json- ポータブルコピー: プログラムの隣のdata\ipc.json。
トークンは起動ごとに変更されます。データフォルダーを読み取れるプログラム(あなたのもの)のみが使用できます。 2. そのポートに接続し、JSONの1行を送信します。トークンとコマンドのフィールドです。例:{"token": "<token>", "query": "list"}。 3. MDMは1行で応答します。コマンドの場合はok、質問の場合はJSONオブジェクトです。
理解できること
フィールド(token以外) |
応答 |
|---|---|
{"query": "list"} |
すべてのダウンロードと合計速度:{"downloads": [{"id", "file", "url", "path", "status", "size", "downloaded", "speed", "added", "error"}], "speed": bytes per second}。statusはQueued、Downloading、Stopped、Complete、またはErrorです。sizeは不明な場合はnullです。error(失敗理由)はErrorのダウンロードにのみ存在します。APIがオンの場合のみです。 |
{"action": "pause", "ids": [3, 4]} |
IDでダウンロードを操作します。"pause"、"start"、"remove"(ファイル保持)、または"delete"(ファイルも削除)。{"done": [3], "skipped": [{"id": 4, "why": "not running"}]}と応答します。実行中のダウンロードは、削除または削除される前に一時停止する必要があります。APIがオンの場合のみです。 |
{"api": true} / {"api": false} |
APIをオンまたはオフにします:{"api": true}。 |
{"url": "https://…", "dir": "D:\\Files", "name": "a.zip", "silent": true} |
コマンドラインの/d /p /f /nが行うようにダウンロードを追加します("later": trueは/aです)。ok。APIがオフの場合でも、コマンドラインと同様に機能します。 |
{"start_queue": true} |
メインのダウンロードキューを開始します。ok。 |
不明な質問またはアクションは{"error": "…"}と応答されます。APIがオフの場合の質問も同様です(その場合は"code": "api-off"で、プログラムが確認できるようにします。エラーテキストは変更される可能性があります)。間違ったトークンはdeniedと応答されます。
すべてのリクエストと応答は、フィールドごとにJSONスキーマで記述されています。automation-api.schema.json(https://misterdownloadmanager.com/automation-api.schema.jsonにもあります)。これはアプリが応答するコードから作成されているため、正確な状態が保たれます。プログラムは、送信および読み取りするものをこれに対してチェックしたり、これに基づいて型を生成したりできます。
例
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"])
代わりにダウンロードを追加するには、{"token": "…", "url": "https://example.com/a.zip", "silent": true}を送信してください。
無料、オープンソース、広告なし、試用期間なし。
Mister Download Managerをダウンロード