Bro IPTV Player is a free, fast, private, and simple way to watch M3U playlists on iPhone, iPad, Mac, and Apple TV.
Features:
- Works across iOS, iPadOS, macOS, and tvOS
- Supports M3U and M3U8 playlists stored locally or accessed remotely.
- Supports EPG
- Protect playlists with a PIN for extra privacy
- Saved playlists and app data stay on your device and are never sent to our servers (actually we do not have servers at all)
- Share playlists with other devices
- Free
- No account or registration required
- No ads, no tracking (only Firebase Crashlytics to collect crash reports)
- Open source (this repo contains the all application source code)
- 15 languages supported (ar, de, es, fr, hi, id, it, ja, ko, pt-BR, ru, th, tr, vi, zh-Hans)
Bro IPTV Player does not provide, host, sell, or include any channels, media, or playlists. The app only plays content added by the user, and you are responsible for having the rights to access that content.
- Xcode 26.5+
- Swift 6.2+
- SwiftPM
- Ruby 3+ (
fastlane) - For now there is no CI/CD pipeline
bundle install- Project is set for manual signing (you need to change it if you build for your own real device)
- Build for simulators you do not need to sign the app
- fastlane uses signing identities from
./.secrets/directory (not committed to git)
- Open a project in Xcode
- For the App scheme select
Signing and Capabilities - Set your
Bundle Identifier - Enable
Automatically manage signing - Xcode will do signing for your Team and Bundle Identifier
- iOS
bundle exec fastlane ios run_unit_testsrequires iOS 26.5 Simulator Runtime - tvOS
bundle exec fastlane tvos run_unit_testsrequires tvOS 26.5 Simulator Runtime - macOS
bundle exec fastlane mac run_unit_testsruns on current machine
Before any UI Tests must run a python local server that will provide mock data to the app.
./scripts/tests/server.py- iOS iPhone
bundle exec fastlane ios run_ui_snapshots_tests_iphone_26requires iOS 26.5 Simulator Runtime - iOS iPad
bundle exec fastlane ios run_ui_snapshots_tests_ipad_26requires iOS 26.5 Simulator Runtime - iOS iPhone
bundle exec fastlane ios run_ui_snapshots_tests_iphone_18requires iOS 18.6 Simulator Runtime - iOS iPad
bundle exec fastlane ios run_ui_snapshots_tests_ipad_18requires iOS 18.6 Simulator Runtime
- tvOS
bundle exec fastlane tvos run_ui_snapshots_tests_appletv_26requires tvOS 26.5 Simulator Runtime - tvOS
bundle exec fastlane tvos run_ui_snapshots_tests_appletv_18requires tvOS 18.5 Simulator Runtime
Screenshots in repo created on macOS 26.5 with macOS SDK 26.5
bundle exec fastlane mac run_ui_snapshots_tests_macos- iOS
bundle exec fastlane ios make_firebase_release
- Upload the app to testflight
- Add that build to the distribution group to send to review
- iOS
bundle exec fastlane ios make_testflight_release - tvOS
bundle exec fastlane tvos make_testflight_release - macOS
bundle exec fastlane mac make_testflight_release
Must use the latest Simulator Runtime, now it is 26.4
- iOS iPhone
bundle exec fastlane ios make_app_store_snapshots_iphone_26_4requires iOS 26.4 Simulator Runtime - iOS iPad
bundle exec fastlane ios make_app_store_snapshots_ipad_26_4requires iOS 26.4 Simulator Runtime - tvOS
bundle exec fastlane tvos make_app_store_snapshots_appletv_26_4requires tvOS 26.4 Simulator Runtime - macOS
bundle exec fastlane tvos make_app_store_snapshots_macosrequires macOS SDK 26.4 Simulator Runtime and macOS 26 machine
- iOS
bundle exec fastlane ios upload_appstore_screenshots - tvOS
bundle exec fastlane tvos upload_appstore_screenshots - macOS
bundle exec fastlane mac upload_appstore_screenshots
- iOS
bundle exec fastlane ios upload_appstore_metadata - tvOS
bundle exec fastlane tvos upload_appstore_metadata - macOS
bundle exec fastlane mac upload_appstore_metadata
If you have any questions or ideas, please open an issue on GitHub.


