Find answers to common questions below. Can't find what you need? Email us and we'll get back to you within 2–3 business days.
Pulse Player is a native Android media player built entirely in Kotlin with Jetpack Compose. It lets you stream M3U8 HLS and MP4 URLs directly, download them to your device, add custom HTTP headers for authenticated streams, attach external subtitle tracks, and manage a local media library — all without mid-roll ads during playback.
Pulse Player requires Android 7.0 (Nougat) or higher. For the best experience we recommend Android 10 or later.
Yes, completely free. The app is funded by a non-intrusive coin reward system — you voluntarily watch one short rewarded ad to earn coins, which are used for network streaming and downloads. Local files and anything already downloaded play back forever at zero cost.
The easiest way is through the Google Play Store — search for Pulse Player or use the Download button on this page. If you prefer a direct APK install, download the latest release from our GitHub releases page and enable 'Install unknown apps' in your Android settings for the browser or file manager you use.
Coins are Pulse Player's in-app currency. Streaming a network URL or starting a new download costs a small number of coins. You earn coins by choosing to watch a single short rewarded ad — you're always in control of when that happens. Coins also let you activate a 24-hour ad-free pass.
Never. Playback is completely ad-free. The only ads in the app are rewarded ads you choose to watch in order to earn coins. There are no banners, interstitials, or mid-roll ads inside the player.
The app pauses gracefully and shows you the option to earn more coins by watching a rewarded ad. It will never force an ad on you or interrupt a stream mid-playback.
No. Once a file is saved to your device it costs zero coins to play back. Your downloaded library is permanently free to rewatch, with no expiry and no recurring cost.
Pulse Player supports M3U8 HLS (live and VOD) and MP4 streams over HTTP/HTTPS. Custom HTTP headers are supported for authenticated streams. Local MP4 files from device storage are also supported and always play free.
Yes. In the URL input screen, you can add any number of custom HTTP headers (such as Authorization, Referer, or User-Agent) to authenticate with streams that require them.
Paste your M3U8 or MP4 URL, then tap Download instead of Play. You'll be prompted to choose a quality (1080p, 720p, 480p) before the download begins. Downloaded files appear in the Downloads library and play back for free forever.
Yes. You can attach an external subtitle file (SRT, VTT) to any stream from the URL input screen. Subtitles are rendered inside the player during playback.
Yes. Pulse Player registers as an Android intent handler. In any browser or app, tap Share and select Pulse Player from the list. The URL opens directly in the player.
Pulse Player does not collect personally identifiable information. We use Firebase Analytics for anonymous usage statistics, Firebase Crashlytics for crash reports, and Google AdMob for advertising. None of these require you to create an account or submit personal information. See our Privacy Policy for full details.
No. Files you open or download stay entirely on your device. Pulse Player never uploads, transmits, or accesses your media content remotely.
On your Android device go to Settings → Google → Ads → Opt out of Ads Personalization. You can also manage your ad preferences at adssettings.google.com.
First verify the URL is a valid, publicly accessible M3U8 or MP4 link. If the stream requires authentication, make sure you've added the correct HTTP headers. Check your internet connection. If the stream plays in a browser but not in Pulse, it may use a proprietary DRM that is not supported.
Check your internet connection and available storage space. Cancel the stuck download and try again. For large HLS streams, a stable Wi-Fi connection is recommended. If a specific URL consistently fails to download, it may use server-side protections that prevent file download.
Crash reports are automatically sent to our team via Firebase Crashlytics. If you'd like to report a specific issue with more detail, email us at [email protected] with your device model, Android version, and a description of what happened.
Email us at [email protected]. We aim to respond within 2–3 business days.