A feature-rich desktop application for streaming and downloading YouTube audio on Windows and Linux. Extract audio from YouTube videos, stream them directly, or download for offline listening with a Spotify-inspired interface.
For the native macOS version, see YTAudioBar-macos
- Stream YouTube Audio — Play high-quality audio directly from YouTube with intuitive playback controls
- Download for Offline — Download tracks locally in FLAC format with automatic metadata
- Queue Management — Build and manage playback queues on the fly
- Unlimited Playlists — Create custom playlists and organize your music collection
- Fast Seeking — Near-instant seeking in downloaded tracks using FLAC seek tables
- OS Media Controls — Full integration with Windows SMTC and Linux media controls
- Media Key Support — Control playback with media keys (Play, Pause, Next, Previous, Seek)
- Search Modes — Toggle between general search and music-optimized search
- System Tray — Minimize to system tray for always-on access
- Auto-start — Optional automatic startup with your system
Download the latest .exe installer from GitHub Releases or the official website.
- Download
YTAudioBar_x64-setup.exe - Run the installer
- On first launch, the app will automatically download
yt-dlpandffmpeg(~15 MB)
Minimum requirements: Windows 10 or later
Download the latest .AppImage from GitHub Releases or the official website.
- Download
YTAudioBar_*.AppImage - Make it executable:
chmod +x YTAudioBar_*.AppImage - Run:
./YTAudioBar_*.AppImage - On first launch, the app will automatically download
yt-dlpandffmpeg(~15 MB)
Minimum requirements: Ubuntu 20.04+ or equivalent
Create a .desktop file for application menu integration:
mkdir -p ~/.local/share/applications
# Copy the AppImage to ~/.local/share/applications/
# Create YTAudioBar.desktop with appropriate paths- Use the Search tab to find YouTube videos
- Click a result to start playback
- Use playback controls or media keys
- Adjust volume and seek through the track
Switch to the Downloads tab to:
- View download progress
- Download tracks for offline playback
- Downloaded tracks support full seeking and faster playback
- Click the Playlists tab
- Create new playlists with the
+button - Add tracks via the playlist icon during playback
- Organize your music collection
Access Settings tab to:
- Enable/disable auto-start on system boot
- Configure output device (if available)
- Adjust UI preferences
- OS: Windows 10 or later (tested on Windows 11)
- RAM: 256 MB minimum
- Disk Space: ~5 MB for installation + 15 MB for runtime dependencies (downloaded on first launch)
- OS: Ubuntu 20.04+ or equivalent distribution
- RAM: 256 MB minimum
- Disk Space: ~70 MB for AppImage + 15 MB for runtime dependencies (downloaded on first launch)
- Dependencies: libssl, libxcb (automatically handled by AppImage)
- Rust 1.70+ (Install Rust)
- Node.js 16+ (Install Node.js)
- Visual Studio Build Tools (Windows) or standard C compiler (Linux)
# Clone the repository
git clone https://github.com/ilyassan/ytaudiobar.git
cd YTAudioBar-tauri
# Install dependencies
npm install
# Install Rust dependencies
cd src-tauri && cargo fetch && cd ..# Run in development mode with hot reload
npm run tauri dev# Build optimized release
npm run tauri buildnpx tsc --noEmitFrontend:
- React
- TypeScript
- Tauri IPC
- TailwindCSS
Backend:
- Tauri 2.x
- Symphonia (audio decoding)
- rodio (audio output)
- SQLite
- reqwest
- yt-dlp
- FFmpeg
YouTube URL
↓
yt-dlp (extract stream)
↓
Symphonia (decode)
↓
rodio Sink (output)
- Downloaded Tracks: File-based playback with fast seeking (<100ms) using FLAC seek tables
- Streamed Tracks: Memory-buffered playback with seeking support (loads audio into memory)
src/ Frontend (React)
├── features/
│ ├── player/ Player UI components
│ ├── search/ Search functionality
│ ├── queue/ Queue management
│ ├── playlists/ Playlist UI
│ ├── downloads/ Downloads UI
│ └── settings/ Settings UI
├── stores/ State management (Zustand)
├── lib/tauri.ts IPC bindings
└── app/routes/home.tsx Main page
src-tauri/ Backend (Rust)
├── src/
│ ├── main.rs App setup
│ ├── audio_manager.rs Audio playback
│ ├── download_manager.rs Downloads & FLAC conversion
│ ├── media_key_manager.rs OS media controls
│ ├── database.rs SQLite management
│ └── models.rs Data structures
└── Cargo.toml Rust dependencies
Contributions are welcome! See CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License. See the LICENSE file for details.
- YTAudioBar-macos — Native macOS version
- yt-dlp — YouTube audio extraction
- Tauri — Desktop app framework
- Symphonia — Audio decoding library
- rodio — Audio output library
Made by Ilyass for the open source community