Skip to content

Rules

Rewrite, deduplicate, and sort channels — globally or per client. This config tags sports channels, then keeps different quality tiers for different clients.

server:
  listen_addr: ":8080"
  public_url: "http://localhost:8080"

url_generator:
  secret: "your-secret-key"

playlists:
  - name: tv
    sources: "https://provider.com/tv.m3u8"
  - name: sports
    sources: "https://provider.com/sports.m3u8"

channel_rules:
  # Tag sports channels by playlist or name pattern
  - set_field:
      selector: attr/group-title
      template: "Sports"
      condition:
        or:
          - playlists: ["sports"]
          - patterns: [".*ESPN.*", ".*Fox Sports.*", ".*Sky Sports.*"]

playlist_rules:
  # Living-room TV: prefer the highest available quality
  - remove_duplicates:
      patterns: ["4K", "FHD", "HD", "SD"]
      condition:
        clients: ["living-room"]

  # Mobile: prefer the lowest quality to save bandwidth
  - remove_duplicates:
      patterns: ["SD", "HD", "FHD", "4K"]
      condition:
        clients: ["mobile"]

clients:
  - name: "living-room"
    secret: "lr-secret"
    playlists: ["tv", "sports"]
  - name: "mobile"
    secret: "mb-secret"
    playlists: ["tv"]

See also: Rules, Set Field, Remove Duplicates, Condition.