Yuvi GD
YUVI

Bolt Player

Bolt Player uses media_kit (libmpv) for hardware-accelerated video decoding across Windows, macOS, and Linux. YouTube streaming runs through youtube_explode_dart to bypass API restrictions. A custom C++/WinRT native plugin wires the player into Windows System Media Transport Controls without Rust or third-party dependencies.

Technologies Used

FlutterDartmedia_kit (libmpv)Riverpodwindow_manageryoutube_explode_dartC++/WinRT

Software Info

Completed
startDate: 2026-02-05
endDate: 2026-02-20
platform: Cross-platform (Windows, macOS, Linux)

Gallery

image
1 / 6
Bolt Player home screen

Main interface showcasing playlist and recent media

Bolt Player was built to address two gaps that existing Flutter media players had not cleanly solved: reliable YouTube content extraction without the YouTube Data API, and native Windows SMTC integration without introducing Rust compilation dependencies.

The media engine is media_kit, which embeds libmpv as the decoding backend. libmpv handles format demuxing, hardware-accelerated video decoding (DXVA2/D3D11 on Windows, VideoToolbox on macOS), and audio rendering through the platform's default output. Flutter renders the video frame via a platform texture, keeping the video pipeline off the Dart heap entirely.

YouTube support uses youtube_explode_dart, which reverse-engineers YouTube's InnerTube API to extract direct stream URLs and metadata without requiring API keys or OAuth. Streams are passed directly to libmpv as URL sources; libmpv handles adaptive bitrate selection internally.

SMTC integration required a custom Flutter plugin written in C++/WinRT. The plugin implements the Windows.Media.SystemMediaTransportControls COM interface directly, registers play/pause/next/previous button handlers, and reflects the current playback state and track metadata back to the system. This allows Bolt Player to appear in the Windows media overlay (Win+K) and respond to hardware media keys on keyboards.

Software Specifications

System Requirements

Windows 10+ / macOS 10.15+ / Ubuntu 18.04+
2GB RAM minimum
90MB storage space
GPU with hardware acceleration support

Supported Formats

MP4, MKV, AVI, MOV, FLV, WMV (Video)
MP3, AAC, FLAC, WAV, OGG, M4A (Audio)
YouTube streaming and playlist support
Playlist formats: M3U, PLS, XSPF

Key Features

libmpv backend via media_kit for hardware-accelerated cross-platform decoding

YouTube stream extraction via youtube_explode_dart (no API keys required)

Custom C++/WinRT native plugin for Windows SMTC integration

Playlist management for both YouTube and local media sources

Hardware acceleration: DXVA2/D3D11 (Windows), VideoToolbox (macOS)

Background playback with system media controls

GitHub releases auto-update system with beta/stable channel support

Architectural Implementation

libmpv Hardware Decoding Pipeline

media_kit initializes libmpv with hwdec=auto, allowing it to select DXVA2 or D3D11VA on Windows and VideoToolbox on macOS. The decoded frame is pushed into a Flutter platform texture (TextureRegistry) and rendered by the Flutter compositor without copying through the Dart isolate, keeping GPU memory usage independent of Dart's garbage collector.

Custom C++/WinRT SMTC Plugin

The plugin creates a SystemMediaTransportControls instance tied to the app's HWND. It registers a ButtonPressed event handler in C++ and routes button events (play, pause, next, previous) to Dart via a MethodChannel. Track metadata (title, artist, thumbnail) is written to the SystemMediaTransportControlsDisplayUpdater from the Dart side on every track change. This avoids the Rust-based winrt crate that most community implementations depend on.

Outcomes

Windows beta release published to GitHub with installer

YouTube streaming and playlist support operational

Custom SMTC plugin working with Windows media overlay and hardware media keys

Auto-update system checking GitHub releases for beta and stable channels

Performance Benchmarks

Sub-1 second application startup

Under 200MB memory usage during playback

Hardware-accelerated video decoding via DXVA2/D3D11/VideoToolbox

Smooth 4K video playback support

Minimal CPU usage during audio-only playback

Yuvi GD

Game Developer & 3D Artist crafting immersive digital experiences. Pushing the boundaries of interactive technology.

Services

  • Game Development
  • Technical Art & Pipeline
  • Full-Stack Web Development
  • Custom Software Solutions
  • Utilities & Network Systems

Get In Touch

Email:
Yuvi_GD@outlook.com

Discord:
yuvi_gd

© 2026 Yuvi GD. All rights reserved.

Built with Next.js, Three.js & Tailwind CSS