01
Visão geral
Um fluxo com duas superfícies
O catálogo entrega metadados e a URL pública de reprodução. O player recebe o usuário, escolhe as fontes disponíveis e protege os detalhes internos de mídia.
- 1Consulte
Busque qualquer tipo de título em
https://api.slixhub.ru/catalog. - 2Escolha
Use o campo
player_urlretornado para o título. - 3Reproduza
Abra o link ou incorpore-o em um
iframeresponsivo.
O embed do player é público. URLs de mídia, tokens temporários e seleção de fontes continuam sob responsabilidade do SlixHub.
02
Quick start
Do catálogo ao play
Faça a consulta pelo backend do seu projeto, selecione um item e encaminhe o player_url
const response = await fetch(
"https://api.slixhub.ru/catalog?type=all&page=1"
);
if (!response.ok) throw new Error("Catalog request failed");
const { items } = await response.json();
const title = items[0];
console.log(title.title, title.player_url);
Para um site hospedado em outro domínio, faça a consulta ao catálogo no seu backend. A política CORS atual não libera a API para qualquer origem de navegador.
03
API de catálogo
Listar e filtrar títulos
https://api.slixhub.ru/catalog
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
q | string | vazio | Busca em título, título original e sinopse. Máximo de 100 caracteres. |
type | string | all | all, movie, series, anime, dorama ou minidrama. |
provider | string | vazio | Filtra MiniDramas pelo provedor. Pode ser combinado com busca, gênero, ordenação e paginação. |
provider_id | string | vazio | Identidade externa exata de um MiniDrama. Exige provider e deve ser tratada como texto. |
genre | string | vazio | Filtra pelo nome do gênero. Máximo de 80 caracteres. |
sort | string | recent | recent, title ou random. O padrão previsível da API não mudou. |
seed | integer | automática | Seed de 0 a 2147483647 usada com sort=random. Reutilize-a nas próximas páginas. |
page | integer | 1 | Página a partir de 1. Cada resposta entrega até 24 títulos. |
curl "https://api.slixhub.ru/catalog?type=anime&sort=random&seed=20260826&page=1"
04
Formato da resposta
Metadados e URL pública
A resposta é paginada. Somente títulos ativos com identidade pública e ao menos uma fonte disponível entram na listagem em produção.
{
"items": [
{
"id": "movie:550",
"tmdb_id": 550,
"imdb_id": "tt0137523",
"external_ids": [],
"kind": "movie",
"type_label": "Filme",
"title": "Título de exemplo",
"original_title": "Example title",
"overview": "Sinopse do título.",
"tagline": "Frase de destaque.",
"poster_url": "https://image.tmdb.org/...",
"backdrop_url": "https://image.tmdb.org/...",
"year": 2026,
"genres": ["Drama", "Ficção científica"],
"meta_label": "118 min",
"server_count": 2,
"player_url": "https://embed.slixhub.ru/movie/550"
}
],
"page": 1,
"page_size": 24,
"total": 84,
"has_more": true,
"sort": "random",
"seed": 20260826
}
id- Chave pública textual, como
movie:550,serie:tt0903747ouminidrama:{provider}:{provider_id}. Não é a chave interna do banco. external_ids- Lista de pares
providereprovider_id. TMDB e IMDb possuem também os campostmdb_ideimdb_id, que podem ser nulos. kind- Identifica o tipo técnico usado pelo título.
meta_label- Texto pronto para exibição, como duração ou temporadas.
server_count- Quantidade de fontes atualmente disponíveis.
player_url- URL recomendada para assistir ou incorporar.
seed- Repita o valor retornado ao buscar outras páginas de uma ordem aleatória.
05
Player e embed
Use sempre o player_url
O campo retornado pela API já considera o domínio público configurado para o player. Filmes abrem diretamente, MiniDramas abrem no feed vertical de episódios e séries, animes e doramas usam a navegação por temporadas.
| Conteúdo | Formato da rota | Identificador |
|---|---|---|
| Filme | https://embed.slixhub.ru/movie/{identifier} | ID TMDB numérico ou IMDb iniciado por tt. |
| Série, anime ou dorama | https://embed.slixhub.ru/serie/{identifier} | ID TMDB numérico ou IMDb iniciado por tt. |
| MiniDrama | https://embed.slixhub.ru/minidrama/{provider}/{provider_id} | Identidade textual do provedor. |
<div style="position:relative;aspect-ratio:16/9">
<iframe
src="https://embed.slixhub.ru/movie/550"
title="Player SlixHub"
allow="autoplay; fullscreen; picture-in-picture"
allowfullscreen
style="position:absolute;inset:0;width:100%;height:100%;border:0"
></iframe>
</div>
06
Detalhes e identificadores
Consulte cada título pela identidade pública
A listagem retorna items; cada rota de detalhe retorna um único título. Use o identificador externo correspondente ao tipo de conteúdo:
GET https://api.slixhub.ru/catalog/movie/{tmdb_id_ou_imdb_id}
GET https://api.slixhub.ru/catalog/serie/{tmdb_id_ou_imdb_id}
GET https://api.slixhub.ru/catalog/minidrama/{provider}/{provider_id}
GET https://api.slixhub.ru/catalog?type=minidrama&provider={provider}&provider_id={provider_id}O que vem no detalhe
- Filme
- Retorna
sources[]com as fontes disponíveis. - Série, anime, dorama e MiniDrama
- Retornam
seasons[], cada uma comseason_numbereepisodes[]. - Episódio
- Informa
episode_number,name,available,external_ids[],sources[]eplayer_url. Abra esse URL para assistir; os números finais da rota são a temporada e o episódio.
Qual ID usar
- Título
id - Chave pública textual, nunca o ID interno. Rotas de filmes e séries usam TMDB numérico ou IMDb iniciado por
tt. - MiniDrama
provider_id - ID textual do título no provedor. Versões localizadas podem ter identidades diferentes.
- Episódio
external_ids[] - O
provider_ididentifica o episódio no provedor, como umchapter_id. Pode estar vazio em registros antigos. - Fonte
sources[].public_id - Identifica a mídia standalone.
playback_modeindica a rota evideo_typeindica o formato de reprodução. - Legenda externa
- Quando disponível,
sources[].subtitleinformaurl,language,label,enabledehls. O idioma padrão épt-BR; o player permite desligar a faixa ou escolher outra faixa oferecida pela playlist HLS.
O chapter_id não é um public_id de mídia. Para assistir pelo player público, use player_url. O acesso direto à fonte exige uma chave autorizada para a origem e o escopo.
07
Produção
Checklist antes de publicar
- Consuma o catálogo no backend quando o frontend estiver em outro domínio.
- Persista a chave textual
ide as identidades externas; use oplayer_urlmais recente para reproduzir. - Mantenha o iframe responsivo e permita
autoplay,fullscreenepicture-in-picture. - Trate listas vazias e itens removidos sem quebrar a navegação do seu produto.
- Em
sort=random, preserve a mesmaseeddurante toda a paginação. - Não armazene nem tente acessar URLs internas de mídia ou tokens temporários.
08
Erros
Respostas que a integração deve tratar
| Status | Quando ocorre | Ação recomendada |
|---|---|---|
200 | Consulta válida, inclusive quando items está vazio. | Use total e has_more para controlar a interface. |
404 | Título inexistente, inativo ou sem fonte disponível no player. | Volte ao catálogo e atualize o item armazenado. |
422 | Parâmetro inválido, como page=0 ou texto além do limite. | Corrija os parâmetros antes de repetir. |
5xx | Falha temporária do serviço. | Exiba um estado recuperável e tente novamente com espera progressiva. |
Pronto para validar?