Convert The Spire Reborn
One app to download, convert, torrent and play your media. Windows, macOS and Android. It all runs on your machine, and it never asks you to sign in.
- Version
- v14.1.0
- Released
- 2026-09
- License
- GPLv3
- Platforms
- Windows, macOS, Android
- Languages
- 18
- Source
- GitHub
Download
Android is on Google Play, everything else is below. The latest is v14.1.0: Full playlists on Android, and the app in 18 languages. Linux builds stopped at v14.0.0, though the older releases are still up.
Open source · GPLv3 · No installer needed, view all releases · verify SHA256SUMS · GitHub Sponsors
Where this one fits
Normally this takes four apps. A command-line tool to download with, something else to convert, a torrent client, and a player to actually listen to any of it. Four installs, four things to keep updated, four places your files end up. This is all of it in one, over one library.
Same app on your computer and your phone. Most tools here are one or the other, so the phone version ends up cut down or never gets made. This is the same app either way, with the same library and the same saved playlists on each.
It keeps a collection, not just a download queue. Give it a playlist and a folder and it tells you which tracks you are missing. It matches titles across scripts too, so a song filed under its Japanese title and the same song romanised count as the same song. That is the part I use most.
Whole playlists on a phone. Android has no yt-dlp to fall back on, so the app walks YouTube's pages itself. Until v14.1.0 it only understood one of the several ways YouTube says "here is the next page", so if your playlist got served a different one it stopped dead at 100 entries. It handles all of them now, and an 800 item playlist pages through fine on a phone. There are offline tests for every one of those formats, so if YouTube changes it again a test breaks instead of your playlist quietly getting cut short.
Saved playlists keep themselves current. Save one and the app re-checks it every four hours while it is open. Add a song today and it is on your disk without you doing anything.
Old machines get tested, not assumed. The changelog has several rounds of fixes for a pre-2013 QA box, including a native crash no Dart handler can catch. yt-dlp keeps itself up to date on the desktop, and when a download breaks because YouTube changed something, it updates and tries again instead of just failing.
Eighteen languages. It follows whatever your phone or computer is set to and falls back to English. The menus and the everyday buttons are done; the longer screens are still English until a native speaker has been over them. The files are plain .arb in the repo if you want to help.
Nothing leaves your machine. No account, no uploads, no size limits, no telemetry. It is GPLv3, so if you would rather check that than take my word for it, the source is right there.
What it does
Downloading
1,800+ sites
Everything yt-dlp handles: the big video platforms, social media, public audio hosts.
It fixes itself
yt-dlp keeps itself up to date in the background. If a site changes something and a download breaks, the app updates and tries again, and falls back to another way in before it gives up.
Whole playlists on a phone
Android pages through a playlist on its own, handling every format YouTube uses to hand over the next page. 800 items is fine. No desktop needed, no yt-dlp involved.
Tags and artwork come with it
Both get written in while the file downloads, so you are not going back over your library afterwards to fix it.
Pick the format
Per download, MP3 or the usual video formats. You can see what a link holds before you commit to it.
Keeping a collection complete
Find what you are missing
Point it at a playlist and the folder you keep it in, and it lists the tracks you do not have yet. Top the folder up instead of downloading the lot again.
It knows the same song twice
A track saved under its Japanese title and the same track romanised are matched as one song, so your collection does not quietly end up with both.
Watch a playlist
Save one and it gets re-checked every four hours while the app is open. Anything new goes in the queue on its own.
It remembers where it got to
Progress is tracked as each track lands, so a long job you walked away from has not lost its place when you come back.
Converting and playing
Convert anything you have
Between the supported audio and video formats, on your machine, with nothing uploaded and no size cap.
No reaching for the volume
Every track gets measured once and played at a level that matches the rest, so a quiet song does not disappear after a loud one. Full audio control, and you can push past the normal ceiling.
Keeps playing in your pocket
Background playback on Android with the Bluetooth controls, and it holds its place instead of starting over when you switch away.
A file browser you can use from the sofa
Built to work on a TV and from across the room, rather than assuming a mouse and a desk.
Torrents
Find them and fetch them here
Search, download and manage torrents in the same app, with the settings you would want from a dedicated client.
Check before you grab
If you run Ollama locally, the app can have it look over what you are about to download first. That runs on your machine too.
Android cannot kill it
Transfers run as a foreground service, so your download does not quietly die when the phone decides to tidy up.
The small stuff
Eighteen languages
It follows your device and falls back to English. Arabic gets proper right-to-left layout.
Runs on old hardware
Fixed for pre-2013 CPUs without BMI2, including a native crash no Dart handler can catch. Tested on a slow box, not assumed.
The guide is in the app
How to use it is right there, not buried in a README you have to go looking for.
Logs you can read
If a download fails you can see why, instead of guessing.
Check it yourself
No account, no uploads, no size limits, no telemetry. GPLv3, and the source is right there if you would rather look than take my word for it.
Frequently asked questions
Why does Windows show a SmartScreen warning?
Windows SmartScreen warns about unsigned software. Code-signing certificates cost ~$200/year, which isn't feasible for a free, solo-developed project. The app is 100% open-source under the GPLv3 license, so you can inspect every line of code on GitHub. To run: click "More info" "Run anyway."
What media sources are supported?
The app uses yt-dlp to support 1,800+ sites including most major video platforms, social media, and public audio hosts. Sites with DRM (Netflix, Disney+, Spotify) are not supported. Some sites (like HiAnime.to) require you to provide browser cookies, see Settings in the app.
What output formats are available?
Formats are grouped by category:
- Documents: PDF, EPUB, DOCX, HTML, TXT, CSV, JSON, XML, YAML, MD
- Images: PNG, JPG, BMP, GIF, TIFF, WebP, ICO
- Archives: ZIP, TAR.GZ, CBZ
- Media: MP3, WAV, AAC, FLAC, OGG, MP4, MKV, WEBM
Is my data private?
Yes, completely. All file processing happens locally on your machine. The app makes no network requests except to fetch media from the source URL. No analytics, no tracking, no cloud processing.
Is this really free and open-source?
Yes. The full source code is available on GitHub under the GPLv3 license. Audit, fork, and modify it freely. There are no ads, no premium tiers, and no hidden costs.
Does it work on old or low-end hardware?
That is tested, not assumed. The changelog documents several rounds of low-end fixes, including a folder-load crash on CPUs without BMI2 that was reproduced on an Ivy Bridge i3-3220 QA box, and a web adapter chosen so the same machines stay safe.
v14.1.0
Full playlists on Android, and the app in 18 languages
From the project changelog, which is the source of truth for what shipped.
Fixed
- Playlists stopped at 100 videos on Android. This is the big one. Android has no yt-dlp fallback, so every playlist is enumerated by the in-app page parser, which walks YouTube page by page using a continuation token. YouTube emits that token in several different shapes and switches between them without notice, and the parser only recognised one of them, so on any playlist whose page used a different shape pagination stopped dead after the first page, at exactly 100 entries. All known token shapes are now recognised, so an 800 item playlist enumerates fully on a phone.
- Continuation pages in the classic item format parsed to zero videos. YouTube mixes two item layouts, lockupViewModel and playlistVideoRenderer, and can return a different one on page 2 than on page 1. Only the first was parsed, so some playlists paged forever while adding nothing. Both layouts are now read, and pages are merged by video id so nothing is counted twice.
- Pagination could stall or spin. Each continuation token is now spent once and entries are de-duplicated by video id, so a repeated token can no longer loop forever re-fetching the same page.
Added
- The app now speaks 18 languages. It follows your device language automatically, with English as the fallback: Arabic, Dutch, English, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Russian, Simplified Chinese, Spanish, Turkish, Ukrainian and Vietnamese. Right-to-left layout works for Arabic. This first pass covers the navigation and the common actions and states; the longer screens are still English and will be translated as native speakers review them. Contributions are welcome, the files are plain .arb under lib/l10n/.
Improved
- The playlist parser is covered by offline tests. Every token shape and both item layouts are tested, so a future YouTube change fails a test instead of silently capping playlists again.
- Translations are checked in CI. Every translation file is compared against the English template, and a missing or blank translation fails the build rather than showing a blank label.
Screenshots
Twelve screens from the app. Scroll or swipe the strip, use the buttons or the arrow keys, and click any screenshot to see it full size.
Demo
Prefer YouTube itself? Watch it there. An older walkthrough of the v13.2.1 build is also up.
How posting this project went in public, community by community: the community guide.











