scenario_m3u_provider - euzu/tuliprox GitHub Wiki
api: {host: 0.0.0.0, port: 8901, web_root: ./web}
log_level: info
working_dir: ./data
#schedule: 0  0  8,18  *  *  *  *
web_ui_enabled: true
web_auth:
  enabled: false
  secret: 77ac1ca497ba7153ea11a4d5695f7024
  issuer: m3u_filter
  userfile: user.txt
#messaging:
#  notify_on:
#    - info
#    - stats
#    - error
#  telegram:
#    bot_token: '<your telegram bot token'
#    chat_ids:
#      - <yout telegram chat id>This is a basic config.yml file. The Web-Authentication is disabled.
schedule: 0  0  8,18  *  *  *  *  Means it will update the playlist twice at 08:00 and 18:00.
But this depends on your docker time settings, it can be that your docker container has a different time.
If you dont want web-authentication because you use it only in your private network then skip
to next section source.yml. If you want to enable, you need to set
web_auth:
  enabled: trueAnd you need to generate a password with
./m3u-filter --genpwdThe created password should be set in the user.txt.
The format is username: password
johndoe: $argon2id$v=19$m=19456,t=2,p=1$ZnY1NUNYU215Q1dFQ3V0MG54Wlh2T1ZRZ3UzQ0JzMTN6Tzc4cmdFSHQ3ZnY1YzRyOEMxempqblZsanJlODZZaA$JvvXhUlHDaptb86xiPNjTo1Yt/IcjLfOwlaa/uQIkT0
templates:
- name: moviestar_group
  value: 'Group ~ "^ES\s+MOVISTAR\+$"'
- name: fhd_channels
  value: 'Name ~ ".*FHD$"'
- name: not_working
  value: >-
        (Name ~ "ES\:\sANTENA\s3\sFHD$"
        OR 
        Name ~ "ES\:\sTELECINCO\sFHD$")
- name: working_hd
  value: >-
        (Name ~ "ES\:\sANTENA\s3\sHD$"
        OR 
        Name ~ "ES\:\sTELECINCO\sHD$")
- name: moviestar
  value: >-
        !moviestar_group!
        AND 
        ((!fhd_channels! AND Not(!not_working!)) OR !working_hd!)
sources:
- inputs:
  - type: m3u
    url: '<PROVIDER_URL>'
#    epg_url: '<PROVIDER_EPG_URL>'
    name: iptv_example
  targets:
  - name: all_channels
    output:
      - type: m3u
        filename: playlist.m3u
    filter: "!moviestar!"
    options: {ignore_logo: false}
    mapping:
      - group_quality
The above example filters one group and replaces two channels with the HD quality.
First you need to define your filter templates. The following example filters everything (this is not what you want).
templates:
- name: ALL_CHANNEL
  value: 'Group ~ ".*"'You need to set the right m3u url
- inputs:
  - type: m3u
    url: 'http://iptv.example.com:80/get.php?username=aa123456&password=supersecretpassword&type=m3u_plus&output=mpegts'In the example the target name is set to all_cahnnels You can give the target a more meaningful name.
If you change the name you have to change it in api_proxy.yml too, because a user has access to a target.
   targets:
  - name: all_channelsThe example mapping is optional. What it does is: it looks for channels with the ending FHD, SD, HD and groups them.
    mapping:
      - group_qualityThe name group_quality has to match the id setting in the mapping.yml.
mappings:
  templates:
    - name: quality_channel
      value: 'Name ~ ".*\s(?P<quality>F?[HS]D)$"'
  tags:
    - name: quality
      captures:
        - quality
      concat: "|"
      prefix: " ["
      suffix: "]"
  mapping:
    - id: group_quality
      match_as_ascii: true
      mapper:
        - filter: "!quality_channel!"
          pattern: "!quality_channel!"
          suffix:
            group: '<tag:quality>'
Is optional, if you dont need it, then remove the mapping section in source.yml
What it does is: it looks for channels with the ending  FHD, SD, HD and groups them.
server:
- name: default
  protocol: http
  host: <YOUR_LOCAL_IP>
  http_port: 8901
  https_port: ''
  rtmp_port: ''
  timezone: Europe/Rome
  message: Welcome to m3u-filter
- name: extern
  protocol: https
  host: <YOUR_EXTERNAL_DN_OR_IP>
  http_port: 8901
  https_port: ''
  rtmp_port: ''
  timezone: Europe/Rome
  message: Welcome to m3u-filter
user:
- target: all_channels
  credentials:
  - username: johndoe
    password: johndoe.secret
    token: E8qtpNy3txZy
    proxy: redirect
    server: defaultThis is for accessing the filtered playlists.
The default server configuration has to match your m3u-filter server.
Please set host  and port to the right values.
server:
- name: default
  protocol: http
  host: 192.168.0.100
  http_port: 8901Ignore the external server configuration if you only access your playlist in your local network.
!!!! The target name has to match the target name in source.yml !!!!
api_proxy.yml
user:
- target: all_channels  <--- !! THIS !!!
source.yml
targets:
  - name: all_channels   <--- !! THIS !!!You can define a user per target. Token is optional and can be used instead of username/password combi
user:
- target: all_channels
  credentials:
  - username: johndoe
    password: johndoe.secret
    token: E8qtpNy3txZy
    proxy: redirect
    server: defaultThe defined user can choose from the following m3u urls to access the playlist. (You need only one not all)