Project

General

Profile

Feature #4494

Full metadata in M3U files for IPTV

Added by Diego Rivera about 2 years ago. Updated about 2 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
IPTV
Target version:
-
Start date:
2017-07-20
Due date:
% Done:

0%

Estimated time:

Description

Hi!

TVH supports importing of M3U lists to provide IPTV muxes via scanning, which is all fine and good until one realizes that there's no (documented) support for additional IPTV metadata (channel number, channel name, xmltv channel id, icon url, language, tags, etc.) via #EXTINF: and #EXTTV: tags. For instance:

#EXTINF:duration,[channel number - ]channel name
#EXTTV:[tag1,tag2,...,tagN];lang;xmltv_id[;icon_url]
udp://ip-address:port/path?query

If this functionality is indeed supported, it's completely undocumented (at least my efforts to find any documentation have failed spectacularly).

Can we add this support? If, instead, it's already there, can we offer up clear and concise documentation on how the supported metadata can be specified?

To be fair, this exists: https://github.com/grudolf/m3u2hts, and we can use that. However, ideally TVH should be able to perform this task internally for completeness, and also to cover the event of any future change of channel definition structures.

Thanks!

History

#1

Updated by Diego Rivera about 2 years ago

Ok so I was able to piece together some information from other forum posts as well as reading the source code. Here it is:

#EXTINF: supports an "extended syntax" wherein multiple variables can be specified like so:

#EXTM3U
#EXTINF:-1 var1="val1" var2="val2" var3="val3" ... varN="valN",Channel-Name
url-data

The variable values can be quoted or not (i.e. var1=val1 is the same as var1="val1").

These are the variables I've found are supported by the IPTV Auto component:

  • tvh-chnum : the channel number
  • m3u-name : the channel name (can be left blank and everything after the first comma (,) is used
  • tvg-logo : the URL (relative or absolute) for the channel's icon (takes precedence ahead of logo if both are provided)
  • logo : another icon - used if tvg-logo is not specified, but ignored if it is
  • tvg-id : the EPG channel ID
  • tvh-epg : the EPG fetch mode. The following values are supported:
    • 0 / none / disable / off : disable EPG fetching
    • 1 / all / enable / on : enable EPG fetching
    • force : force EPG fetching
    • eit : only EIT
    • uk_freesat : only UK Freesat
    • uk_freeview : only UK Freeview
    • viasat_baltic : only Viasat Baltic
    • opentv_sky_uk : only OpenTV Sky UK
    • opentv_sky_italia : only OpenTV Sky Italia
    • opentv_sky_ausat : only OpenTV Sky Ausat
    • bulsatcom_39e : only Bulsatcom 39E
    • psip : only PSIP (ATSC)
  • tvh-tags : any channel tags to be applied (separated by |)
  • group-title : any channel tags to use if tvh-tags is not specified (same syntax, ignored if it is)

Using these values I was able to solve my problem. Hopefully others will find this information and more easily build out their IPTV playlists.

Cheers!

#2

Updated by Mark Clarkstone about 2 years ago

Diego Rivera wrote:

Ok so I was able to piece together some information from other forum posts as well as reading the source code. Here it is:

#EXTINF: supports an "extended syntax" wherein multiple variables can be specified like so:

[...]

The variable values can be quoted or not (i.e. var1=val1 is the same as var1="val1").

These are the variables I've found are supported by the IPTV Auto component:

  • tvh-chnum : the channel number
  • m3u-name : the channel name (can be left blank and everything after the first comma (,) is used
  • tvg-logo : the URL (relative or absolute) for the channel's icon (takes precedence ahead of logo if both are provided)
  • logo : another icon - used if tvg-logo is not specified, but ignored if it is
  • tvg-id : the EPG channel ID
  • tvh-epg : the EPG fetch mode. The following values are supported:
    • 0 / none / disable / off : disable EPG fetching
    • 1 / all / enable / on : enable EPG fetching
    • force : force EPG fetching
    • eit : only EIT
    • uk_freesat : only UK Freesat
    • uk_freeview : only UK Freeview
    • viasat_baltic : only Viasat Baltic
    • opentv_sky_uk : only OpenTV Sky UK
    • opentv_sky_italia : only OpenTV Sky Italia
    • opentv_sky_ausat : only OpenTV Sky Ausat
    • bulsatcom_39e : only Bulsatcom 39E
    • psip : only PSIP (ATSC)
  • tvh-tags : any channel tags to be applied (separated by |)
  • group-title : any channel tags to use if tvh-tags is not specified (same syntax, ignored if it is)

Using these values I was able to solve my problem. Hopefully others will find this information and more easily build out their IPTV playlists.

Cheers!

Thanks for this, I'll add it to the docs!

<doc>

#3

Updated by Diego Rivera about 2 years ago

That said, it'd probably be a good idea to add support for the #EXTTV tag, since from what I was able to find it seems to be in widespread use. #EXTTV supports this syntax:

#EXTTV:[tag1,tag2,...,tagN];language;epg_id[;icon_url]

This might make life simpler than having to generate a single "weird" (i.e. non-standard) EXTINF tag.

Thoughts?

Also available in: Atom PDF