BlissBox
Privacy-focused free music streaming app powered by a custom reverse-engineered YouTube Music engine, with Sign in with Google, offline playback, and background mode
- Role
- Lead Developer & Architect
- Timeline
- 2024–2025 · Personal Project
- Platforms
- Android
BlissBox is a reverse-engineered YouTube Music client built entirely from scratch in Flutter. Rather than relying on any official SDK, I reverse-engineered the YouTube Music InnerTube API — including its PoToken authentication, signature-timestamp extraction, and stream decryption — to deliver a pixel-perfect streaming experience completely free of ads.
The project is built as a modular Dart mono-repo with 18+ packages covering everything from a custom HLS/DASH parser and media player to a JavaScript runner for cryptographic operations that YouTube uses client-side. Users can sign in with their Google account to sync playlists and library, listen offline with downloaded tracks, and switch seamlessly between audio and video modes — all while keeping their data private.
Modular Mono-Repo
18+ self-contained Dart packages covering the YouTube API engine, media playback stack, UI system, and localizations — wired together via dependency injection.
BlissBox App
Flutter · AndroidThe main consumer app implementing home, explore, search, library, player, download manager, and YouTube sign-in flows. Built with Clean Architecture and BLoC state management.
YouTube Music Engine
Dart package · youtube_musicCustom reverse-engineered InnerTube client handling authentication, PoToken extraction, stream manifest resolution, search, browse, and playlist operations — all without any official SDK.
Media Player Stack
Dart packages · media_player · hls · dashA custom platform-channel media player with a hand-rolled HLS and CMAF/DASH parser, lazy source loading, offline downloader, and audio-service integration for lock-screen controls.
Features
Home Feed
Personalised home screen with curated shelves, quick picks, mixes, and new releases pulled live from the YouTube Music InnerTube browse endpoint.
Audio Player
Rich audio playback with dynamic album art, synced full-screen lyrics, queue management, shuffle, and repeat modes.
Video Player
Full-screen video mode that shares the same playback session as the audio player — switch modes instantly without buffering.
Audio-of-Video
Play only the audio track extracted from any music video, letting you listen to video-only releases as pure audio.
Lyrics
Synchronized, full-screen lyrics displayed in real time while your music plays, pulled from YouTube Music's lyric data.
Search & Discovery
Instant search with smart suggestions across songs, albums, artists, and playlists, with a history view for quick re-access.
Explore & Moods
Discover new music through curated mood playlists, genre charts, and region-specific trending shelves.
Trending Charts
Region-specific top charts and trending music updated in real time, letting you always stay current with popular releases.
Artist Pages
Full artist profiles showing top songs, albums, singles, and subscriber counts, mirroring the official YouTube Music experience.
Playlists
Create and manage custom playlists with shuffle, queue reordering, and quick-add actions — synced with your Google account when signed in.
Library
Your personal library — saved songs, downloaded tracks, and followed playlists — all organised in one place and available offline.
Reverse-Engineered Playback
Rather than wrapping an existing SDK, I reverse-engineered the entire YouTube Music streaming pipeline so BlissBox can deliver ad-free, lossless-quality playback without any official API key.
PoToken & Signature Extraction
A JavaScript runner (backed by a WebView) executes YouTube's own client-side JS to obtain short-lived PoTokens and signature timestamps required for authenticated stream requests.
InnerTube API Engine
A fully custom Dart client speaks YouTube's private InnerTube protocol — handling browse, search, player, and next requests with cookie-based session management.
HLS / DASH Stream Decoding
Hand-rolled HLS and CMAF/DASH parsers resolve multi-quality audio and video streams, feeding a native Android ExoPlayer integration via a custom platform channel.
Tech Stack
App
Native Layer
Data & Storage
Tooling
What I owned
- • Reverse-engineered the YouTube Music InnerTube API, replicating PoToken extraction, signature-timestamp decryption, and cookie-based session authentication in pure Dart.
- • Designed and built a modular mono-repo architecture with 18+ Dart packages managed via Melos, keeping each concern (YouTube engine, media player, UI system) independently versioned.
- • Implemented a custom HLS and CMAF/DASH parser from scratch, enabling adaptive-quality stream resolution without any third-party media library.
- • Developed a native Android media player plugin in Kotlin/Java via Flutter platform channels, integrated with Android's audio_service for lock-screen and notification controls.
- • Built a JavaScript runner abstraction (WebView, FlutterJS, and process backends) to execute YouTube's obfuscated client-side JS for cryptographic token generation.
- • Designed the complete app UI from scratch — home, explore, search, player, library, and artist pages — faithfully mirroring the YouTube Music aesthetic with a privacy-first twist.
- • Integrated Sign in with Google via WebView cookie capture and cookie-jar session management, enabling library sync and personalised recommendations.
- • Implemented an offline download manager with background download queuing, progress tracking, and local playback of downloaded tracks.