Repository navigation
Releases: maniebra/muxget
Releases · maniebra/muxget
Release list
v1.4.0
- f7cbe94 add channelsync: a
channelsconfig file (url + last-sync date), a settings tab to edit it,s/Sto 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 whyAlt-Backspacedid nothing) and a caret position per panel so arrows, Home/End and the word-wise deletes all work.
v1.3.0
- 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
- 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
- 1e6403d add youtube video quality control for yt-dlp backend: new
Kind::Choiceoption 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=valuethat yt-dlp silently ignored. - f183d14 add warning dialog for missing backends:
utils::on_path/missing_backendswalk 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
- 0ee0936 fix path never persisting:
Download.pathnow 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-parentthat 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
- 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
- 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
- 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
- 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.