Skip to content
DominatorStufsPublic

About

A Music Player with YouTube Music support for Android. Forked from BitCord

Topics

Resources

Code of conduct

Contributing

Stars

59 stars

Watchers

1 watching

Forks

Repository files navigation



DollBloom logo

DollBloom 🌸

Aesthetic YouTube Music Client


Latest release License Downloads


Download · Features · Contributing · Support · Disclaimer

Note

DollBloom is a renamed derivative of the open-source BitChord project, released under GPLv3. Original author and third-party notices are retained in the source. DollBloom artwork is used throughout: Logo.png, the launcher icons, and Banner.png, whose left-hand lockup was redrawn onto the original background.

Every app build variant uses the Android application ID com.doll.bloom. Dev/prod and debug/release builds are not separate installs: installing one replaces the other. DollBloom installs separately from BitChord and will not update or replace an existing BitChord installation.

Important

DollBloom is not affiliated with, endorsed by, or connected to YouTube or Google in any way. Use it at your own discretion.


DollBloom banner — all the music, none of the bloat

Features

Playback

  • Search, browse and play anything available on YouTube Music.
  • Hi-Res lossless audio — FLAC/ALAC from a configured module source, with YouTube Music as fallback.
  • Gapless playback with true crossfade, adjustable 0–12s.
  • Automix [Beta] — DJ-style transitions with beat-matching and tempo-stretching.
  • Offline downloads — save tracks with embedded metadata.
  • Local music library integration.
  • Background playback via a proper foreground media session.
  • Apple-like lyrics animation — credit to binimum.

Experience

  • Animated album canvas — motion artwork on the now-playing screen.

  • Word-synced lyrics — word/syllable-level highlighting from multiple sources.

  • Dynamic, artwork-driven theming — Material palette extracted from album art.

  • Frosted-glass UI — translucent bars via Haze and Material 3 theming.

Connectivity & Accounts

  • Sign in with your Google account for personalized content.
  • Discord Rich Presence — in-app login, live track/artist/album and progress.
  • Scrobbling to Last.fm and ListenBrainz.
  • Pluggable sources — add, edit, test and health-check module sources.

Controls & Tweaks

  • Per-network audio quality — separate quality ceilings for Wi-Fi and mobile data.

  • Playback speed control (0.5×–2.0×) and skip silence.

  • Sleep timer — fixed presets or "stop after this track".

  • System equalizer integration.

  • Stats for nerds — codec, bit depth, sample rate, and more on the now-playing screen.


Download

Once a release is published, get the APK from DollBloom Releases. Sideloading requires enabling "Install unknown apps" for whichever app you download it with.

Repository maintainers can build from Actions → Android Release Build → Run workflow, which needs nothing typed: press Run and it builds, signs, and replaces the APK on the rolling latest release. Fill in the version boxes to publish a versioned release instead — the name takes letters as well as numbers, e.g. 1.8-beta2 or DollBloom2026. Either way the workflow builds the minified production Release and uploads one universal APK as a 14-day artifact, provided it is at most 100 MB. Native libraries are compressed in the APK to reduce download size; no app features or supported ABIs are removed.


Contributing

We welcome contributions to DollBloom! Please review our Contributing Guide and Code of Conduct before submitting a pull request.

Contributing Guide · Code of Conduct · Maintainers · Additional Docs


Support

No DollBloom-specific donation links are configured yet. Support details can be added by the DollBloom maintainers later.


Disclaimer & Legal Notice

DollBloom is an independent, community-driven third-party audio player and client. It is not associated with Google LLC, YouTube Music, Deezer, Telegram, or any of their parent companies.

  • No Media Hosting: DollBloom does not host, upload, or store copyrighted music files. It operates strictly as an interface to scan local device storage or stream media directly from public, public-facing, or user-authenticated APIs.
  • Fair Use & API Usage: This software is created solely for personal research, educational, and fair-use purposes. The user is entirely responsible for ensuring their usage aligns with their local copyright laws and YouTube Terms of Service.
  • No Ad-Blocking Guarantee: DollBloom focuses on a clean listening environment but does not guarantee permanent bypasses or modifications to commercial third-party platform conditions.
  • Copyleft: DollBloom is free software under the GPLv3. Any distribution must include the Corresponding Source under the same license.

License

This project is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for details.


Build locally

Requires JDK 17 and the Android SDK/NDK configured for this project.

./gradlew assembleDevDebug
./gradlew testDevDebugUnitTest

Release signing

Release builds are signed with DollBloom's own key, which lives in this repository as one locked file — signing/dollbloom-release.keystore.enc, a 4096-bit RSA key under AES-256-CBC, opened by a passphrase through PBKDF2-HMAC-SHA256 at 600,000 iterations. The release workflow holds that passphrase, so when a build runs the lock opens itself and the key is there for as long as signing takes. See signing/README.md for what that does and does not protect — the short version is that anyone who can read the workflow can read the passphrase, which is the price of a build that needs nobody.

# Unseal the key, then build. Needs openssl + keytool. The passphrase the
# workflow uses is in the workflow, in SIGNING_PASSPHRASE_BUILTIN.
DOLLBLOOM_SIGNING_PASSPHRASE='…' \
  python3 signing/dollbloom_signing.py --passphrase-env DOLLBLOOM_SIGNING_PASSPHRASE unseal --out-dir .
./gradlew assembleProdRelease
rm -f dollbloom-release.jks keystore.properties   # they are the private key

Two kinds of build come out of the Android Release Build workflow:

  • every push to master (or a working branch) builds, signs, and replaces DollBloom-latest.apk on the rolling latest pre-release. One stable URL, always the newest build, and a version code taken from the date so it installs over whatever is on the phone.
  • a dispatch that has a version filled in builds a properly versioned release, v<version name> — and letters are fine in that name, so 1.8-beta2 works. A dispatch with the form left empty is the same request as a push, and lands on latest too. Run without typing anything is a complete sentence.

signing/README.md has the whole scheme, including how to rotate the passphrase, how to verify a downloaded APK, and what all of this does and does not protect.

LISTEN_TOGETHER_SERVER can be set in local.properties, as an environment variable, or as the GitHub Actions repository variable of the same name for CI builds. If unset, the app still points at the original upstream Listen Together server, which is not DollBloom-hosted; configure your own backend and app-link domain before presenting those services as DollBloom-hosted.

About

A Music Player with YouTube Music support for Android. Forked from BitCord

Topics

Resources

Code of conduct

Contributing

Stars

59 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages