Skip to main content
The M3U API serves processed playlists and proxies or redirects stream URLs to media players that understand the M3U/M3U8 format.

Playlist endpoints

All three paths are equivalent — use whichever your player prefers.
MethodPath
GET / POST/get.php
GET / POST/m3u
GET / POST/apiget

Parameters

username
string
required
The username defined in api-proxy.yml.
password
string
required
The password for the user. Can be replaced by token.
token
string
Token credential. Accepted in place of username + password.
type
string
Output format. Set to m3u_plus to receive an M3U8 file with a Content-Disposition: attachment; filename="playlist.m3u" header. Omit for plain M3U text output.

Response

Returns a streaming text/plain body containing the processed M3U playlist. Each entry is rewritten according to your target’s filter and mapping rules. When type=m3u_plus is used, the response includes:
Content-Type: text/plain; charset=utf-8
Content-Disposition: attachment; filename="playlist.m3u"

Examples

curl "http://localhost:8901/get.php?username=alice&password=s3cr3t"

Stream endpoints

Stream URLs embedded in the M3U playlist point to these endpoints. Media players follow them automatically when a user clicks a channel.

Live streams (alt path)

GET /m3u-stream/{username}/{password}/{stream_id}

Live streams

GET /m3u-stream/live/{username}/{password}/{stream_id}

VOD / movies

GET /m3u-stream/movie/{username}/{password}/{stream_id}

Series

GET /m3u-stream/series/{username}/{password}/{stream_id}
username
string
required
The user’s username.
password
string
required
The user’s password.
stream_id
string
required
The virtual stream ID assigned by tuliprox. Optionally includes a file extension suffix (e.g., 12345.ts).
You do not call these endpoints directly. They are embedded in the playlist entries returned by /get.php and followed by media players.

Resource endpoint

Serves associated resources (e.g., poster images, logos) for M3U playlist items.
GET /resource/m3u/{username}/{password}/{stream_id}/{resource}
resource
string
required
The resource field name on the playlist item (e.g., logo, poster).
Depending on the user’s proxy mode, tuliprox either proxies the resource through itself or redirects to the provider’s URL.

Connection limits and errors

ConditionBehaviour
Invalid credentialsHTTP 403 (or the configured auth_error_status)
Target has no M3U outputHTTP 400 Bad Request
Stream ID not foundHTTP 404 Not Found
User connection limit exhaustedCustom error video stream (if configured)
Provider connection limit exhaustedCustom error video stream (if configured)
User account expiredCustom error video stream (if configured)

Build docs developers (and LLMs) love