StreaMu 3DS
More actions
| StreaMu | |
|---|---|
| General | |
| Author | imissuuuu |
| Type | Media Players |
| Version | 1.5.1 |
| License | MIT License |
| Last Updated | 2026/06/01 |
| Links | |
| Download | |
| Website | |
| Source | |
A homebrew music player for Nintendo 3DS that searches and streams YouTube audio via a companion proxy server.
This app runs on a Nintendo 3DS (with custom firmware) and lets you search for music on YouTube, browse playlists, and stream audio, all from the 3DS's dual-screen interface.
A lightweight proxy server runs on your PC and handles YouTube data fetching and audio streaming.
Features
- Search YouTube and stream audio directly on your 3DS.
- Create and manage playlists.
- Shuffle, loop, and queue controls.
- Customizable themes and wallpaper.
- CIA and 3DSX support.
Installation
Requirements
3DS side:
- Nintendo 3DS with custom firmware (Luma3DS)
Proxy server side (PC):
- Windows/Mac/Linux
- EXE version (recommended, no dependencies)
- Python 3.10+
Install (3DS)
Download streamu.cia or streamu.3dsx from Releases.
- CIA - Install with FBI. The app appears on the HOME Menu.
- 3DSX - Copy to
/3ds/on your SD card. Launch from Homebrew Launcher.
Proxy server setup (PC)
Option A: Standalone EXE (recommended)
Download StreaMu-Server.zip from Releases, extract it, and run StreaMu-Server.exe.
The server uses native YouTube Opus audio and does not require FFmpeg. No Python or manual setup needed.
Option B: Python script
Mac / Linux:
cd server chmod +x start_server.sh ./start_server.sh
This will:
- Create a Python virtual environment
- Install required packages (starlette, yt-dlp, uvicorn)
- Start the proxy server
Windows:
cd server python setup.py venv\Scripts\python proxy.py
Or double-click start_server.bat in the server/ folder.
The server starts on port 8080. Open http://localhost:8080 in your browser to view the dashboard.
User guide
How to use
- Start the proxy server on your PC.
- Launch StreaMu on your 3DS.
- On first launch, enter your PC's IP address (shown on the proxy dashboard).
- Press Y to open the search keyboard and find music.
- From search results, tap a track to start playback.
- Use the "+ Add" button or the track options menu to save tracks to a playlist.
Playlists
Creating a playlist:
- From search results, tap the "menu icon" on a track and select "Add to Playlist".
- Choose "New Playlist" to create one, or select an existing playlist.
Browsing playlists:
- Tap the "Playlists" tab to see all your saved playlists.
- Tap a playlist to view its tracks.
Playing from a playlist:
- Open a playlist and tap any track to start playback.
- The playlist becomes your play queue.
Renaming tracks:
- In the track options menu, select "Rename" to give a track a custom name.
Custom Wallpaper
You can set a custom image for the top screen background:
- Place PNG files in
sdmc:/3ds/StreaMu/wallpaper/on your SD card - Open "Settings" in the app
- Select "Wallpaper" and choose from your images
Settings
Accessible from the settings icon in the app:
| Setting | Description |
|---|---|
| Theme | Light / Dark mode |
| Accent Color | Adjust hue, saturation, and brightness |
| Color Palette | Choose a preset palette |
| L/R Button | Assign actions: skip track, play/pause |
| D-Pad Speed | Scroll speed for list navigation |
| Wallpaper | Top screen background image |
| Language | English / Japanese |
Settings are saved to sdmc:/3ds/StreaMu/config.json.
Controls
Y - Open search keyboard
A - Select, Confirm
B - Back, Close popup
D-Pad - Navigate lists and menus
L/R - Switch tabs (configurable)
Select - Open track options menu
Start - Exit app
Touch - Tap items, Scroll lists, Tap buttons
Screenshots
Changelog
v1.5.1
- Highlights
- Improved steady-state Opus playback behavior to reduce low-FPS feeling and refill instability during playback.
- Reduced noisy hot-path observation overhead while keeping the playback pipeline changes that were validated on hardware.
- Tightened several playback and UI edge cases, including buffering state transitions, startup connection checks, and QA Remove handling.
- Upgrade Notes
- Update both the 3DS app and the proxy server together.
- Replace your existing
StreaMu-Server.zipwith the version from this release. - Existing Opus Direct usage stays the same; this is a maintenance and smoothness update rather than a feature reset.
v1.5.0
- Highlights
- Opus Direct is now the only release playback path.
- MP3 Proxy and server-side FFmpeg transcoding have been removed.
- The proxy server no longer requires FFmpeg.
- Existing
audio_pathsettings, including oldmp3andaac_directvalues, are treated as Opus Direct.
- Upgrade Notes
- Update both the 3DS app and the proxy server together.
- Use the latest
StreaMu-Server.zip; older proxy servers may not provide the required/stream_opus_oggendpoint. - If playback fails for a specific video, please include the video ID and the server dashboard log when reporting it.
v1.4.1
- Summary
- Added cancelable startup server connection flow.
- Added Mac/Linux Python server startup script.
- Added GitHub Actions 3DS artifact build workflow.
- Added GitHub Actions packaging tool installation for CIA builds.
v1.4.0
- Standalone Server EXE
StreaMu-Server.zip— extract and run. No Python required.- Automatically downloads FFmpeg and yt-dlp on first launch.
- Improved Documentation
- Added Quick Start guide for easy setup
- Added Troubleshooting section (connection timeout, firewall, FFmpeg)
- Documented playlist workflow, custom wallpaper, and all settings
- Bilingual (English / Japanese)
v1.3.0
- Features
- Split L/R button action into Skip Back and Skip Fwd — each independently assignable in Settings
- Search keyboard hint text updated to "Search music..."
- Bug Fixes
- Fix seek bar not pausing when using L/R Play/Pause action
- Fix
mp3duninitialized in MP3Player constructor
- Performance
- Faster startup: removed 1.1s of artificial sleep delays
- Startup loading screen now appears before wallpaper decode (no more black screen on launch)
- Improvements
- Track rename feature in Track Options popup (playlist context only)
- Separated search results from playlist tracks — no more overwriting each other
- SearchScreen redesigned to match PlayingScreen layout (PlayBar + seek + hamburger)
- Network: reduced streaming latency, pipe-based stream generator, Keep-Alive support
- Fixed DASH fMP4 seek via manual segment fetch + init segment pre-send
v1.2.0
- Features
- Thumbnail display on PlayingScreen top screen (async download, center crop)
- Thumbnail routed through proxy server (no direct ytimg.com access)
- Delayed thumbnail fetch by 3s to prioritize audio buffering
- Hide view count when playing from playlist
- Bug Fixes
- Fix crash on START exit when thumbnail is loaded
v1.1.0
- UI Improvements
- Home screen rich styling (gradient, bevel, touch feedback, cursor)
- List UI restyle v2 (minimal flat, dashed separator, left accent bar)
- Custom color palette with S/V sliders for freeform color selection
- Features & Fixes
- Streaming 15s timeout with simplified retry logic
- Settings screen Save button fixed outside scroll list
- Playlist track view counts removed (stale data)
v1.0.0
- First public release of StreaMu - a homebrew music player for Nintendo 3DS.