Replace YouTube Play Lists with Local M3U8 Playlists via Sideloading
Updated 2026-10-28
Why replace built-in YouTube lists on Android TV
Android TV devices often come with curated YouTube playlists baked into the launcher, and those lists can become stale, unavailable, or keep reordering to content you did not ask for. Removing them and loading your own M3U8 playlists gives you a stable, offline-friendly home screen that works without relying on Google’s recommendation engine. The process uses sideloading: you drop a small media collection and an M3U8 playlist file onto the device and point the launcher at them.
Sideloading is attractive here because the official YouTube app does not expose a straightforward way to export or replace its playlists, and the web player still requires a persistent account and occasional sign-in prompts. A local M3U8 playlist sidesteps account data on the TV and keeps your content entirely yours.
How the launcher side-loads M3U8 playlists on Android TV
The CleanYourTV launcher (or any Android TV launcher with M3U8 support, such as Leanback with MPD support or a custom MPD-compliant overlay) lets you define a playlist path in a simple config file. Once the playlist is reachable, the launcher reads it and builds the TV guide-style grid you see in the UI.
Steps:
- Obtain a clean M3U8 playlist. You can generate one from YouTube’s “Cast” or from a browser playback of a video, but the most reliable method is recording a short segment with a tool like
ffmpeg -ss 00:00:10 -i input.mp4 -c copy -f m3u8 output.m3u8while watching the desired video. - Transfer the
.m3u8file to the TV over USB or via a network share (SMB/NFS). The file should be placed in a known location, for example/data/local/tmp/playlist.m3u8. - Point the launcher’s MPD/M3U8 source to that path. In CleanYourTV’s settings, look for “Custom MPD” or “Local Playlist,” enter the absolute path, and reload.
- The launcher redraws the grid from the M3U8 playlist. Each source becomes a tile that launches the linked URL in the background audio track.
Key behavior worth noting: the launcher re-parses the playlist every time you open the TV app. Deleting the file from the source removes the corresponding tile immediately, and adding or moving a path updates the layout without a restart.
Configuring the MPD source and common pitfalls
CleanYourTV surfaces the MPD source as a plain text field, so editing it involves opening the launcher’s settings panel, selecting “Advanced” → “Custom MPD,” and pasting a URL-like path. Make sure the path is fully qualified (for example file:///data/local/tmp/playlist.m3u8) or relative to the loader’s root as documented in the launcher’s own wiki.
A frequent mistake is using a relative path and then forgetting to include the leading file://. Another is mixing Windows and Linux line endings in the playlist file. M3U8 parsers on Android are sensitive to the #EXTM3U header and to UTF-8 encoding; avoid BOMs and extra whitespace around the first #EXTINF: tag. If the playlist does not load, try removing a single item and confirming whether the parser errors out on a malformed entry—it usually means the entry is missing the #EXTINF length specification or contains an illegal character sequence.
If the tile shows nothing, verify that the underlying HTTP source serves the playlist with Content-Type: application/x-mpegURL (or that the loader recognizes the M3U8 format). Some third-party launchers require the extension .m3u and will silently fall back to the YouTube default lists if the MPD plug-in is missing entirely.
Troubleshooting and when to stop sideloading
If the launcher keeps reverting to the YouTube default after an update, the update may have overwritten your custom MPD path. Pull the change out of the settings backup, disable auto-updates for the launcher, and re-enable them only after confirming the M3U8 source stays intact. Also make sure the launcher version itself supports M3U8; older versions of CleanYourTV shipped without MPD parsing and will ignore your input.
When it is no longer worth it: if your playlist exceeds two hours and you find yourself re-adding entries manually, consider switching to a static HTML player overlay (like a lightweight webview container) that hosts the M3U8 list in a browser window. That approach avoids the loader’s MPD layer entirely but adds a browser chrome step each time you switch shows.
Using local M3U8 playlists instead of the bundled YouTube lists on Android TV means you control what appears on the home screen, you can clear caches and playlists, and you do not need to sign in to YouTube on the TV. For users who want a clean, account-free viewing surface, sideloading a local M3U8 playlist into the CleanYourTV launcher is the simplest path that actually works.
Related reading: more Android TV notes
Read next
How to Automate Weekly Sideloading Updates on Android TV Media Panels
Learn how to set up automated sideloading of media panel apps on Android TV. Keep your panel extensions fresh without manual effort.
Automating Nightly Sideloading of Open-Source Android TV Packages
Learn how to script nightly sideloads of open-source Android TV packages on Google TV using ADB and a companion script to save time and keep builds fresh.