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.
![]() |
![]() |
![]() |
![]() |
![]() |
AVMutableComposition — no black frames, audio preserved on every switchSmartTubeIOS/ 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.xcworkspace
The 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 both SmartTubeApp/SmartTubeApp/ (iOS) and SmartTubeApp/Smart Tube/ (tvOS) (create a free Firebase project at console.firebase.google.com — only Analytics and Crashlytics are used).
All of these files are gitignored (via glob rules matching any GoogleService-Info.plist or Secrets.xcconfig) and will never be committed; setup.sh installs them for you if you have access to the private config repo.
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.
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|