How to Mark IPTV Channels as HD vs SD Quality in the Free-TV Playlist

SD channels are marked by appending the Unicode symbol Ⓢ to the channel name in the source Markdown files, while HD channels leave the name plain or optionally include "HD".

The Free-TV/IPTV repository provides a straightforward method to mark IPTV channels as HD vs SD quality using a simple naming convention. Rather than using separate metadata attributes, the make_playlist.py script relies on special characters embedded directly in channel names to indicate resolution. This approach ensures the quality indicator appears in the final M3U playlist without requiring additional parsing logic.

Understanding the Quality Marker Convention

In the Free-TV/IPTV project, video resolution is not stored as a separate attribute. Instead, the symbol (Unicode U+24C8 “CIRCLED LATIN SMALL S”) appended to a channel name signals standard definition quality.

According to the repository's documentation in README.md (lines 45-48), this convention distinguishes SD broadcasts from HD sources. When the playlist generator processes channel lists, it copies names verbatim into the M3U output, preserving any quality markers present in the source files.

How to Apply HD vs SD Markers

Editing Channel List Files

Channel definitions reside in Markdown files within the lists/ directory (e.g., lists/usa.md). To mark a channel as SD, append the symbol to the channel name in the table:

| # | Channel        | Link | Logo | EPG id |

|---|----------------|------|------|--------|
| 1 | MyChannel Ⓢ   | [>](https://example.com/stream.m3u8) | logo.png | mychannel.us |

For HD channels, simply omit the symbol. You may optionally append "HD" to the name for clarity, though this is not required by the generator:

| 2 | MyHDChannel   | [>](https://example.com/hdstream.m3u8) | hdlogo.png | myhdchannel.us |

The Generation Process

The make_playlist.py script reads these Markdown tables and generates the final M3U playlist. It copies the channel name exactly as written, meaning the marker appears unchanged in the output playlist.m3u8 file.

For example, the SD entry above generates:

#EXTINF:-1 tvg-name="MyChannel Ⓢ" tvg-logo="logo.png" group-title="USA",MyChannel Ⓢ
https://example.com/stream.m3u8

While the HD entry produces:

#EXTINF:-1 tvg-name="MyHDChannel" tvg-logo="hdlogo.png" group-title="USA",MyHDChannel
https://example.com/hdstream.m3u8

Summary

  • SD channels require the symbol appended to the channel name in lists/*.md files.
  • HD channels use plain names without the circled S symbol.
  • The make_playlist.py script preserves these markers verbatim when generating the M3U playlist.
  • This convention is documented in README.md lines 45-48 and applies across all regional channel lists.

Frequently Asked Questions

What symbol indicates SD quality in Free-TV playlists?

The symbol (Unicode U+24C8) indicates standard definition quality. When appended to a channel name in the source Markdown files, it appears in the generated M3U playlist, allowing users to identify SD streams at a glance.

Can I use a text label like "SD" instead of the Ⓢ symbol?

No. The make_playlist.py script copies channel names exactly as written, but the project's documented convention specifically uses the circled S symbol. Using plain text "SD" would deviate from the standard format described in the repository's README.

Does the make_playlist.py script modify channel names?

No. The script reads channel names from the Markdown list files and copies them verbatim into the M3U output. It does not strip, add, or transform quality markers, ensuring that any symbols present in the source appear unchanged in the final playlist.

Where is the quality marker documented in the repository?

The quality marker convention is documented in README.md at lines 45-48, which explains the "Format" section and describes how the symbol identifies non-HD channels in the playlist structure.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →