Hoje o único cliente do NovelÁudio é o próprio app oficial, falando diretamente com o Supabase
do projeto “Novel”. Esta página descreve o contrato para uma API de parceiro de áudio.
Não existe api.novelaudio.com.br
Este é o ponto que mais gera confusão em quem lê a proposta técnica, então vale ser redundante:
NovelAI e NovelÁudio são atendidos pelo mesmo domínio, api.novelai.com.br, porque compartilham
o mesmo projeto Supabase (“Novel”) e o mesmo backend físico — Postgres, Auth, Edge Functions e
Storage, tudo numa instância só. Não existe um segundo projeto, um segundo domínio ou uma segunda
infraestrutura para o NovelÁudio.
A aba “NovelÁudio” nesta documentação existe porque os recursos são diferentes — catálogo de
áudio, streaming de capítulo, posição de reprodução — não porque o domínio é diferente. A rota é
que decide se a chamada é sobre texto ou sobre áudio, não o host. Ver Modelo de autenticação
sobre Supabase (seção “Custom Domains”)
para o desenho completo de domínio/projeto, e a tabela de domínios em
/index.
Mesmo catálogo do NovelAI
NovelÁudio espelha o grafo de narrativa do NovelAI: a mesma obra, o mesmo motor de fascículos
(1 capítulo/dia, VIP com 24h de antecedência) e os mesmos finais — só a camada de áudio é
exclusiva deste produto.
Mesmo token da Platform API
Não existe um
POST /oauth2/token próprio do NovelÁudio (nem do NovelAI) — o token é emitido
uma única vez pela Platform API, com escopos novelaudio:* adicionais na mesma troca.O que a API de parceiro expõe
Metadados de áudio
GET /novels/{id}/audio — por capítulo: título, duração, voz usada (quando já renderizado) e
status de renderização.Streaming de capítulo
GET /novels/{id}/chapters/{chapterNumber}/stream — URL assinada de curta duração para um
capítulo liberado, nunca o áudio bruto na resposta.Posição de reprodução
GET/PUT /subscribers/{id}/playback-position — retomar exatamente de onde parou, entre
dispositivos.Vozes de narração (roadmap)
GET /voices — catálogo de vozes de narração para escolha do leitor. Roadmap de ponta a
ponta: não existe catálogo de vozes hoje — ver a descrição do endpoint.Como o áudio é produzido hoje
Três caminhos coexistem no código, e só um deles é o que o ouvinte do NovelÁudio de fato usa:- O que o app NovelÁudio realmente toca: áudio pré-gravado. A narração de cada capítulo é um
arquivo gravado uma vez e guardado no bucket privado
chapter-audiodo projeto “Novel”; o player pede uma URL assinada de curta duração à Edge Functionaudio-url, que valida o entitlement (plano com áudio + capítulo liberado pelo drip) antes de assinar. Hoje 14 novelas têm narração real completa (98 arquivos — 7 capítulos cada) — a flagnovels.has_real_audiocontrola quais aparecem no catálogo do app. É um arquivo único de bitrate fixo, não streaming adaptativo por segmentos. - A Edge Function de TTS server-side existe no projeto “Novel”, mas está desativada na UI.
Havia uma função
tts(voz padrão única, quota por plano) consumida pelo leitor do app NovelAI para narrar texto sob demanda. Desde 30/jul/2026 essa narração foi ocultada do NovelAI por decisão de produto (NARRATION_ENABLED = falseemNovelReader.tsx) — narração passou a ser exclusividade do NovelÁudio (áudio pré-gravado, caminho 1). A function ainda existe no código, só não é mais chamada por nenhuma tela. - A narração via Web Speech API do navegador é código morto. O hook existe no repositório do NovelÁudio como resquício de um stand-in antigo, mas nenhuma tela o usa — a reprodução real é o caminho 1.
/subscribers/{id}/playback-position) expõe exatamente esse dado já existente.
Autenticação
Mesmo modelo OAuth2 client credentials usado pela Platform API e descrito em detalhe em Modelo de autenticação sobre Supabase — não repetido aqui. O token é emitido uma única vez, de forma centralizada, emPOST https://api.googa.com.br/v1/oauth2/token (ver Platform —
OAuth2) — nunca em api.novelai.com.br, que só valida o
token recebido via a chave pública do projeto Platform. Um parceiro que integra catálogo de texto
e áudio pede os escopos novelai:* e novelaudio:* na mesma troca de credencial, e usa o
mesmo token resultante nas chamadas a api.novelai.com.br — uma única credencial, uma única
troca, independente de quantos domínios de produto o parceiro vai chamar.