Lukas Bohez/media tools, one developer/

Convert The Spire Reborn

Your music and videos in one free app: a player with subtitles, synced lyrics, loops and a large view, and every way to fill it, from whole playlists (or only the part you want) off 1,800+ sites to torrents and a converter. Windows, macOS and Android. It all runs on your machine, and it never asks you to sign in.

Get it from the Microsoft Store Google Play All downloads

4,914 downloads across 100+ countries and counting

Version
v16.0.1
Released
2026-10
License
GPLv3
Platforms
Windows, macOS, Android
Languages
18
Source
GitHub

Download

Android is on Google Play, where it is called BitPlayer: Music & Video, and Windows is on the Microsoft Store; everything else is below. The latest is v16.0.1: Subtitles and lyrics, a cleaner player, and only the part you want. Windows has three ways in, listed under the buttons. Linux builds stopped at v14.0.0, though the older releases are still up.

Google Play Microsoft Store Windows installer macOS Android APK

Open source · GPLv3 · Privacy policy · Code signing policy · Without installing: Windows zip, Mac zip · 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, and since v16 the player is the part it starts with: subtitles, lyrics and loops for the files you already have, not only the ones it downloaded.

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, and that took two goes to get right. First it only understood one of the several ways YouTube says "here is the next page", which stopped it dead at 100 entries. Fixing that got it to 200, and then to the real problem: YouTube's plain API simply stops handing out the next page after the second one, so there was nothing left to follow. It now falls back to the YouTube Music API, which pages to the end. On the 863 track playlist used to chase this down, 200 entries before and 855 after; the rest are private or deleted, which nothing can enumerate. Every page format is covered by offline tests, so if YouTube changes it again a test breaks instead of your playlist quietly getting cut short.

Watch something together without a service.

Start a room on one device, read out the six character code, and phones, laptops and the TV all play, pause and seek in step. There is no server and no account, because the host device is the server and everything stays on your own network. Guests measure the round-trip delay to the host the way NTP does, so they are in step rather than a second or two behind.

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, or you pick one in Settings, and falls back to English. Since v14.5.0 that covers every screen, dialog and message, not just the menus, and a check in the build fails if a screen slips back into English. The files are plain .arb in the repo if you want to improve a translation.

Nothing leaves your machine.

No account, no uploads, no size limits, no telemetry. The Play Store build shows ads, which is the one thing that talks to anybody else; the desktop builds carry no ad code at all. The privacy policy spells out exactly what that means, and it is GPLv3, so you can check rather than take my word for it.

What it does

Playing

Subtitles, songs too · Synced lyrics · Loop the best part · Large view · Speed and a sleep timer · Picks up where you left off

Downloading

1,800+ sites · Only the part you want · It fixes itself · Whole playlists on a phone · Tags and artwork come with it · Pick the format

Keeping a collection complete

Find what you are missing · It knows the same song twice · Watch a playlist · It remembers where it got to

Converting, and the rest of the player

Convert anything you have · No reaching for the volume · Keeps playing in your pocket · A file browser you can use from the sofa

Watching together, and the browser

One room, every screen · No server, no account · Userscripts in the browser · Ads and trackers blocked

Torrents

Find them and fetch them here · Android cannot kill it

The small stuff

Eighteen languages · Runs on old hardware · The guide is in the app · Logs you can read · Check it yourself

Frequently asked questions

Why does Windows show a SmartScreen warning?

SmartScreen warns about programs that are not signed, and the Windows downloads are not signed yet. The project applied to the SignPath Foundation for free code signing, and that is taking longer than expected: the application is denied for now, because the app is not well known enough yet, and stays on hold until the project can show that enough people use it (see the code signing policy). Until then, install it from the Microsoft Store, which never shows the warning, or click "More info" "Run anyway", once. Updates from inside the app never show it either. The app is open source under the GPLv3, so you can read every line on GitHub first.

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?

All file processing happens locally on your machine, there is no account to make, and the app sends me nothing: no analytics, no crash reports, no cloud processing. Its own requests go to the site you gave it a link to. The one exception is the Google Play build, which shows ads through Google AdMob and so hands your device's advertising ID to Google; the Windows and macOS builds have no ad code in them. The privacy policy covers all of it, including how to reset or delete that advertising ID.

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. No premium tiers, nothing locked behind a payment, and no hidden costs. The Play Store build carries ads, which is what pays for the Play account; the desktop builds have none.

Can it run Chrome or Firefox extensions?

On Windows, yes, since v14.4.0. Install Chrome extensions, and add-ons from addons.mozilla.org that also support Chromium, from Extensions in the browser menu or in Browser Settings. You see what an extension will be able to do before anything installs, and downloads from addons.mozilla.org are checked against the checksum it publishes. Dark Reader and uBlock Origin Lite are tested. Full extensions are Windows only for now: on macOS and Android the app renders pages with the platform WebView, which exposes no extension host. On Android the Extensions menu shows what does run there instead: the built-in ad blocker, your userscripts, and one-tap searches for popular userscripts such as dark mode, Return YouTube Dislike and SponsorBlock. Every platform runs userscripts: Greasemonkey and Tampermonkey scripts install by URL or by pasting the code in. Ad and tracker blocking is built in separately.

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.

Code signing policy

Windows releases will get free code signing provided by SignPath.io, certificate by SignPath Foundation. The project has applied to the SignPath Foundation, and that is taking longer than expected: the application is denied for now, because the app is not well known enough yet, and stays on hold until the project can show that enough people use it. Until then, the Windows downloads from GitHub are not signed. The Microsoft Store version is signed by Microsoft, which delivers it through the Store.

Committers may change the source code directly. Changes from anyone else come in as pull requests, and a committer reviews them before they are merged. Only files that the project's release workflow builds from its own source code are signed, and an approver approves each release before it is signed.

Privacy: the privacy policy lists everything the app connects to, and what goes with it.

What's new in v16.0.1

Subtitles and lyrics, a cleaner player, and only the part you want

Covering v16.0.0 - v16.0.1. From the project changelog, which is the source of truth for what shipped.

New

Changed

Fixed

Screenshots

1 / 15

Fifteen 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.

Trailer

The app in 50 seconds. Prefer YouTube itself? Watch it there. The older demo of v14 is still up, and so is a walkthrough of the v13.2.1 build.

How posting this project went in public, community by community: the community guide.