The output is plain text with one URL per line. If you enable 'Include channel names', each line shows the channel name followed by the URL, separated by a tab character, perfect for pasting into spreadsheets or CSV tools.
Free M3U URL Extractor
Upload a file or paste a playlist. You get the stream addresses as plain text, one per line.
Drag & drop a file here, or click to browse
Supported formats: .m3u, .m3u8, .txt
Getting the addresses out
Sometimes the metadata is the problem. You want the addresses and nothing else: to batch-test them, to feed a script, to move to another system without carrying twelve thousand logo URLs along. Paste the playlist here and that is what comes back, one URL per line, ready to redirect into a file.
Narrowing it down first
Large playlists carry groups. Filter to one before extracting and you get only that section: News, Documentaries, whatever the file happens to declare. Useful when you are testing a slice rather than the whole thing, which on a forty-thousand-entry file is the difference between a minute and an afternoon.
What you can do with the list
Pipe it into curl or ffprobe to see which addresses still answer. Feed it to a monitoring job. Use it as the input for a migration. Two output modes cover most of this: plain addresses for anything automated, or names alongside them when a human has to read the result. If you would rather not script it, the stream checker tests a whole list in the browser, and the playlist cleaner removes what fails. Single address to check? Paste it into the player.
What the two output modes are for
Addresses only, or addresses with the channel name beside them. The choice is not cosmetic, it decides what the output can be piped into.
If the list is going into a script, take the plain mode. Names are trivial to attach later from the original file and awkward to remove from a mixed one.
- Plain addresses are one URL per line and nothing else, which is what
xargs,curlandffprobeexpect on standard input. Anything else in the line has to be stripped first. - Names alongside keeps the channel title with its address, which is what you want when a human has to look at the result and decide something.
Filtering before you extract
A forty thousand entry playlist extracts to forty thousand lines, and almost nobody wants that. Filter to a group first and the output narrows to the section you actually care about.
This matters more than it sounds on large files. Testing every address in a full list is an afternoon of requests. Testing one group is a minute, and the answer is usually the same, because a dead source tends to be dead across the whole group rather than in scattered entries.
What comes back, and what does not
The extractor reads the file. It makes no requests to any of the addresses in it, which is deliberate: extracting is not testing, and a list of forty thousand URLs is not something to fire at anyone’s server as a side effect of opening a file.
- Duplicates survive. The same address listed under three groups comes back three times, because removing them is a separate decision.
- Dead addresses survive. Nothing here knows whether a URL answers.
- Order is preserved. The output follows the file, which makes it easy to line up against the original.
- Non-stream lines are dropped. Comments, tags and blank lines do not appear in the output.
Frequently Asked Questions
What format is the output?
Can I filter URLs by category or group?
Yes, use the 'Filter by group' dropdown to select a specific group from your playlist. Only channels belonging to that group will be included in the extraction.
Can I pipe the output into a script?
Absolutely. The plain text output (one URL per line) is designed for exactly this purpose. Feed it into shell scripts with curl, ffprobe, or any command-line tool. The format works with standard Unix tools like xargs, awk, and grep for batch processing.
How big a file can it handle?
Yes. The tool processes playlists with thousands of channels efficiently. Large files are parsed using optimized routines, and the extraction itself is nearly instant since it only reads the URL from each channel entry.
Does extracting the addresses download anything?
No. The playlist is parsed in your browser and the addresses are read as text. No request is made to any of them, so nothing is downloaded and no server learns you looked.
Can I extract from a playlist URL rather than a file?
Yes, if the server hosting it permits a browser to read it. Many do not send the cross-origin header a browser requires, in which case the fetch fails and downloading the file first and uploading it here is the way round.
Related Tools
You might also find these tools useful: