Convert The Spire Reborn
v13.2.1 - yt-dlp SABR fix, browser tab thumbnails, decode fix, live Missing tab
The Android app is live on Google Play, and desktop release downloads remain available below for other platforms. Latest release (v13.2.1): finally fully fixed downloads on low-end hardware - managed 800 downloads without any issues, 10 consecutive downloads active at once. Also fixes YouTube downloads failing with "the page needs to be reloaded", browser tab-switcher thumbnail stretching, playlist "Missing" tab going stale, and misleading "self-update failed" errors.
Fast Local Conversion
Everything runs on your machine. No uploading, no waiting for a server, no size limits.
Complete Privacy
Your files never leave your device. No tracking, no analytics, no cloud processing.
100% Open Source
Every line of code is public on GitHub under the GPLv3 license. Audit, fork, contribute.
Full HD & High-Quality Audio
Convert to MP3 (320 kbps), MP4 (1080p Full HD), and M4A.
Vault + Convert Unified
BitPlayer: Torrent & Media features now ship directly inside Convert The Spire Reborn for a single workflow.
Android Build Naming Refresh
The Android release now ships as ConvertTheSpireReborn.apk for clearer platform consistency.
Long-Running Session Stability
v10.8.2 improves crash resilience while preserving fast conversion workflows.
Sponsored
Download Now
The Android release is available on Google Play. Desktop downloads remain below for other platforms. Latest release: v13.2.1 - yt-dlp SABR/player_client fix, browser tab thumbnails, decode fix, live Missing tab.
Open source · GPLv3 · No installer needed · View on GitHub · Download APK · Verify SHA256SUMS · See all releases · Support via GitHub Sponsors
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 - 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?
You can convert to a wide variety of formats 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. Your files stay yours.
Is this really free and open-source?
Yes. The full source code is available on GitHub under the GPLv3 license. You can audit, fork, and modify it freely. There are no ads, no premium tiers, and no hidden costs.
Sponsored
v13.2.1 Changelog
Released 2026-09 - yt-dlp SABR/player_client fix, browser tab thumbnails, decode fix, live Missing tab. Finally fully fixed downloads on low-end hardware: verified 800 downloads without issues, 10 consecutive downloads active at once.
yt-dlp SABR / player_client fix
Fixed YouTube downloads failing with "the page needs to be reloaded". The app was forcing --extractor-args youtube:player_client=tv,web on every download under the belief that the tv client avoids YouTube's SABR-only streaming experiment. Live verification (2026-09, yt-dlp 2026.08.19, Deno 2.9.6) proved it now causes the failure it was meant to prevent: the tv player response returns UNPLAYABLE, and the web client's https formats are skipped as "missing a URL" (YouTube is forcing SABR streaming for that client, yt-dlp#12482). The override is removed; downloads now use yt-dlp's default client order. Verified via bisection on the affected Windows machine and independently confirmed against yt-dlp#12482 and an Arch Linux forum thread - the tv client specifically is affected, not just web.
Browser tab-switcher thumbnail fix
Tab-switcher screenshot thumbnails were stretched to 16:9 at decode time. The tab-switcher's Image.memory and Image.file passed paired cacheWidth: 640, cacheHeight: 360 decode hints. A browser page's rendered viewport has no guaranteed aspect, so non-16:9 pages were pre-stretched at decode time. Dropped cacheWidth, kept cacheHeight: 360 (aspect-preserving).
Thumbnail stretching fix (hero card & mini-player)
All thumbnail sites passed paired cacheWidth+cacheHeight decode hints sized to the display box. instantiateImageCodec scales to exactly those dimensions without preserving the source image's own aspect, so square or portrait thumbnails were pre-stretched at decode time. Decode hints are now height-only (aspect-preserving) at every site - the now-playing hero card and the mini-player bar are both fixed.
Playlist "Missing" tab - live update
The playlist "Missing" tab was going stale after downloading missing tracks. Download Selected only queued downloads and returned immediately, and nothing ever re-ran the folder compare afterwards. The playlist screen now listens to AppController and moves tracks Missing → Matched in memory immediately when a queue item reaches completed.
Misleading "self-update failed" error fixed
The catch block wrapped both the self-update call and the post-update retried download, hiding the fact that a current yt-dlp still can't extract the video. The two outcomes are now reported distinctly.
Low-end hardware - 800 downloads verified
Downloads are now fully fixed on low-end hardware. Verified 800 downloads without any issues, with 10 consecutive downloads active at once. This quality assurance proves the app handles heavy workloads reliably on modest machines.