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

Komut satırı ve otomasyon

GDM can be driven without its window in three ways:

  • 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.
  • The automation API: other programs list the running app's downloads (as JSON) and pause, start, remove or delete them, over a local, token-protected channel. AI assistants use it through GDM's MCP server: see AI assistants.

To run the whole app without a window, on a home server or a NAS, see Run GDM on a server (misterdownloadmanager --headless); to control it from a phone, Control GDM from your phone.

Ö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).
/startup Start in the notification area, the window hidden: what Launch GolinksPRO Download Manager on startup starts GDM with when you sign in. Where no notification area shows GDM's icon (some Linux desktops), GDM starts minimized. A running GDM stays as it is.
bir .torrent dosyası veya magnet: bağlantısı Open it in Add torrent (what Windows passes when GDM opens torrents).

Switches can start with / or -, in any case. If GDM is running, the command goes to it; if not, GDM starts and carries it out. For example:

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

It comes with every download of GDM, next to the app (the installer puts it in GDM's folder). It works on its own: the app needn't run, except for status and api.

Komut Ne yapar
get URL [-o folder\|file] [-c connections] [-H "Header: value"]... [--checksum hash] [--dns choice] [--adapter name] İlerlemeyi göstererek 8 bağlantıya kadar (-c, 1 ila 128) bir dosya 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:…). --dns DNS'i seçer: system (varsayılan); bir hizmet ve ona nasıl sorulacağı, cloudflare-https, quad9-tls, google-plain, adguard-https, nextdns-tls; DNS sunucularının adresleri, 9.9.9.9,149.112.112.112; veya bir DNS-over-HTTPS adresi. Asla sistemin DNS'ine geri dönmez. --adapter her bağlantıyı adıyla (Ethernet, wg0) veya adreslerinden biriyle tek bir ağ bağdaştırıcısı üzerinden gönderir; bağlı değilse hiçbir şey gönderilmez ve indirme başarısız olur. Debrid hesaplarınızdan birinin (Seçenekler → Hesaplar) desteklediği bir dosya barındırıcısından gelen bir bağlantı, uygulamadaki gibi o hesap üzerinden gider ve get through Real-Debrid der; --direct adresin kendisini indirir (Debrid hizmeti hesapları).
resume file.mdm.json [-c connections] [-H ...] [--direct] Duraklatılmış veya bozuk bir indirmeyi yanındaki .mdm.json dosyasından devam ettirin. Bir debrid hesabı aracılığıyla, get gibi: hizmet, eski bağlantının süresi dolduğunda yeni bir bağlantı verir; --direct adresin kendisinden devam eder.
install-gallery-dl Resim galerileri için gallery-dl'yi kurun veya güncelleyin: sağlama toplamı listesi yazarının imzalama anahtarıyla, program da o listeyle kontrol edilir (Windows ve Linux x86-64; diğer yerlerde kendiniz kurun).
gallery-get URL [-o folder] [--limit N] [--adapter name] Bir galerinin resimlerini (bir Wikimedia Commons kategorisi, bir Flickr albümü, ...) -o içine, kendi adıyla bir klasöre indirir; --limit en fazla o kadarını alır, sitenin listelediği ilkleri. Tekrar başlatıldığında, sadece yenilerini indirir. --adapter, gallery-dl'nin bağlantılarını get için olduğu gibi tek bir ağ bağdaştırıcısı üzerinden gönderir.
video-info URL Bir sayfada hangi videonun bulunduğunu (YouTube, Vimeo vb.) ve seçilebilecek görüntü kalitelerini gösterir.
playlist-info URL [--from N] [--count N] Oynatma listesindeki veya kanaldaki videoları listelendikleri sırayla, her satırda bir video olacak şekilde gösterir: listedeki yeri, süresi, başlığı ve adresi.
playlist-get URL [-f selector] [-o folder] [--from N] [--count N] Bir oynatma listesindeki veya kanaldaki videoları, -o içindeki liste adıyla oluşturulan bir klasöre sırayla indirin. -f, video-get için olduğu gibi hepsi için tek bir kalitedir (varsayılan olarak her videonun en iyisi; bv*[height<=720]+ba/b[height<=720] = 720p'ye kadar; ba = orijinal ses; mp3:320, opus:, flac:, video-get için olduğu gibi).
video-get URL [-f selector] [-o folder] [--subs langs] [--auto-subs] [--embed-subs] [--adapter name] Bir video indirir; -f, video-info'den bir kalite seçici alır (b = en iyi tek dosya; ba = sitenin sahip olduğu gibi sadece ses, dönüştürülmemiş; mp3:320, mp3:256, mp3:192 veya mp3:128 = o bit hızında MP3 olarak ses, mp3:0 en iyi değişken bit hızında; opus: = Opus olarak; flac: = FLAC olarak, kayıpsız ancak sitenin sesinden daha iyi değil; dönüştürmeler için ffmpeg gerekir). --subs altyazıları yanına kaydeder: video-info'ten dil kodları (en,fr) veya yükleyicinin verdiği her biri için all; --auto-subs bunun yerine sitenin otomatik altyazılarını alır; --embed-subs bunları videoya yerleştirir (ffmpeg, MP4 veya MKV gerekir). --adapter, yt-dlp'nin bağlantılarını (ve ffmpeg'inkileri) get için olduğu gibi tek bir ağ bağdaştırıcısı üzerinden gönderir; bağlı değilse hiçbir şey başlamaz.
install-ytdlp, install-ffmpeg Install or update the helpers videos need: yt-dlp (checked against its signing key) and ffmpeg (Windows; on macOS and Linux GDM uses the system's).
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] [--use-existing] Bir torrenti veya sadece bazı dosyalarını indirin. Dosyalarından bazıları zaten klasördeyse, durur ve adlarını belirtir; --use-existing bunun yerine onları kullanır (eşleşenler tutulur, geri kalanı indirilir).
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 {"event": "through", "service"}indirme bir debrid hesabı üzerinden gittiğinde önce, sonra 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", "subtitles", "subtitle_problems"}: yanına kaydedilen altyazı dosyaları ve sitenin reddettiği diller ({"code", "name", "reason", "beside"}; beside: ikinci denemede, videonun içinde değil, yanında geldiler).
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"}], "subtitles": [{"code", "name", "automatic"}]}; bir seçimin format değeri video-get -f tarafından alınır, bir altyazının code değeri --subs tarafından alını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).

How a program talks to GDM

  1. While it runs, GDM listens on a port of 127.0.0.1 (this computer only) and writes the port and a secret token to ipc.json in its data folder: - Windows: %APPDATA%\misterdownloadmanager\ipc.json - macOS: ~/Library/Application Support/misterdownloadmanager/ipc.json - Linux: ~/.local/share/misterdownloadmanager/ipc.json - A portable copy: data\ipc.json next to the program.

The token changes at every start; only programs that can read your data folder (yours) can use it. 2. Connect to that port and send one line of JSON: the token and the command's fields, e.g. {"token": "<token>", "query": "list"}. 3. GDM answers with one line: ok for a command, or a JSON object for a question.

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", "category", "error"}], "speed": bytes per second, "queues": [{"name", "running", "ids"}], "categories": [{"key", "name"}], "free": bytes}. 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 vardır; category bir kategorinin key'sidir; free indirmelerin gittiği boş alandır (bilinmiyorsa null). 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.
{"action": "start_queue", "queue": "Main download queue"} O isimdeki kuyruğu başlatır (veya "stop_queue" ile durdurur) (listeden bir isim queues). {"done": [], "skipped": []} veya {"error": …, "code": "unknown-queue"} yanıtını verir. 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} Bir indirme ekler, komut satırının /d /p /f /n yaptığı gibi ("later": true şudur: /a); ok. "category" (listenin categories'sinden bir anahtar) onu türünün seçtiği klasör yerine o kategorinin klasörüne koyar; "queue" (bir kuyruğun adı) "later" ile beklediği kuyruktur. API kapalıyken de, komut satırı gibi çalışır.
{"start_queue": true} Ana indirme kuyruğunu başlatır; ok.

Bilinmeyen bir soru veya eyleme {"error": "…"} ile yanıt verilir. API kapalıyken gelen bir soruya da "code": "api-off" ile yanıt verilir; programlar bunu denetleyebilir, ancak hata metni değişebilir. Hatalı bir belirtece denied ile yanıt verilir.

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.

Download GolinksPRO Download Manager