Profile
Back to NewsBack
GitHub Trending 5 min
Reader Mode
mikehouse/Apple-TV-Player: Apple TV iOS iPadOS macOS tvOS m3u m3u8 IPTV Player free open source

mikehouse/Apple-TV-Player: Apple TV iOS iPadOS macOS tvOS m3u m3u8 IPTV Player free open source

13 hours ago

codecov</a>

IPTV Player

Bro IPTV Player is a free, fast, private, and simple way to watch M3U playlists on iPhone, iPad, Mac, and Apple TV.

Download on the App Store

Features:

  • Works across iOS, iPadOS, macOS, and tvOS
  • Supports M3U and M3U8 playlists stored locally or accessed remotely.
  • Supports EPG
  • Picture in Picture support
  • 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)

‼️ Important:

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.

----

Apple TV

----

macOS

----

iPad

----

For Developers

  • Xcode 26.6+
  • Swift 6.2+
  • SwiftPM
  • Ruby 3+ (fastlane)
  • For now there is no CI/CD pipeline
bundle install

IntelliJ IDEA Last Working Setup

  • IntelliJ IDEA 2026.2.3
  • Kotlin Multiplatform 262.10968.207-IJ
  • Xcode 27.1 (27A9275)
  • MacOS 27.2 (Golden Gate)
Starting with IntelliJ IDEA 2026.3 and Android Studio Rabbit 2 | 2026.2.2, we’re discontinuing Swift language IDE features in the Kotlin Multiplatform (KMP) plugin.

App Signing

  • 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)

Build from Xcode

  • 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

Unit Testing

  • iOS bundle exec fastlane ios run_unit_tests requires iOS 27.0 Simulator Runtime
  • tvOS bundle exec fastlane tvos run_unit_tests requires tvOS 27.0 Simulator Runtime
  • macOS bundle exec fastlane mac run_unit_tests runs on current machine

UI Testing

Before any UI Tests must run a python local server that will provide mock data to the app.

./scripts/tests/server.py

iOS

  • iOS iPhone bundle exec fastlane ios run_ui_snapshots_tests_iphone_27 requires iOS 27.0 Simulator Runtime
  • iOS iPad bundle exec fastlane ios run_ui_snapshots_tests_ipad_27 requires iOS 27.0 Simulator Runtime
  • iOS iPhone bundle exec fastlane ios run_ui_snapshots_tests_iphone_26 requires iOS 26.5 Simulator Runtime
  • iOS iPad bundle exec fastlane ios run_ui_snapshots_tests_ipad_26 requires iOS 26.5 Simulator Runtime
  • iOS iPhone bundle exec fastlane ios run_ui_snapshots_tests_iphone_18 requires iOS 18.6 Simulator Runtime
  • iOS iPad bundle exec fastlane ios run_ui_snapshots_tests_ipad_18 requires iOS 18.6 Simulator Runtime

tvOS

  • tvOS bundle exec fastlane tvos run_ui_snapshots_tests_appletv_27 requires tvOS 27.0 Simulator Runtime
  • tvOS bundle exec fastlane tvos run_ui_snapshots_tests_appletv_26 requires tvOS 26.5 Simulator Runtime
  • tvOS bundle exec fastlane tvos run_ui_snapshots_tests_appletv_18 requires tvOS 18.5 Simulator Runtime

macOS

Screenshots in repo created on macOS 27.2 with macOS SDK 27.2

bundle exec fastlane mac run_ui_snapshots_tests_macos

Firebase Distribution

  • iOS bundle exec fastlane ios make_firebase_release

App Store Connect Distribution

  1. Upload the app to testflight
  2. 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
Before using these lanes, make sure you have these setups:
  1. Certificate Trust is set to "Use System Defaults"
  2. MARKETING_VERSION is incremented
  3. CURRENT_PROJECT_VERSION is reset or incremented
  4. You have "Apple Distribution" certificate in the keychain for iOS and tvOS builds
  5. You have a "3rd Party Mac Developer Installer" certificate in the keychain for macOS build to distribute it via macOS App Store

App Store Connect Snapshots and Metadata

Regenerate snapshots for App Store Connect when the UI changes significantly

Must use the latest Simulator Runtime, now it is 26.5

  • iOS iPhone bundle exec fastlane ios make_app_store_snapshots_iphone_26 requires iOS 26 Simulator Runtime
  • iOS iPad bundle exec fastlane ios make_app_store_snapshots_ipad_26 requires iOS 26 Simulator Runtime
  • tvOS bundle exec fastlane tvos make_app_store_snapshots_appletv_26 requires tvOS 26 Simulator Runtime
For macOS must disable sandbox via Xcode Build Settings to allow using a test database file.
  • macOS bundle exec fastlane mac make_app_store_snapshots_macos requires macOS SDK 26 Simulator Runtime and macOS 26 machine

Upload snapshots to App Store Connect of new made or updated

  • iOS bundle exec fastlane ios upload_appstore_screenshots
  • tvOS bundle exec fastlane tvos upload_appstore_screenshots
  • macOS bundle exec fastlane mac upload_appstore_screenshots

If you changed metadata (description, keywords, etc.) upload it to App Store Connect

  • 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.

Chat with me