What changed
Draft — this page makes public claims about what the software does, so have a lawyer read it before launch.
A version number here is three numbers. The middle one moves when there is something new to use, the last one when something is only fixed. The application compares them to decide whether the build on the server is newer than the one you are running, and that is the only job they do.
Weir does not read this page. The update it offers you comes from a feed built alongside each release, and this is the same story written for people rather than for a program.
A release is written down here when its build goes on the download page, and gets its date that day. Anything marked unreleased is not out yet.
0.2.0 unreleased
The name changed
- Downloads is now Weir. Same program, same window, same list — a new name, and an icon drawn to go with it.
- If you record the screen, you have to allow it again. macOS ties that permission to an application's identifier, and renaming changed ours, so macOS treats this as a program it has never met. Turn Weir on under System Settings › Privacy & Security › Screen Recording. It is the only permission Weir asks for.
- Your downloads, history and settings are untouched. They are kept by the part of Weir that does the downloading, in ~/Library/Application Support/dl, and that did not move.
Free, and paid
- Weir now has a licence. Free is three downloads a day, one at a time, at a limited speed, with no account and nothing expiring. A licence lifts all three limits and adds the browser, recording, the watchlist and queueing a whole page at once. The split is on the pricing page.
- If you have been running an earlier build, it had no licence in it at all and did everything. This one does not.
- Resuming through a crash, a flat battery or a force quit is not gated and never will be.
- Asking for more than the free tier allows is refused out loud, with the reason. A control that quietly declines to move reads as a broken control.
- A licence that lapses drops to the free tier and no further, and it never stops a transfer already running.
- Your key is checked on your own Mac, offline. Counting how many Macs it is on is the one thing that cannot be, and that check sends the licence id and a one-way hash of a machine identifier — never the identifier itself, and nothing about what you have downloaded.
It updates itself
- Weir looks for a newer build in the background and puts a small mark in the title bar when there is one. Nothing installs without being asked.
- For that to work it has to live in Applications. macOS runs an application opened from a disk image or from your Downloads folder at a randomised path, and an application at a randomised path cannot replace itself. Drag it across once and that is dealt with for good.
Video from web pages
- Video from X arrives with its sound. It was fetching the picture track on its own and nothing said so: the file played, it was the right length, and there was no audio in it at all.
- Weir now asks yt-dlp which version it would fetch rather than choosing for it. That changes the default everywhere, not only on X — YouTube used to come down as 360p and now comes down as what yt-dlp would pick, which is bigger and needs ffmpeg to join the picture and the sound.
- The menu of what is playing on a page lists things that play. Poster images and avatars are out of it — on some sites that was thirty pictures of a kilobyte and a half, sitting above the video you opened the menu for. Right-clicking a picture still offers to save it.
- With that clutter gone the menu holds far more, and scrolls on its own if it is taller than the screen.
Recording
- Recording works out where the video is by itself, even when the player is several frames deep inside somebody else's page. On exactly those pages it used to suggest nothing and the rectangle had to be dragged by hand.
- Recording a window on one screen while the menu bar is on another no longer comes out padded with black.
- A window resized part way through a recording no longer leaves the recording pointed at where the video used to be. The window is held at its size until it finishes.
- Content macOS protects still records as a black rectangle. That is the operating system enforcing it, and Weir does not try to get around that.
The browser
- Pop-up windows nobody asked for are refused, and the one you did ask for — signing in — still opens. A refusal says so, with an offer to allow that site, because a window wrongly refused is a sign-in button that silently does nothing.
- Files a site's own scripts authorise with a header now download. Plenty of sites hand out media that way, and the same request without the header comes back refused however good the cookies are.
- Those headers go back only to the origin that issued them. Another host of the same site gets everything except the credentials, and anywhere else gets none of it.
- A download that starts at a site and is redirected to a CDN no longer carries the site's credentials to the CDN.
Torrents
- Looking inside a magnet that is already downloading no longer kills it. Both views were one torrent underneath, so closing either stopped it: the download went on saying "discovering", found no peers, and held a slot until Weir was restarted.
- A swarm that never answers now gives up with something to read, instead of holding a slot for as long as the program runs.
- Pausing a torrent pauses it. It used to carry on downloading, and after one pause and resume it could not be removed at all.
- An interrupted torrent carries on from where it stopped rather than starting again from zero. Opening this version once tidies up what the old behaviour left on disk.
- Torrents pull from many more peers by default — 150 rather than 60, along with the two limits underneath that were quietly holding it to the old number. Measured on a well-seeded torrent over a VPN: 12.8 MB/s at 60 peers, about 21 at 200.
The list, and where files go
- Tick several downloads and remove them together, with one question rather than one per row.
- That question says what will happen to the files instead of guessing from whether the download had finished. An unfinished download's partial file goes with it; a finished file is only deleted if you say so.
- A .torrent file you download is queued as the torrent it describes, rather than leaving you holding thirty kilobytes of metadata and the thing you wanted still on the other side of it. There is a setting, and turning it off takes effect on the next download rather than the next launch.
- Make a new folder while choosing where to save, without leaving Weir.
- A magnet on the clipboard is offered, not taken. Copying one to send to somebody no longer starts a download because Weir happened to be open.
Resuming, and other things that were wrong
- A download resumed after a crash could come back with a gap in the middle of the file, exactly the size of the part that had been discarded. Both paths that could do it are fixed.
- A download that failed left its name reserved with nothing able to find it again, so the next attempt saved as "movie (1).mp4".
- A transfer restarted after certain errors could write the wrong bytes — a middle chunk, or the server's error page — at the very beginning of the file.
- A server that accepts a connection and drops it is given up on. It used to be retried for ever, at a fixed interval, because a failure that made no progress reset the budget.
- The command line and the window agree about how long to wait. The same request could work in the window and time out in the terminal.
- The guard against absurdly large images could be walked past when preview fell back to ffmpeg. It cannot now.
Underneath
- The largest files are split up by subject. Nine faults turned up while reading them — most of the ones listed above — and each was reproduced before it was fixed.
- There is now a test that builds Weir, runs the real thing, drives every journey through it, kills it in the middle of a transfer and checks what is on the disk afterwards. Resuming is the promise this program makes, so it is the part tested hardest.