Skip to main content
M3U sources are the foundation of Dispatcharr’s stream management. Configure external IPTV providers to import channels and streams into your system.

Source Types

Dispatcharr supports two types of M3U sources:

Standard M3U

Direct M3U playlist URL with standard format

Xtream Codes

Xtream Codes API integration for IPTV providers

Creating an M3U Source

1

Navigate to M3U Sources

Go to Settings > M3U Sources in the admin panel
2

Add New Source

Click Add M3U Account and configure the following fields
3

Configure Connection

Enter your provider details based on source type
4

Set Refresh Schedule

Configure automatic refresh intervals (optional)

Configuration Fields

Basic Settings

name
string
required
Unique name for this M3U source. Used to identify the source in the system.
account_type
enum
default:"STD"
Source type selection:
  • STD - Standard M3U playlist URL
  • XC - Xtream Codes API
is_active
boolean
default:true
Enable or disable this M3U source. Disabled sources will not refresh or provide streams.

Connection Settings

server_url
url
required
Full URL to the M3U playlist file. Example:
https://provider.com/playlist.m3u
file_path
string
Alternative: Upload M3U file directly instead of using URL
server_url
url
required
Base URL of the Xtream Codes server (without username/password):
https://provider.com:8080
username
string
required
Xtream Codes account username
password
string
required
Xtream Codes account password
Xtream Codes sources automatically retrieve account information including expiration dates, connection limits, and active connections via the API.

Advanced Settings

user_agent
reference
Custom User-Agent header for HTTP requests. Falls back to system default if not specified.See User Agents for configuration options.
stream_profile
reference
Default stream profile for all streams from this source. Can be overridden per stream.See Stream Profiles for details.
max_streams
integer
default:0
Maximum concurrent streams allowed (0 = unlimited). Useful for provider connection limits.
server_group
reference
Optional server group assignment for organizational purposes
priority
integer
default:0
Priority for VOD provider selection (higher = higher priority). When multiple providers offer the same content, the highest priority source is used.

Refresh Configuration

refresh_interval
integer
default:0
Automatic refresh interval in seconds. Set to 0 to disable automatic refresh.Common intervals:
  • 3600 - Every hour
  • 21600 - Every 6 hours
  • 86400 - Daily
stale_stream_days
integer
default:7
Number of days after which streams not found in the M3U source will be automatically removed.This keeps your database clean when providers remove channels.

Stream Filtering

Filter which streams are imported from the M3U source using regex patterns.

Filter Types

filter_type = "group"
regex_pattern = "^(Sport|News).*"
exclude = False  # Include only matching groups
filter_type
enum
  • group - Match against channel group title
  • name - Match against stream name
  • url - Match against stream URL
regex_pattern
string
required
Regular expression pattern (case-insensitive)
exclude
boolean
default:true
  • true - Exclude matching items
  • false - Include only matching items
order
integer
default:0
Filter execution order (lower numbers execute first)
If no include filters exist, all non-excluded streams are imported. If include filters are defined, only streams matching at least one include filter are imported.

Source Status

M3U sources track their current status:
StatusDescription
idleWaiting for next refresh
fetchingDownloading M3U file from URL
parsingProcessing M3U content and updating database
successLast refresh completed successfully
errorLast refresh failed (see last_message for details)
pending_setupNew source awaiting first refresh
disabledSource is inactive

Account Profiles

Each M3U account automatically creates profiles for multi-credential support:
name
string
required
Profile name (automatically created as ” Default”)
is_default
boolean
default:true
Whether this is the default profile for the account
max_streams
integer
Per-profile stream limit (inherits from parent account)
search_pattern
regex
default:"^(.*)$"
Regex pattern for URL transformation
replace_pattern
string
default:"$1"
Replacement pattern for URL transformation
Profiles for Xtream Codes sources automatically store account metadata:
  • exp_date - Account expiration timestamp
  • status - Account status (active/expired)
  • max_connections - Provider connection limit
  • active_cons - Current active connections
  • last_refresh - Last successful refresh time
This data is available in custom_properties.user_info

Example Configurations

{
  "name": "MyIPTV Provider",
  "account_type": "STD",
  "server_url": "https://provider.com/playlist.m3u",
  "is_active": true,
  "refresh_interval": 21600,
  "max_streams": 2,
  "stale_stream_days": 7
}
Protected sources with locked = true cannot be deleted or modified through the UI. These are system-managed accounts.