---
title: Integração com IPTV middleware
url: https://doc2.pstreamer.tv/pt/manual/streamer/iptv_middleware.html
lang: pt-BR
product: Perfect Streamer
version: 2.0.2.423
---

# Integração com IPTV middleware

> **Importante**
>
> **Versão beta 2.1.** O que está descrito aqui existe apenas na versão beta 2.1: ela é instalada a partir do repositório beta e somente com uma licença; a versão estável 2.0.2 e a versão de demonstração não têm isso. A versão beta é fornecida sem garantias, e o suporte é prestado na medida do possível ([Programa de testes beta](../extras/beta.md#extras-beta)).

Desde a versão 2.1.1.516, o nó entende o esquema de endereços e de autorização por token com o qual os IPTV middleware e os players já trabalham com servidores de streaming: Ministra (Stalker), Microimpuls Smarty, TVIP TMS e players com arquivo `catchup="flussonic"`. Esse middleware pode ser apontado para o Perfect Streamer sem alterar nele os modelos de endereços dos canais: o middleware entrega ao assinante um link com token, e o nó verifica o token junto ao middleware.

Habilitam-se duas coisas: as formas de endereço no servidor HTTP de streaming e o servidor de verificação de tokens (Servidor de verificação de tokens). Ambas são configuradas no console, assim como no arquivo de configuração ([Alterar um parâmetro](../extras/config_editing.md#extras-config-editing-change)) e pela API HTTP ([Gerenciamento pela API HTTP](../extras/api.md#extras-api)).

## Endereços dos canais

O interruptor «URLs compatíveis com Flussonic» na seção «Middleware» da tela «Servidor HTTP de streaming» ([Servidor HTTP de streaming](../webui/administration.md#webui-http-server); a chave `flussonic-urls` em `/config/http-server`), desabilitado por padrão. Quando ele está habilitado, cada fluxo com «Nome do fluxo no URL» definido ([URL e autorização](ott_dvr.md#streamer-ott-urls)) fica disponível também por estes endereços, ao lado dos anteriores:

| Endereço | O que entrega |
| --- | --- |
| `/<nome>/index.m3u8`, `/<nome>/mono.m3u8` | transmissão ao vivo HLS |
| `/<nome>/index.mpd` | transmissão ao vivo DASH |
| `/<nome>/mpegts` | transmissão ao vivo MPEG-TS; o fluxo precisa ter a distribuição por HTTP habilitada |
| `/<nome>/index-<início>-<duração>.m3u8`, `archive-…`, `mono-…` (e `index-…`, `archive-…` com `.mpd`) | arquivo DVR ([DVR: arquivo do fluxo](ott_dvr.md#streamer-dvr)) a partir do momento `<início>` (tempo Unix em segundos) com duração de `<duração>` segundos, até 31 dias, ou `now` — até o momento atual |
| `/<nome>/timeshift_abs-<início>.m3u8`, `/<nome>/timeshift_rel-<segundos>.m3u8` | timeshift: arquivo a partir de um momento passado (ou de `<segundos>` atrás), que depois segue como transmissão ao vivo |

O endereço completo é `http://<nó>:<porta>/<nome>/index.m3u8?token=<token>`. Cada requisição precisa levar o token (de no máximo 512 caracteres). O nome de um pacote adaptativo ([Pacotes adaptativos](ott_dvr.md#streamer-ott-adaptive)) dá a sua playlist adaptativa. Se o arquivo ou o timeshift for solicitado a partir de um momento em que a gravação ainda não acontecia, a playlist master responde 200 e a playlist da variante (media) responde 404.

Nesses endereços um fluxo não pode se chamar `hls`, `dash`, `llhls`, `http`, `rsv` nem ter um nome de 17 caracteres formado por `h` e 16 dígitos hexadecimais. No editor do fluxo, na aba «OTT», abaixo de «Nome do fluxo no URL», o console mostra esses endereços com o nome do fluxo e, para um nome assim, um aviso ([Configurar fluxo](../webui/streams.md#webui-stream-editor)).

## Servidor de verificação de tokens

O token é verificado pelo middleware. O endereço dele é definido como um servidor na aba «Remoto (faturamento)» da tela «Usuários / Logins» ([Usuários / Logins](../webui/configure.md#webui-users); uma entrada em `/config/cs/server`). No campo «Conector» escolhe-se um dos servidores de tokens:

**`ministra` — «Ministra / Stalker (token)»**
  Ministra (Stalker). O endereço é `http://<portal>/stalker_portal/server/api/chk_flussonic_tmp_link.php`. No Ministra, define-se para o canal o tipo de link temporário `Flussonic`, o tipo de arquivo `Flussonic DVR` e o endereço do arquivo `http://<nó>:<porta>/<nome>/index.m3u8`.
**`smarty` — «Smarty (token)»**
  Microimpuls Smarty. O endereço é `http://<smarty>/tvmiddleware/api/streamservice/token/check/`. A máscara do fluxo é `/$prefix/index.m3u8?token=$token`, a máscara do arquivo é `/$prefix/index-$flpbt-$flpdur.m3u8?token=$token`.
**`flussonic` — «Flussonic auth backend (token)»**
  Qualquer outro middleware (por exemplo, TVIP TMS) que verifique tokens pelo mesmo protocolo. O endereço é o seu endereço de verificação.

Um servidor de tokens verifica apenas os tokens desses endereços; ele não atende o acesso com login e senha. Por isso, no console, ele tem apenas «Nome», «URL», «Tempo limite (s)» e a seção «Servidor de tokens», enquanto a senha, a contabilização de sessões, o prefixo e o sufixo do login, o rastreamento e a análise da resposta ficam ocultos. O nó exige a chave `password`, mas não a repassa a esses servidores: o console a preenche sozinho. Se um servidor de tokens for mudado para «Universal (HTTP)», o console pede uma senha real. Ao gravar pela API, `password` recebe qualquer valor não vazio.

## Acesso e verificações repetidas

- **Sem token — recusa.** Uma requisição sem token, com token rejeitado ou quando o servidor de verificação está indisponível recebe a resposta 403. Se o servidor não respondeu ou respondeu com erro, consulta-se o próximo; uma recusa (401 ou 403) é definitiva.
- **Middleware indisponível.** Com a caixa «Permitir enquanto o backend estiver fora» (`auth-fail-open` = `true`), novos espectadores são admitidos enquanto todos os servidores de verificação estão indisponíveis e são verificados de novo dentro de 30 s. Uma recusa do middleware não é anulada por essa chave.
- **Verificação repetida.** Uma sessão em andamento é verificada de novo com o período definido pelo middleware (cabeçalho de resposta `X-AuthDuration`, por padrão 180 s) ou com o período definido no campo «Nova verificação»: «Padrão do perfil», «Nunca» ou «A cada N segundos» (chave `auth-recheck`: `-1`, `0` ou um número de segundos até 86400). Uma recusa na verificação repetida interrompe a visualização desse espectador. Os links do Ministra não são verificados de novo: eles vivem poucos segundos.
- **Sessões por usuário.** Os cabeçalhos de resposta `X-Max-Sessions` e `X-UserId` limitam o número de sessões de um mesmo usuário por HLS, DASH e MPEG-TS juntos. Ao atingir o limite, fecha-se a sessão inativa há mais tempo; nesse caso, uma nova conexão MPEG-TS não é aceita.
- **O token não fica visível.** O token não é gravado no log nem exibido no console: na tela «Clientes» ([Clientes](../webui/monitor.md#webui-clients)), a sessão aparece como `tok:<16 dígitos hexadecimais>`.
- **Reserva OTT.** As sessões com token não participam da reserva OTT ([Reserva OTT/DVR](../planning/ott_reserve.md#planning-ott-reserve)).

O Ministra carrega a programação a partir da exportação XMLTV do servidor EPG (`/xmltv`, [Fornecimento de XMLTV](epg/middleware.md#streamer-epg-server)).

## Limitações

- Timeshift — somente HLS (TS) de um único fluxo.
- Prévias, playlists só de vídeo e de faixas separadas (`video.m3u8`, `tracks-*`) e o arquivo em MPEG-TS não são entregues: esses endereços respondem 404.
- A integração foi verificada em emuladores desses middleware; em sistemas em produção, ainda não.
