You do not have permission to edit this page, for the following reason:
Free text:
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 <code>streamu.cia</code> or <code>streamu.3dsx</code> from [https://github.com/imissuuuu/StreaMu/releases Releases]. * CIA - Install with [[FBI 3DS|FBI]]. The app appears on the HOME Menu. * 3DSX - Copy to <code>/3ds/</code> on your SD card. Launch from Homebrew Launcher. === Proxy server setup (PC) === '''Option A: Standalone EXE (recommended)''' Download <code>StreaMu-Server.zip</code> from [https://github.com/imissuuuu/StreaMu/releases Releases], extract it, and run <code>StreaMu-Server.exe</code>. The server uses native YouTube Opus audio and does not require FFmpeg. No Python or manual setup needed. '''Option B: Python script''' Mac / Linux: <pre class="language-shell">cd server chmod +x start_server.sh ./start_server.sh</pre> This will: * Create a Python virtual environment * Install required packages (starlette, yt-dlp, uvicorn) * Start the proxy server Windows: <pre class="language-shell">cd server python setup.py venv\Scripts\python proxy.py</pre> Or double-click <code>start_server.bat</code> in the <code>server/</code> folder. The server starts on port 8080. Open <code>http://localhost:8080</code> 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 <code>sdmc:/3ds/StreaMu/wallpaper/</code> 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: {| class="wikitable" |- ! 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 <code>sdmc:/3ds/StreaMu/config.json</code>. == 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 == https://dlhb.gamebrew.org/3dshomebrews/images/StreaMu3DS2.png https://dlhb.gamebrew.org/3dshomebrews/images/StreaMu3DS3.png https://dlhb.gamebrew.org/3dshomebrews/images/StreaMu3DS4.png https://dlhb.gamebrew.org/3dshomebrews/images/StreaMu3DS5.png == 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 <code>StreaMu-Server.zip</code> with 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 <code>audio_path</code> settings, including old <code>mp3</code> and <code>aac_direct</code> values, are treated as Opus Direct. * Upgrade Notes ** Update both the 3DS app and the proxy server together. ** Use the latest <code>StreaMu-Server.zip</code>; older proxy servers may not provide the required <code>/stream_opus_ogg</code> endpoint. ** 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 ** '''<code>StreaMu-Server.zip</code>''' — 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 <code>mp3d</code> uninitialized 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. == External links == * GitHub - https://github.com/imissuuuu/StreaMu * GBAtemp - https://gbatemp.net/threads/release-streamu-youtube-music-player-for-3ds.680604/
Advertising: