Skip to content

Releases: maniebra/muxget

v1.4.0

Choose a tag to compare

@maniebra maniebra released this 04 Aug 15:18
  • f7cbe94 add channelsync: a channels config file (url + last-sync date), a settings tab to edit it, s/S to sync one or all. Syncing lists everything a channel uploaded since its last sync, routes it through the normal rules, and stamps the date to today. Listing got a two-pass strategy so "since" stays exact without opening every video: the free flat listing decides most entries, only the few near the cutoff cost a request.
  • 5f16f1c fix cursor movement: one shared readline-style line editor behind every text field, with the key modifiers plumbed through on_key_event (they were being dropped, which is why Alt-Backspace did nothing) and a caret position per panel so arrows, Home/End and the word-wise deletes all work.

v1.3.0

Choose a tag to compare

@maniebra maniebra released this 01 Aug 22:33
  • 62295ab vim motions, b19733f in-app manual: counts (5j, 12G), gg/G, Ctrl-d/u/f/b paging measured against the real list height; then ? opened a tabbed manual (eight pages) so the footer could drop to six keys.
  • b2191b3 rule captures: a pattern field whose *s fill $1, $2 in the queue and directory, so one rule gives every YouTube channel its own folder; channels are routed before they expand so the videos inherit it.
  • a0d4da5 — bigger than its title: the log tab (with backend stderr, which was being discarded), prepare_dir turning permission failures into readable messages before a backend runs, $1 refusing to become a literal directory, split from/to date fields, and the actual headline — youtubetab:approximate_date taking playlist date listing from ~96 s to 2.7 s, with the exact path kept as an automatic fallback.

v1.2.0

Choose a tag to compare

@maniebra maniebra released this 01 Aug 18:59
  • Crawler configurability (2987ccd, 6360011): a no-robots word that drops wget's robots.txt/nofollow handling for a crawl, then a whole crawler settings tab backed by crawl.args, holding the defaults the crawl form opens with; every switch gained an opposite word so one crawl can override a saved default either way.
  • Sizes (342c162): a total-size column in the list, plus the parser fix that made it work for yt-dlp at all (parse::ytdlp never filled total), which also unblocked min_size routing rules on video downloads.
  • Routing rules became editable (401deeb): the categories tab went from read-only to a full editor: n new rule, Enter edit a field, x clear or delete; written back in the same TOML subset and applied without a restart.
  • Two new ways to act on many rows (81514a3, ec3e883): clipboard paste (v) with a confirm-before-queue preview over multi-line text, and selection with Space/M/A that p, x, d, it and iR all act on; marks are download ids so they survive reordering and multi-row deletes.
  • Queue clearing (00f79cd): gc drops the finished rows, C drops all of them and stops what's running; both ask first, both leave files on disk.

v1.1.1

Choose a tag to compare

@maniebra maniebra released this 01 Aug 11:43
  • 1e6403d add youtube video quality control for yt-dlp backend: new Kind::Choice option type; the yt-dlp form opens with a video quality row you cycle with space (best → 1080p → … → audio only), each writing a height-capped --format selector. Also fixed the old -f/-o rows, which emitted -f=value that yt-dlp silently ignored.
  • f183d14 add warning dialog for missing backends: utils::on_path / missing_backends walk PATH (no process spawns) at startup, and App::new leaves not installed: … install to download in the status line, driven off the backend registry so it covers aria2c, yt-dlp and wget.

v1.1.0

Choose a tag to compare

@maniebra maniebra released this 01 Aug 10:56
  • 0ee0936 fix path never persisting: Download.path now round-trips through the state file as a path = line, so restored rows keep their real filename instead of falling back to the url tail (watch?v=…).
  • fcb3f89 add youtube playlist optional confirmation dialog: new confirm before dl playlist setting; when on, a playlist lists into a picker (space/a/d directory/Enter) showing yt-dlp titles instead of queueing every entry blind.
  • cb25d7d fix any domain origin issues in crawler: dropped the forced --no-parent that made the crawler fetch exactly one page on sites whose files live in sibling directories; it's now opt-in as under-path.

v1.0.3

Choose a tag to compare

@maniebra maniebra released this 31 Jul 13:04
  • 8370e10 IDM-style scheduler: queue schedules grew from a bare 22:00-06:00 window into a one-line spec: weekday/date limits, once, sync=, retry=, quota=150MB/4h, after=<cmd>, shutdown. Plus pause/retry state now surviving restarts, which fixed a latent bug where resuming a restored row would SIGCONT a dead process.
  • c49b256 website crawler: c crawls a page, filters what it finds (extension, size, glob/substring patterns, domain), shows the links before downloading, and maps urls onto local directories; offline mirrors a whole site via a new wget backend, with timestamp-based re-sync. Verified end to end against a live local server.
  • 73bab81 user manual: docs/manual.md, plus README screenshot and filled-in docs.

v1.0.2

Choose a tag to compare

@maniebra maniebra released this 31 Jul 10:52
  • Settings panel (24eb5fe) — s opens one tabbed panel (general / backends / categories) and the old s… menu with its seven sequences is gone; also fixed option flags that carry a value (--seed-time=0) reading back as unticked because the args file stores them split.
  • Routing rules (1030625) — ~/.config/muxget/rules matches on extension, domain or size and picks the queue (created on demand), directory or backend; min_size rules apply once the backend reports a total, since size isn't knowable up front.
  • Torrent correctness (ab49f6a) — progress no longer stuck at 0% (aria2 omits (12%) for torrents, so percent falls back to done/total), backend processes no longer orphaned on quit (pid instead of a locked Child, plus reaping leftovers at startup), and exit 13 now reads "the file already exists".

v1.0.1

Choose a tag to compare

@maniebra maniebra released this 31 Jul 09:52
  • Reordering (7e9409c) — J/K move a download within its queue (order is start priority), g>/g< move queue tabs; queue ids are now persisted explicitly so reordering tabs can't reassign downloads on the next launch.
  • Torrents (99f20e6) — fixed progress sitting at 0% (aria2 prints no (12%) for torrents, so percent falls back to done/total), plus size/upload/peers/seeders/leechers in the details panel, magnet dn= names, seeding state, and iF force restart that ignores queue limits.
  • Windows/Linux packaging (85d3a9e, 6641709) — MSI installer via a committed wix/main.wxs with a stable UpgradeCode, bare .exe instead of a zip, Apple x86 dropped, and the RPM metadata fixed to the table form generate-rpm expects.

v1.0.0

Choose a tag to compare

@maniebra maniebra released this 31 Jul 09:04
  • Downloads survive a restart — progress, per-item settings and queue layout are all restored from disk instead of coming back at 0%.
  • Queues gain daily schedules (gt, e.g. 22:00-06:00, wraps past midnight): outside the window a queue pauses itself, inside it resumes.
  • The add dialog is now a form: per-item directory, file name, rate limit and login, plus C-style url patterns over a range (f%03d.iso + 1-3) with a live preview of exactly what will be queued.
  • Per-item actions under i: remove, remove with its file, open, open containing folder — muxget now tracks where each download actually landed.
  • Credentials never hit the command line or the state file: they go to the backend through a 0600 file that is deleted when the transfer ends. Optional nerd font icons via sn.