playlistmanager-go (0.1.0)

Download OpenAPI specification:

License: Proprietary

API de catalogo do MamutTV. Erros saem como application/problem+json.

health

Probes de liveness, readiness e startup.

Liveness probe

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Readiness probe

Responses

Response samples

Content type
application/json
{
  • "status": "string"
}

Startup probe

Responses

Response samples

Content type
application/json
{
  • "status": "string"
}

media

Catalogo de filmes, series, episodios e generos.

Get medias by ID (batch)

query Parameters
ids
required
Array of strings or null [ 1 .. 100 ] items

Media IDs separados por vírgula (máx. 100)

audience
string
Enum: "kids" "adult"
header Parameters
X-Providers-Ids
string
X-Canonical-Read
string

Responses

Response samples

Content type
application/json
{
  • "medias": {
    }
}

List VOD categories cached for the active provider

query Parameters
kind
required
string
Enum: "movie" "tv"
audience
string
Enum: "kids" "adult"
header Parameters
X-Providers-Ids
string
X-Canonical-Read
string

Responses

Response samples

Content type
application/json
{
  • "categories": [
    ]
}

Tracks grouped by season/episode for a media

query Parameters
media_id
required
string
season
string
episode
string
audience
string
Enum: "kids" "adult"
limit
integer <int64> [ 1 .. 100 ]
Default: 20
offset
integer <int64> >= 0
Default: 0
header Parameters
X-Providers-Ids
string
X-Canonical-Read
string

Responses

Response samples

Content type
application/json
{
  • "seasons": [
    ]
}

List episodes filtered by tv_show_id/media_id/season_number

query Parameters
tv_show_id
string
media_id
string
season_number
string
limit
integer <int64> [ 1 .. 100 ]
Default: 20
offset
integer <int64> >= 0
Default: 0

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Episode context (tv_show, season, episode) with tracks

path Parameters
episode_id
required
integer <int64>
header Parameters
X-Providers-Ids
string

Responses

Response samples

Content type
application/json
{
  • "episode": {
    },
  • "season": {
    },
  • "tracks": [
    ],
  • "tv_show": {
    }
}

List the genres present in the active providers' catalogue

query Parameters
kind
required
string
Enum: "movie" "tv"
audience
string
Enum: "kids" "adult"
header Parameters
X-Providers-Ids
string
Accept-Language
string

Responses

Response samples

Content type
application/json
{
  • "genres": [
    ]
}

List TV shows from the indexed catalog

query Parameters
name
string
limit
integer <int64> [ 1 .. 100 ]
Default: 20
offset
integer <int64> >= 0
Default: 0

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Get media by ID

path Parameters
media_id
required
string

Media ID

query Parameters
audience
string
Enum: "kids" "adult"
header Parameters
X-Providers-Ids
string
X-Canonical-Read
string

Responses

Response samples

Content type
application/json
{
  • "media": {
    }
}

Find related media (TMDB/ES based)

path Parameters
media_id
required
string
query Parameters
tmdb_id
string
kind
string
genres
string
audience
string
Enum: "kids" "adult"
header Parameters
X-Providers-Ids
string
X-Canonical-Read
string

Responses

Response samples

Content type
application/json
{
  • "related": [
    ]
}

channels

Canais ao vivo e suas categorias.

List live-channel categories cached for the active provider

query Parameters
audience
string
Enum: "kids" "adult"
header Parameters
X-Providers-Ids
string

Responses

Response samples

Content type
application/json
{
  • "categories": [
    ]
}

List live channels cached for the active provider

query Parameters
category_id
string
audience
string
Enum: "kids" "adult"
header Parameters
X-Providers-Ids
string

Responses

Response samples

Content type
application/json
{
  • "channels": [
    ]
}

providers

Cadastro de painel IPTV, ingestao pelo device e status de saude.

List all configured providers

Responses

Response samples

Content type
application/json
{
  • "providers": [
    ]
}

Add a new provider, validate creds, dispatch warmup

Request Body schema: application/json
required
name
required
string
output
required
string
password
required
string
regex_patterns
Array of strings or null
url
required
string
username
required
string
xui_type
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "output": "string",
  • "password": "string",
  • "regex_patterns": [
    ],
  • "url": "string",
  • "username": "string",
  • "xui_type": "string"
}

Response samples

Content type
application/json
{
  • "provider_id": "string",
  • "warmup_task_id": "string"
}

Update provider name/url/xui_type

Request Body schema: application/json
required
id
required
string <uuid>
name
string
url
string
xui_type
string

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "url": "string",
  • "xui_type": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "url": "string",
  • "xui_type": "string"
}

Batch status para varios providers via ?ids=a,b,c (max 100)

query Parameters
ids
string
Examples: ids=uuid1,uuid2,uuid3

CSV de UUIDs de providers (max 100)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Delete provider

path Parameters
provider_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "string"
}

Get provider by ID

path Parameters
provider_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "output": "string",
  • "password": "string",
  • "total_tracks": 0,
  • "url": "string",
  • "username": "string",
  • "xui_type": "string"
}

Device reports a download failure (signal, not truth)

path Parameters
provider_id
required
string <uuid>
Request Body schema: application/json
required
action
string
alive
boolean
error
string
status
integer <int64>

Responses

Request samples

Content type
application/json
{
  • "action": "string",
  • "alive": true,
  • "error": "string",
  • "status": 0
}

Response samples

Content type
application/json
{
  • "marked_healthy": true,
  • "marked_unhealthy": true,
  • "received": true
}

Ingest player_api bytes tunneled by the device (gzip optional)

path Parameters
provider_id
required
string <uuid>
action
required
string
header Parameters
Content-Encoding
string
Request Body schema: application/octet-stream
required
string <binary> <application/octet-stream>

Responses

Response samples

Content type
application/json
{
  • "accepted": true
}

Stale actions + player_api URLs the device should tunnel back

path Parameters
provider_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "actions": [
    ],
  • "provider_id": "string"
}

Health status (blocked=true when front should deny entry)

path Parameters
provider_id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "blocked": true,
  • "healthy": true,
  • "label": "string",
  • "last_check_at": "string",
  • "provider_id": "string",
  • "reason": "string",
  • "unhealthy_since": "string"
}

search_engine

Busca, trilhos de seçao, relacionados e jobs de indexacao.

Diagnostic snapshot of cache and queues

Responses

Response samples

Content type
application/json
{
  • "backends": {
    },
  • "counters": {
    },
  • "service": "string",
  • "version": "string"
}

Dispatch TMDB enrich of the full catalog (same job as the 05:00/17:00 UTC cron)

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "task_id": "string"
}

Dispatch indexing of media flagged is_indexed=false

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "task_id": "string"
}

Known-for: media in provider memory where the person is in cast or crew

header Parameters
X-Canonical-Read
string
Request Body schema: application/json
required
cursor
string
kind
string
Enum: "movie" "tv"
language_code
string
Default: "pt-br"
limit
integer <int64> [ 1 .. 200 ]
Default: 20
person_id
required
integer <int64>
provider_id
required
string

Responses

Request samples

Content type
application/json
{
  • "cursor": "string",
  • "kind": "movie",
  • "language_code": "pt-br",
  • "limit": 20,
  • "person_id": 0,
  • "provider_id": "string"
}

Response samples

Content type
application/json
{
  • "cursor": "string",
  • "medias": [
    ],
  • "total": 0
}

Search media via fast_mode

header Parameters
X-Canonical-Read
string
Request Body schema: application/json
required
cursor
string
object
language_code
string
Default: "pt-br"
limit
integer <int64> [ 1 .. 200 ]
Default: 20
query
string
object

Responses

Request samples

Content type
application/json
{
  • "cursor": "string",
  • "filters": {
    },
  • "language_code": "pt-br",
  • "limit": 20,
  • "query": "string",
  • "sort": {
    }
}

Response samples

Content type
application/json
{
  • "cursor": "string",
  • "medias": [
    ],
  • "total": 0
}

Dispatch full rebuild of the ES index (heavy)

Responses

Response samples

Content type
application/json
{
  • "status": "string",
  • "task_id": "string"
}

Run multiple search sections in one call (with dedupe)

header Parameters
X-Canonical-Read
string
Request Body schema: application/json
required
object
language_code
string
Default: "pt-br"
required
Array of objects or null (SectionRequestBody)

Responses

Request samples

Content type
application/json
{
  • "base_filters": {
    },
  • "language_code": "pt-br",
  • "sections": [
    ]
}

Response samples

Content type
application/json
{
  • "deduped_count": 0,
  • "sections": [
    ]
}

Find similar media (placeholder, returns empty list in fast_mode)

header Parameters
X-Canonical-Read
string
Request Body schema: application/json
required
object
language_code
string
limit
integer <int64>
Default: 20
media_id
required
string

Responses

Request samples

Content type
application/json
{
  • "filters": {
    },
  • "language_code": "string",
  • "limit": 20,
  • "media_id": "string"
}

Response samples

Content type
application/json
{
  • "medias": [
    ],
  • "total": 0
}

tasks

Inspeçao das filas asynq.

List queues with stats

Responses

Response samples

Content type
application/json
{
  • "queues": [
    ]
}

Detailed inspect of asynq queues

Responses

Response samples

Content type
application/json
{
  • "queues": {
    }
}

Delete all archived tasks of a queue

path Parameters
queue_name
required
string

Responses

Response samples

Content type
application/json
{
  • "deleted": 0,
  • "queue": "string"
}

Cancel/delete a task

path Parameters
task_id
required
string
query Parameters
queue
string
Default: "default"

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "queue": "string"
}

Status of a single task

path Parameters
task_id
required
string
query Parameters
queue
string
Default: "default"

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "last_err": "string",
  • "max_retry": 0,
  • "next_process_at": "string",
  • "queue": "string",
  • "retried": 0,
  • "state": "string",
  • "type": "string"
}

sports

Agenda de jogos de futebol, emissoras e canais do usuario.

List manually registered football matches for a day

query Parameters
date
string^\d{4}-\d{2}-\d{2}$

Dia em America/Sao_Paulo. Default: hoje.

Responses

Response samples

Content type
application/json
{
  • "date": "string",
  • "matches": [
    ]
}

Register a football match by hand, for days the upstream has none

Request Body schema: application/json
required
away_logo
string <= 500 characters
away_name
required
string [ 1 .. 120 ] characters
broadcasters
Array of strings or null

Emissoras canonicas. Ex: ["SPORTV","PREMIERE"]

home_logo
string <= 500 characters
home_name
required
string [ 1 .. 120 ] characters
kickoff
required
string <date-time>

Inicio do jogo, com fuso. Ex: 2026-08-19T21:30:00-03:00

league_name
string <= 120 characters
league_slug
string <= 64 characters

Responses

Request samples

Content type
application/json
{
  • "away_logo": "string",
  • "away_name": "string",
  • "broadcasters": [
    ],
  • "home_logo": "string",
  • "home_name": "string",
  • "kickoff": "2019-08-24T14:15:22Z",
  • "league_name": "string",
  • "league_slug": "string"
}

Response samples

Content type
application/json
{
  • "away": {
    },
  • "broadcasters": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "home": {
    },
  • "id": "string",
  • "kickoff": "2019-08-24T14:15:22Z",
  • "league": {
    },
  • "updated_at": "2019-08-24T14:15:22Z"
}

Delete a manually registered football match

path Parameters
match_id
required
string

Responses

Response samples

Content type
application/problem+json
{}

Get a manually registered football match

path Parameters
match_id
required
string

Responses

Response samples

Content type
application/json
{
  • "away": {
    },
  • "broadcasters": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "home": {
    },
  • "id": "string",
  • "kickoff": "2019-08-24T14:15:22Z",
  • "league": {
    },
  • "updated_at": "2019-08-24T14:15:22Z"
}

Update a manually registered football match

path Parameters
match_id
required
string
Request Body schema: application/json
required
away_logo
string <= 500 characters
away_name
required
string [ 1 .. 120 ] characters
broadcasters
Array of strings or null

Emissoras canonicas. Ex: ["SPORTV","PREMIERE"]

home_logo
string <= 500 characters
home_name
required
string [ 1 .. 120 ] characters
kickoff
required
string <date-time>

Inicio do jogo, com fuso. Ex: 2026-08-19T21:30:00-03:00

league_name
string <= 120 characters
league_slug
string <= 64 characters

Responses

Request samples

Content type
application/json
{
  • "away_logo": "string",
  • "away_name": "string",
  • "broadcasters": [
    ],
  • "home_logo": "string",
  • "home_name": "string",
  • "kickoff": "2019-08-24T14:15:22Z",
  • "league_name": "string",
  • "league_slug": "string"
}

Response samples

Content type
application/json
{
  • "away": {
    },
  • "broadcasters": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "home": {
    },
  • "id": "string",
  • "kickoff": "2019-08-24T14:15:22Z",
  • "league": {
    },
  • "updated_at": "2019-08-24T14:15:22Z"
}

List football matches of the day with broadcasters and the user's channels

query Parameters
date
string^\d{4}-\d{2}-\d{2}$

Dia da agenda em America/Sao_Paulo. Default: hoje.

header Parameters
X-Providers-Ids
string

Responses

Response samples

Content type
application/json
{
  • "date": "string",
  • "matches": [
    ]
}