Online M3U Editor: Rename and Regroup — M3UPlaylist
Tool

M3U playlist editor

Load a playlist into a table, change the display names and groups in place, remove entries, drop duplicate URLs, sort by group, and download a file that is rebuilt from the parsed entries rather than edited as text.

Edit a playlist

0 channels loaded

Name Group Stream Remove

Nothing loaded yet.

How it edits

The editor rebuilds, it does not splice

Text editors make playlist edits look easy and then quietly break the file. You delete a URL, forget the #EXTINF line above it, and from that point every channel in the file is paired with the wrong address — a player shows the name of one channel and plays the stream of another. The error is invisible until you notice a channel is showing the wrong thing.

This editor parses the file into entries first, then writes a new file from those entries when you export. Renaming a channel changes one field; deleting an entry removes the directive line and its URL together; regrouping rewrites the group-title attribute in every matching entry. The pairing cannot drift, because the output never depends on line positions in the original.

What it preserves: every attribute it parsed, in its original form, including ones the table does not show — a catch-up window, a radio flag, a user agent. What it does not preserve: comments and blank lines between entries, since they carry no meaning for a player and are the first casualty of any rebuild.

Grouping

What a group actually is

A group is one attribute, group-title, repeated on every entry that belongs to it. There is no separate definition of a group in the file, which is why two entries that look grouped can differ by a trailing space and end up in separate categories in the player. Bulk rename is the fix for that: it matches the exact old value and rewrites it, so the result is consistent instead of nearly consistent.

Leaving the new group empty removes the attribute and drops those channels into the player's default bucket. That is sometimes what you want — a handful of channels that do not belong in any category read better ungrouped than in a group called “Other”.

Sorting is by group first, then by channel name, and it changes the order of entries in the exported file. Some players respect that order and some sort again themselves, so treat it as a tidy-up rather than a guarantee of how the list will appear.

Clean-up

Duplicates are a design decision

The remove-duplicates button compares stream URLs exactly. That catches the common case — the same address pasted twice, or a merge of two exports that overlapped — and leaves everything else alone. It will not catch the same channel served from two hosts, or the same stream with a different query string, because those are not duplicates by any rule the tool can justify.

Deciding those cases needs a person: two entries for one channel can be deliberate, such as a backup stream that only works when the main one is overloaded, or the same channel in two quality tiers. Removing them automatically would be a guess about what you want.

When you have finished, download the file and test it in your player before replacing the original. If something is wrong, the validator will usually say what, and the duplicate guide covers the cases this button deliberately skips.

Scope

What the editor changes, and what it leaves alone

The table edits three things: the display name, the group, and which entries exist. Everything else is carried through from the parsed entry when the file is rebuilt.

Editable and preserved fields
FieldIn the table
Display nameEditable, one entry at a time
group-titleEditable, including regrouping many entries at once
Stream URLNot edited here: the address is the entry's identity, which is what makes duplicate detection exact
tvg-id, tvg-logo and other attributesPreserved exactly as parsed, including ones this editor does not display
Entry orderUnchanged unless you sort by group

Because the export rebuilds each entry from its fields rather than splicing text, renaming a channel cannot unbalance a quote or detach a URL from its #EXTINF. A name containing a comma is written back as part of the name, not as a new field — the failure that makes hand-editing a playlist in a text editor risky.

Removing duplicates follows the same rule: entries are compared on the stream address alone, and the first occurrence is kept. The duplicate guide covers what that rule keeps and what it loses when the later copy carried better metadata, and the format guide explains the line pairing that makes the comparison exact in the first place.