A native macOS app that streams YouTube audio to your local network. Perfect for playing music on vintage Macs like iMac G4.
- Menu bar app - Quick access from the menu bar
- Full window UI - Queue management, now playing, history
- Network streaming - Serve audio to any device on your network
- YouTube support - Paste any YouTube URL
- Open Xcode
- File → New → Project
- Select macOS → App
- Product Name:
YTStreamer - Interface: XIB (we use programmatic UI)
- Language: Swift
- Uncheck "Use Core Data"
Copy the contents of YTStreamer/ into your Xcode project:
YTStreamer/
├── App/
│ └── AppDelegate.swift
├── Views/
│ ├── MenuBarViewController.swift
│ └── MainWindowController.swift
├── Models/
│ ├── Track.swift
│ └── History.swift
├── Services/
│ ├── YouTubeDownloader.swift
│ ├── AudioConverter.swift
│ ├── HTTPServer.swift
│ ├── NetworkInfo.swift
│ └── StreamManager.swift
├── Utilities/
│ ├── ProcessRunner.swift
│ └── BundledTools.swift
├── Resources/
│ ├── yt-dlp (download separately)
│ └── ffmpeg (download separately)
├── Info.plist
└── YTStreamer.entitlements
Download and add to Resources/:
yt-dlp:
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos -o Resources/yt-dlp
chmod +x Resources/yt-dlpffmpeg:
# Download from https://evermeet.cx/ffmpeg/
# Or use Homebrew version temporarily
cp /opt/homebrew/bin/ffmpeg Resources/ffmpeg- Delete default
Main.storyboardandViewController.swift - In Info.plist: Remove
NSMainStoryboardFileentry - Add
@mainattribute toAppDelegate.swift(already included) - Add binaries to Copy Bundle Resources build phase
- Select project → Signing & Capabilities
- Disable sandbox (required for running bundled binaries)
- Add entitlements file to build settings
Press ⌘R to build and run!
- Click the menu bar icon (🎵)
- Paste a YouTube URL
- Wait for download & conversion
- Copy the stream URL
- Open on any device:
http://YOUR_IP:8000/stream.mp3
┌─────────────────┐
│ AppDelegate │ ← Menu bar setup
└────────┬────────┘
│
┌────┴────┐
│ │
┌───┴───┐ ┌───┴───┐
│Popover│ │Window │ ← UI
└───┬───┘ └───┬───┘
│ │
└────┬────┘
│
┌────────┴────────┐
│ StreamManager │ ← Coordinates everything
└────────┬────────┘
│
┌────┴────┐
│ │
┌───┴───┐ ┌───┴───┐
│yt-dlp │ │ffmpeg │ ← Download & convert
└───────┘ └───────┘
│
┌────┴────┐
│HTTPServer│ ← Serve to network
└──────────┘
- macOS 12.0+
- Xcode 14+
- yt-dlp binary
- ffmpeg binary
MIT