Skip to content

Changelog

What changed in each version of MagnetPlayer.

0.5.0 — 2026-10-18

New

  • Devices on your network. MagnetPlayer finds the other devices running it on the same home network. "Allow control from other devices" sits at the top of the start page and in Settings: on by default on TVs and computers without a battery, off on laptops, phones and watches.
  • Pairing. One device asks to control another; that one shows "… wants to control this device" with Allow, Deny and Block. Allowed devices are remembered and can be removed in Settings at any time.
  • Send to a device. From the video player, an album, the mini player or a torrent's ⋮ menu in the list: the other device opens the same file and continues from the same second, and the sending device pauses.
  • A remote. A paired device has its own page: play and pause, seek, next and previous, stop and volume.
  • Straight from your device. When the film or album is saved on the device you send from, the other device takes it straight from there over the local network — fast, and even when nobody seeds it any more. Only that device gets it: nothing goes to the swarm unless "Share while watching" is on. Settings → "Share with my devices" turns this off.

Fixes

  • Private torrents keep to their own tracker: no public trackers are added to them, and with several trackers the first one is used, in order.
  • Notifications on phones go away on their own instead of covering the player controls.

Version codes 50002 and 50001.

0.4.1 — 2026-10-17

New

  • HTTPS trackers on Android. Torrents and magnet links with https:// trackers now find peers through them on phones and TVs too, as on the desktop; this is what private trackers use. Certificates are checked by Android itself, including certificates you installed on the device.

Version codes 40012 and 40011.

0.4.0 — 2026-10-17

New

  • A limit on the space used while watching. Settings → Playback → "Space for playback" caps the temporary space a torrent may take while it plays. Parts already watched and far behind are dropped and downloaded again if you seek back to them. Automatic: a quarter of the free space on a computer (1–8 GB), a tenth on Android (512 MB–2 GB); Unlimited and a fixed size are there too. The change applies at once.
  • The seek bar shows what is on the device. Parts that are neither on disk nor buffered are drawn faint, so you see what a seek would download again. The player statistics show the space in use and the limit.

Version codes 40002 and 40001.

0.3.1 — 2026-10-17

  • The first release that 0.3.0 installs receive through the app's own updater: nothing else changes.

Version codes 30012 and 30011.

0.3.0 — 2026-10-16

New

  • Updates from magnet-player.com. The app asks the site for a newer version 5 s after start, then once a day, or from "Check for Updates" in the menu; a switch in Settings turns it off. It sends only its platform, architecture and version. A newer package is downloaded with a progress bar, checked by size and SHA-256, and installed: with pkexec and apt-get, dnf or pacman on Linux, by its installer on Windows, by opening the disk image on macOS, and through the system package installer on Android (it asks once for permission to install apps).
  • Packages for every platform. MagnetPlayer now comes as a Windows installer, Debian/Ubuntu, Fedora and Arch Linux packages and two Android APKs (64- and 32-bit ARM), all downloadable from magnet-player.com; a macOS disk image follows.

Version codes 30002 and 30001.

0.2.2 — 2026-10-16

New

  • Android 9. Both APKs now need Android 9 (API 28; was 10): Fire OS 7 TVs and Android 9 TV boxes. The GTK stack, its Java glue and libmpv are built for API 28 (bin/api28, patches in patches/) with run-time fallbacks; Android 10 and newer take the same code paths as before. On Android 9 the app's own Java uses the two-argument startForeground, restores fullscreen in a re-created window from onActivityStarted (there is no onActivityPostCreated) and keeps the display cutout's insets without WindowInsets.Builder.
  • Saving on Android 9. There is no MediaStore RELATIVE_PATH or IS_PENDING before Android 10, so a save writes <name>.part files under Movies, Music or Download by path, as on the desktop, renames them when done and has MediaScanner take them in. The first save asks for the storage permission (WRITE_EXTERNAL_STORAGE, declared for Android 9 only). Saved files play offline and Delete Files removes them by path. Placement is the same as on Android 11+.

Version codes 20022 and 20021.

0.2.1 — 2026-10-16

Fixes for two of 0.2.0's known issues.

Fixed

  • Opening a magnet link no longer takes about 70 s when the first UDP tracker request is lost: a lost request is sent again after 10 s, then after 20, 40 s and so on up to 10 minutes; trackers that answer are not held up. No tracker is asked more often than every 10 s, whatever interval it asks for. librqbit's tracker client is built from vendor/ with this fix (patch 0004).
  • The "Fetching torrent info" page no longer takes GPU memory while it is shown (up to 1.3 GB in 30 s on a Pixel 9 Pro XL, with much of a CPU core): the spinner is drawn with shapes GTK can cache instead of new ones every frame. The buffering and track-loading spinners use it too.

0.2.0 — 2026-10-16

Everything since 0.1.0. Plans: ROADMAP.md.

New

  • Save to a folder. A film, a series' episodes or an album can be saved while it plays; what playback already downloaded is reused. Desktop: .part files in Videos, Music or Downloads, or a folder of your choice. Android: Movies, Music or Download, with a progress notification; a torrent with covers, .cue or subtitles goes whole to Download/<name>/.
  • Downloads page. Pause, resume, retry and cancel; more files of a torrent join its running save; − forgets an entry, the trash button deletes its files (system Trash on the desktop, MediaStore on Android).
  • Offline playback of saved files. A saved torrent opened again reads its copies from disk, each piece checked against the torrent once, and goes to the network only for what no copy has.
  • armeabi-v7a. A 32-bit APK next to the 64-bit one. Version codes are the version × 10 plus 2 (arm64-v8a) or 1 (armeabi-v7a): 20002 and 20001. Getting there took GTK patch 0012 (on 32-bit ARM no stylesheet applied: white text, no backgrounds) and 32-bit fixes in our code (reads of files over 4 GiB no longer spin, a crafted MKV cannot overflow lengths).
  • Android 10 and 11. Both APKs now need Android 10 (was 12). The GTK stack, its Java glue and libmpv are built for API 29 with run-time fallbacks; Android 12 and newer take the same code paths as before. Release APKs are checked against their minimum Android before they are copied to bin/.
  • patches/: the GTK stack and libmpv patches behind these builds, with the commands that rebuild them.

Fixed

  • A deadlock in librqbit 9.0.1 when a save changed a live torrent's file selection froze the UI; librqbit is built from vendor/ with the upstream fix.
  • Windows: opening a .torrent uses the system file dialog; GTK's crashed.

Known issues

  • Opening a magnet link can take about 70 s when the first UDP tracker request is lost: librqbit waits 10 s for the answer, then 60 s before it tries again. In our LAN tests this hit every run of the API 29 builds on a Xiaomi 12 (and both builds on a Pixel 9 Pro XL). Fix planned for 0.2.1.
  • On the Pixel 9 Pro XL the "Fetching torrent info" page takes GPU memory while it is shown (up to 1.3 GB in 30 s); it is freed when the page goes. Fix planned for 0.2.1.
  • Android TV: the remote does not work yet (D-pad and OK are not handled).
  • WebP covers are not shown on Android, 12 and newer included (cause not found yet); 10 and 11 have no WebP loader at all.
  • The save self-test's expiry step fails on Android 15 and 17 (re-marking an item pending does not move its expiry date); saving itself works.