A native Swift/SwiftUI YouTube client for iPhone, iPad, macOS, and Apple TV.
Zero ads. SponsorBlock auto-skip. DeArrow community titles. Google sign-in. Up to 8K.
Inspired by the original SmartTube Android app.
![]() |
![]() |
![]() |
![]() |
![]() |
- Adaptive HLS and DASH streaming — up to 8K via AVPlayer; manual quality picker (144p → 4K)
- DASH adaptive quality switching via
AVMutableComposition— no black frames, audio preserved on every switch - Audio-only playback mode
- Landscape playback with one-tap orientation lock (iPhone)
- Picture-in-Picture (iOS)
- Mini-player with background audio
- Adjustable playback speed, seek interval, and sleep timer
- Previous / next video navigation
- Now Playing metadata on lock screen and Dynamic Island
- Multi-track audio selection with a preferred-language setting (original, English, dubbed, and more)
- Caption / subtitle track selection — language choice remembered across videos
- Home, Subscriptions, Shorts, History, Search, Playlists, Library
- Local subscriptions — follow channels without a Google account
- RSS channel feeds with background refresh and deduplication
- iCloud sync for subscriptions, watch state, queue, and RSS feeds
- Video publish date shown in search results and feed cards
- Zero ads, no tracking
- SponsorBlock — auto-skip with per-category controls and skip-button toast
- DeArrow community titles and thumbnails
- Google OAuth sign-in (YouTube TV device-code flow)
- Safari Web Extension — auto-redirects YouTube, Shorts, and Music links to SmartTube
- Share Extension — share YouTube links from any app directly into SmartTube
- Video downloads with live-activity progress; Downloads screen in Library
- WatchTime reporting and Like / Dislike support
- VPN / IP-block detection with a clear, non-retrying error banner
- Comments, Stats for Nerds
- iPhone & iPad — iOS 17+
- macOS — Mac Catalyst, macOS 14+ (Sonoma)
- Apple TV — tvOS 17+, full Siri Remote / d-pad navigation
SmartTubeIOS/ Swift Package — core library (models, InnerTube API, SponsorBlock, views)
SmartTubeApp/ Xcode project — app targets (iOS/iPadOS/macOS + Apple TV)
SmartTube.xcworkspace/ Xcode workspace (references both above)
| Platform | Minimum |
|---|---|
| iOS / iPadOS | 17.0 |
| macOS | 14.0 (Sonoma) |
| tvOS | 17.0 |
| Xcode | 16.0 |
| Swift | 6.0 |
git clone https://github.com/milika/SmartTubeIOS
cd SmartTubeIOS
open SmartTube.xcworkspaceThe project requires an Apple Developer Team ID and a Firebase GoogleService-Info.plist to build.
Copy SmartTubeApp/Config/Secrets.xcconfig.example to SmartTubeApp/Config/Secrets.xcconfig and fill in your Team ID:
DEVELOPMENT_TEAM = YOUR_TEAM_ID
SMARTTUBE_TV_TEAM = YOUR_TEAM_ID
Add your own GoogleService-Info.plist to SmartTubeApp/SmartTubeApp/ (create a free Firebase project at console.firebase.google.com — only Analytics and Crashlytics are used).
Both files are gitignored and will never be committed.
Pull requests are welcome. See .github/PULL_REQUEST_TEMPLATE.md for the checklist.
Please ensure Secrets.xcconfig and GoogleService-Info.plist are never included in a PR.
See CHANGELOG.md for a full version history.
If SmartTube is useful to you and you'd like to support its development, there's a Ko-fi.




