Mister Download Manager
  1. Ana Sayfa
  2. Yardım
  3. Komut satırı ve otomasyon

Komut satırı ve otomasyon

MDM, penceresi olmadan üç şekilde çalıştırılabilir:

  • Uygulamanın kendi komut satırı, IDM'ninkiyle aynı anahtarlar: çalışan uygulamaya bir betikten, toplu iş dosyasından veya başka bir programdan bir indirme görevi verin.
  • misterdownloadmanager-cli, ayrı bir komut satırı aracı: uygulamayı kullanmadan, ilerlemeyi göstererek terminalde dosyaları, videoları ve torrentleri indirin.
  • Otomasyon API'si: diğer programlar, çalışan uygulamanın indirmelerini (JSON olarak) listeler ve yerel, belirteç korumalı bir kanal üzerinden duraklatır, başlatır, kaldırır veya siler. Yapay zeka asistanları bunu MDM'nin MCP sunucusu aracılığıyla kullanır: Yapay zeka asistanları bölümüne bakın.

Örneklerde Windows yolları kullanılmıştır; macOS ve Linux'ta programlar .exe olmadan aynı adlara sahiptir.

Uygulamanın komut satırı

misterdownloadmanager.exe /d URL [/p folder] [/f name] [/a] [/n] [/s]
Anahtar Ne yapar
/d URL İndirilecek adres.
/p folder Bu klasöre kaydedin (aksi takdirde Seçenekler → Kaydedileceği yer bölümündeki kategorinin klasörüne).
/f name Bu adla kaydedin.
/a Başlatmadan ana indirme kuyruğuna ekleyin.
/n Sessiz: Dosya Bilgilerini İndir penceresi yok, indirme hemen başlar (veya /a ile kuyruğa alınır).
/s Ana indirme kuyruğunu başlatın.
/exit Çalışan uygulamayı kaydedin ve kapatın (yükleyici bir yükseltmeden önce bunu kullanır).
bir .torrent dosyası veya magnet: bağlantısı Torrent ekle bölümünde açın (MDM torrentleri açtığında Windows'un geçirdiği şey).

Anahtarlar her durumda / veya - ile başlayabilir. MDM çalışıyorsa, komut ona gider; değilse, MDM başlar ve onu yürütür. Örneğin:

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'nin her indirmesiyle birlikte, uygulamanın yanında gelir (yükleyici onu MDM'nin klasörüne koyar). Kendi başına çalışır: status ve api dışında uygulamanın çalışmasına gerek yoktur.

Komut Ne yapar
get URL [-o folder\|file] [-c connections] [-H "Header: value"]... [--checksum hash] İlerleme göstererek bir dosyayı en fazla 8 bağlantıyla (-c, 1 ila 128) indirin. Ctrl+C duraklatır; resume devam ettirir. --checksum bitmiş dosyayı kontrol eder: onaltılık MD5, SHA-1, SHA-256, SHA-512 veya CRC32, isteğe bağlı olarak adlandırılmış (sha256:…).
resume file.mdm.json [-c connections] [-H ...] Duraklatılmış veya bozuk bir indirmeyi yanındaki .mdm.json dosyasından devam ettirin.
video-info URL Bir sayfanın hangi videoyu içerdiği (YouTube, Vimeo, ...), ve seçilebilecek kaliteler.
video-get URL [-f selector] [-o folder] Bir video indirin; -f, video-info'den bir kalitenin seçicisini alır (b = en iyi tek dosya).
install-ytdlp, install-ffmpeg Videoların ihtiyaç duyduğu yardımcıları yükleyin veya güncelleyin: yt-dlp (imzalama anahtarına göre kontrol edilir) ve ffmpeg (Windows; macOS ve Linux'ta MDM sisteminkini kullanır).
torrent-info SOURCE Bir torrentin adı, dosyaları (numaralı) ve boyutu; SOURCE bir magnet bağlantısı veya bir .torrent dosyasıdır.
torrent-get SOURCE [-o folder] [--files 0,2] Bir torrenti veya sadece bazı dosyalarını indirin.
torrent-create PATH -o file.torrent Bir dosya veya klasörün .torrent'ini yapın (eşler onu DHT aracılığıyla bulur).
status Çalışan uygulamanın indirmeleri, kimlikleriyle birlikte JSON olarak (otomasyon API'si açık olmalıdır).
pause ID..., start ID... Çalışan uygulamadaki devam eden indirmeleri duraklatır veya durdurulmuş, sıraya alınmış veya başarısız olanları başlatır (devam ettirir).
remove ID..., delete ID... Çalışan uygulamanın listesinden indirmeleri kaldırır: remove dosyalarını tutar, delete ise onları da siler. Çalışan bir indirme önce duraklatılır (pause).
api on, api off Çalışan uygulamanın otomasyon API'sini açar veya kapatır.

misterdownloadmanager-cli help <command>tüm seçenekleri gösterir. Başarısız olan bir komut (uygulama çalışmıyor, hata ile yanıt veriyor, bir indirme bozuluyor) 1 koduyla çıkar. Örneğin:

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

Betikler ve programlar için JSON

--json ile (komuttan önce veya sonra), her komut metin yerine JSON çıktısı verir, her satırda bir nesne olacak şekilde, betiklerin ve yapay zeka ajanlarının okuması için:

Komut Çıktı
get, resume Her yarım saniyede bir {"event": "progress", "downloaded", "size", "speed", "connections", "segments"} satırı, sonra {"event": "done", "path", "size", "seconds"} veya {"event": "paused", "state"} sonra Ctrl+C (state, resume'nın aldığı dosyadır).
video-get {"event": "progress", "downloaded", "size", "speed"}satır, sonra {"event": "done", "path"}.
torrent-get {"event": "progress", "phase", "downloaded", "size", "speed", "peers", "peers_seen"}satır, sonra {"event": "done", "path", "size"} veya {"event": "stopped", "downloaded", "seconds"} ile --seconds.
video-info {"title", "choices": [{"label", "format", "size"}]}; bir seçimin format'i, video-get -f'nin aldığıdır.
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 Uygulamanın yanıtı, zaten JSON olan (aşağıya bakın).

Boyutlar bayt cinsindendir (null bilinmiyorken), hızlar saniyedeki bayt cinsindendir. Bir hata {"error": "…"} çıktısı verir ve 1 koduyla çıkar. Örneğin:

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}

Otomasyon API'si

Diğer programlar, çalışan uygulamaya ne indirdiğini sorabilir ve indirmeleri duraklatabilir, başlatabilir, kaldırabilir veya silebilir. API varsayılan olarak kapalıdır; misterdownloadmanager-cli api on ile açın (ve api off ile kapatın).

Bir program MDM ile nasıl konuşur

  1. Çalışırken, MDM 127.0.0.1'in bir portunu dinler (yalnızca bu bilgisayar) ve portu ile gizli bir jetonu veri klasörüne ipc.json yazar: - Windows: %APPDATA%\misterdownloadmanager\ipc.json - macOS: ~/Library/Application Support/misterdownloadmanager/ipc.json - Linux: ~/.local/share/misterdownloadmanager/ipc.json - Taşınabilir bir kopya: programın yanında data\ipc.json.

Jeton her başlangıçta değişir; yalnızca veri klasörünüzü okuyabilen programlar (sizinkiler) kullanabilir. 2. O porta bağlanın ve bir satır JSON gönderin: jeton ve komutun alanları, örn. {"token": "<token>", "query": "list"}. 3. MDM bir satırla yanıt verir: bir komut için ok veya bir soru için bir JSON nesnesi.

Ne anlar

Alanlar (token hariç) Yanıt
{"query": "list"} Her indirme ve toplam hız: {"downloads": [{"id", "file", "url", "path", "status", "size", "downloaded", "speed", "added", "error"}], "speed": bytes per second}. status şunlardan biridir: Queued, Downloading, Stopped, Complete veya Error; size bilinmiyorken null'dur; error (neden başarısız olduğu) yalnızca Error durumundaki bir indirme için mevcuttur. Yalnızca API açıkken.
{"action": "pause", "ids": [3, 4]} İndirmeler üzerinde kimliğe göre işlem yapar: "pause", "start", "remove" (dosya tutuldu) veya "delete" (dosya da silindi). {"done": [3], "skipped": [{"id": 4, "why": "not running"}]} yanıtı verir; çalışan bir indirme, kaldırılmadan veya silinmeden önce duraklatılmalıdır. Yalnızca API açıkken.
{"api": true} / {"api": false} API'yi açar veya kapatır: {"api": true}.
{"url": "https://…", "dir": "D:\\Files", "name": "a.zip", "silent": true} Komut satırının /d /p /f /n yaptığı gibi bir indirme ekler ("later": true, /a'tür); ok. API kapalıyken de, komut satırı gibi.
{"start_queue": true} Ana indirme kuyruğunu başlatır; ok.

Bilinmeyen bir soru veya eylem {"error": "…"} ile yanıtlanır, API kapalıyken bir soru da öyle (o zaman programların kontrol etmesi için "code": "api-off" ile: hata metni değişebilir). Yanlış bir jeton denied ile yanıtlanır.

Her istek ve yanıt, alan alan, bir JSON Şeması'nda açıklanmıştır: automation-api.schema.json (ayrıca https://misterdownloadmanager.com/automation-api.schema.json adresinde). Uygulamanın yanıt verdiği koddan yapılmıştır, bu yüzden doğru kalır; programlar gönderdiklerini ve okuduklarını buna göre kontrol edebilir veya türlerini bundan oluşturabilir.

Örnekler

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"])

Bunun yerine bir indirme eklemek için {"token": "…", "url": "https://example.com/a.zip", "silent": true} gönderin.

Ücretsiz, açık kaynak, reklamsız, deneme sürümü yok.

Mister Download Manager İndir