How Free-TV/IPTV Handles HD vs SD Channel Designation Using the Ⓢ Marker

The Free-TV/IPTV repository marks standard-definition channels with a Ⓢ (circled S) symbol in the channel name, while unmarked channels are assumed to be high-definition (HD).

The Free-TV/IPTV project aggregates thousands of public IPTV channels into a single playlist.m3u8 file sourced from Markdown tables. Understanding how this open-source repository distinguishes between HD and SD streams is essential for users who want to filter channels by quality or verify stream availability before playback. The Ⓢ marker serves as the primary mechanism for IPTV playlist HD vs SD channel designation across the entire dataset.

The Ⓢ Marker Convention for SD Channels

According to the repository's documentation in README.md (lines 45-46), the rule is explicit: "Channels which are not in HD are marked with an Ⓢ." This simple convention means any channel entry containing the Ⓢ symbol is confirmed to be standard-definition only, while channels lacking this designation are assumed to be available in high-definition. The marker is manually applied by maintainers when verifying stream quality.

Implementation in Playlist Generation

The HD vs SD designation flows from source documentation through to the final M3U8 output without transformation or metadata stripping.

Markdown Source Files (lists/*.md)

Channel data resides in country-specific Markdown files within the lists/ directory. Maintainers append Ⓢ directly to channel names when confirming a stream lacks an HD option. For example, in lists/venezuela.md, the Vale TV entry appears as:

| 7 | Vale TV Ⓢ | [>](https://vcp2.myplaytv.com/valetv/valetv/playlist.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/9/98/Logo_de_VALE_TV.png"/> | ValeTV.ve |

The Ⓢ symbol appears immediately after the channel name, signaling to other maintainers and automated tools that this specific stream is SD-only.

Playlist Builder Script (make_playlist.py)

When make_playlist.py processes these Markdown tables to generate the final playlist.m3u8, it copies the channel name exactly as written. The script does not strip quality markers or add separate metadata tags for resolution. Instead, the Ⓢ remains embedded in the channel name throughout the transformation process.

Final M3U8 Output

The generated entry in playlist.m3u8 preserves the marker in both the tvg-name attribute and the display title:

#EXTINF:-1 tvg-id="ValeTV.ve" tvg-name="Vale TV Ⓢ" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/9/98/Logo_de_VALE_TV.png",Vale TV Ⓢ
https://vcp2.myplaytv.com/valetv/valetv/playlist.m3u8

This ensures that end-user IPTV clients display the quality indicator directly in channel listings, allowing viewers to identify SD streams without loading the channel first.

Practical Applications of the Ⓢ Marker

This HD vs SD channel designation system enables several workflows:

  • Manual filtering: Users scanning playlist.m3u8 can search for "Ⓢ" to quickly locate or exclude SD channels
  • Script filtering: Automated tools can parse the M3U8 and filter channels based on the presence of the Ⓢ symbol in the tvg-name field
  • Maintenance workflows: Contributors can identify which channels still need HD sourcing by scanning the Markdown files for the Ⓢ designation

Summary

  • The Ⓢ marker indicates standard-definition channels; its absence implies HD availability
  • The convention is documented in README.md and implemented across all lists/*.md files
  • make_playlist.py preserves the Ⓢ symbol in the final playlist.m3u8 output within the channel name
  • Users can filter or identify SD streams by searching for the Ⓢ character in the M3U8 file

Frequently Asked Questions

What does the Ⓢ symbol mean in Free-TV/IPTV playlists?

The Ⓢ symbol indicates that a specific channel stream is available in standard-definition (SD) only. According to the repository's README.md, channels that are not available in HD are marked with this circled S symbol, allowing users to distinguish between SD and HD streams at a glance.

How can I filter out SD channels from the playlist?

You can filter the playlist.m3u8 file by excluding lines containing the Ⓢ character. Since make_playlist.py embeds the marker directly into the tvg-name attribute and display title, simple text filtering tools like grep -v "Ⓢ" playlist.m3u8 will remove SD channels from your selection.

Does the Ⓢ marker affect the actual video stream quality?

No, the Ⓢ marker is purely informational and does not alter the video stream itself. It is simply a character appended to the channel name in the source Markdown files that persists through to the generated M3U8, serving as a visual indicator for users and maintainers.

Where is the HD vs SD designation documented?

The convention is documented in the repository's README.md at lines 45-46, which states: "Channels which are not in HD are marked with an Ⓢ." This rule is applied consistently across all country-specific Markdown files in the lists/ directory.

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 →