MDM은 창 없이 다음 세 가지 방법으로 실행할 수 있습니다.
- 앱 자체의 명령줄(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 |
실행 중인 앱을 저장하고 닫습니다 (설치 프로그램이 업그레이드 전에 사용합니다). |
a .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는 완료된 파일을 확인합니다: 16진수 MD5, SHA-1, SHA-256, SHA-512 또는 CRC32, 선택적으로 이름 지정(sha256:…). |
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 |
실행 중인 앱의 다운로드 목록을 ID와 함께 JSON 형식으로 표시합니다 (자동화 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 에이전트가 읽을 수 있도록 한 줄에 하나의 객체를 출력합니다.
| 명령 | 출력 |
|---|---|
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을 보냅니다. 토큰과 명령 필드(예: {"token": "<token>", "query": "list"}). 3. MDM은 한 줄로 응답합니다. 명령의 경우 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 다운로드