Resposta curta
O aplicativo Social Stream para desktop pode reproduzir arquivos locais aprovados sem enviá-los. Use Escolher arquivo local no Event Flow e copie o link gerado: URL local de Flow Actions no OBS.
A extensão do Chrome não pode servir arquivos do seu disco sozinha. Usuários da extensão devem continuar usando Upload ou uma URL de mídia hospedada, a menos que também executem um aplicativo complementar de desktop compatível.
Escolha o melhor caminho
Melhor para uma biblioteca modesta e configuração mínima.
Recomendado quando SSApp, OBS e os arquivos estão no mesmo computador.
Melhor para muita mídia, backups e uso em vários computadores.
Uma recompensa ou mensagem aciona a ação.
actions.html recebe a ação.
O OBS carrega o som, imagem, GIF ou vídeo.
Opção 1: usar o upload integrado
- No Event Flow, selecione Reproduzir clipe de áudio ou Exibir sobreposição de mídia.
- Clique em Enviar, escolha o arquivo e conclua o upload na página que abrir.
- Confirme que a URL retornada
https://fileuploads.socialstream.ninja/media/...aparece na ação. - Salve o fluxo e mantenha
actions.html?session=YOUR_SESSIONaberto no OBS.
Se o site de upload mostrar uma cota de 1 GB na conta e sua biblioteca for ultrapassá-la, use a opção de pasta local ou armazenamento na nuvem abaixo.
Opção 2: manter a biblioteca no computador do OBS
O aplicativo independente para desktop inclui uma Biblioteca de mídia local e um servidor de loopback que escuta somente neste computador. O Event Flow armazena um ID de mídia estável em vez de colocar o caminho do disco no fluxo.
- Inicie o aplicativo independente Social Stream e abra o Event Flow.
- Selecione Reproduzir clipe de áudio ou Exibir sobreposição de mídia.
- Clique em Escolher arquivo local e selecione um arquivo de áudio, imagem, GIF ou vídeo.
- Confirme que a ação informa que o arquivo está disponível e que o servidor local está em execução.
- Clique em Copiar URL local de Flow Actions para OBS.
- Cole essa URL em uma fonte de navegador do OBS, salve o fluxo e teste a ação.
- Use Prévia para verificar o arquivo selecionado.
- Se o arquivo for movido ou renomeado, o Event Flow o mostrará como ausente. Clique em Revincular e escolha o novo local; os fluxos existentes continuam funcionando.
- Use Mostrar na pasta quando precisar localizar o arquivo original.
- Mantenha o SSApp em execução enquanto o OBS usa a URL local de Flow Actions.
- Não compartilhe a URL gerada. Ela contém uma credencial aleatória privada de acesso usada para proteger o servidor local.
Use a URL local gerada de Flow Actions. A página hospedada https://socialstream.ninja/actions.html não consegue resolver um ID de mídia da biblioteca do desktop.
Alternativa avançada: execute seu próprio servidor local
A configuração manual a seguir continua disponível caso você não use a Biblioteca de mídia local gerenciada do SSApp.
Baixe e extraia a pasta de código-fonte do Social Stream Ninja, depois crie nela uma pasta chamada user-media .
C:\SSN\social_stream\
actions.html
user-media\
audio\booty.mp3
images\reward.png
video\celebration.mp4
Iniciar o servidor HTTP local manual
- Instale Python se ainda não estiver instalado.
- Abra PowerShell ou Prompt de Comando e execute este comando. Deixe a janela aberta durante a transmissão.
Comando do Windows
py -m http.server 8765 --bind 127.0.0.1 --directory "C:\SSN\social_stream"
Comando do macOS ou Linux
python3 -m http.server 8765 --bind 127.0.0.1 --directory "/path/to/social_stream"
URL de Flow Actions para a fonte de navegador do OBS
http://127.0.0.1:8765/actions.html?session=YOUR_SESSION_ID
URLs de mídia para colar no Event Flow
http://127.0.0.1:8765/user-media/audio/booty.mp3 http://127.0.0.1:8765/user-media/images/reward.png http://127.0.0.1:8765/user-media/video/celebration.mp4
127.0.0.1:8765/actions.html127.0.0.1:8765/user-media/...A opção --bind 127.0.0.1 mantém o servidor neste computador. Esse servidor simples é destinado ao uso em transmissões locais, não à hospedagem pública na Internet.
file://: funciona, mas é mais frágil
Se não quiser executar um servidor local, aponte o OBS para uma página local de Flow Actions e use também URLs de mídia locais:
file:///C:/SSN/social_stream/actions.html?session=YOUR_SESSION_ID file:///C:/SSN/social_stream/user-media/audio/booty.mp3
- Use barras normais e evite espaços ou caracteres especiais nos nomes de pastas e arquivos.
- Tanto a página Flow Actions quanto a mídia devem ser locais. Uma página hospedada
actions.htmlnão consegue ler esse caminho. - Se o OBS recusar um arquivo local, use o método de servidor HTTP local acima.
E a extensão do Chrome?
A extensão usa o mesmo formato do Event Flow, então os fluxos criados no desktop continuam compatíveis. Ações locais armazenam um ID de mídia opaco em vez de um caminho do Windows, macOS ou Linux.
A extensão não pode disponibilizar arquivos arbitrários do seu disco ao OBS sozinha. Sem uma ponte complementar compatível, use Enviar ou uma URL hospedada normal. Se um fluxo importado referenciar mídia local, a extensão explica que é necessário o aplicativo para desktop ou a ponte, em vez de falhar silenciosamente.
Opção 3: hospedar uma biblioteca maior online
| Provedor | Bom para | Notas importantes |
|---|---|---|
| Cloudflare R2 | Melhor escolha geral para uma biblioteca pública de alertas. | O armazenamento Standard atualmente inclui 10 GB-mês por mês e saída gratuita para a internet. Use um domínio personalizado em produção; r2.dev tem limite de requisições e se destina a desenvolvimento. |
| Backblaze B2 | Armazenamento de baixo custo compatível com S3, com URLs públicas de arquivos. | Os primeiros 10 GB são gratuitos atualmente; armazenamento e tráfego de saída excedentes são cobrados após as cotas incluídas. |
| Amazon S3 ou outro host compatível com S3 | Contas de nuvem existentes e controles avançados de acesso. | Ative a leitura pública da mídia, defina os tipos de conteúdo corretos e adicione uma regra CORS somente de leitura se as solicitações do navegador exigirem. |
| GitHub | Alguns arquivos públicos pequenos ou downloads ocasionais de versões. | Repositórios normais bloqueiam arquivos acima de 100 MiB, e sites do GitHub Pages têm limite de 1 GB para o site publicado. Releases permitem arquivos maiores, mas são pouco práticos para uma biblioteca gerenciada de mídia de alertas. |
Público significa público. Qualquer pessoa com a URL do objeto pode acessar a mídia. Não envie arquivos privados, licenciados ou pessoais que não devam ser compartilhados.
Configuração do Cloudflare R2
- Crie um bucket R2 usando a classe de armazenamento Standard .
- Envie sua mídia com nomes claros de pastas, como
audio/,images/, evideo/. - Nas configurações do bucket, ative o acesso público. Use a URL pública de desenvolvimento somente para testes ou conecte um domínio personalizado para uso regular ao vivo.
- Abra a URL de um objeto em uma janela privada/anônima do navegador. Ela deve carregar o arquivo diretamente, sem login nem página de compartilhamento.
- Cole essa URL HTTPS direta na ação do Event Flow.
Imagens simples e áudio normalmente carregam sem configurações CORS personalizadas. Se uma sobreposição personalizada, fonte, player de vídeo ou fetch do navegador informar erro de CORS, abra Bucket → Settings → CORS Policy e adicione uma política somente de leitura:
[
{
"AllowedOrigins": [
"https://socialstream.ninja",
"http://127.0.0.1:8765"
],
"AllowedMethods": ["GET", "HEAD"],
"AllowedHeaders": ["Range"],
"ExposeHeaders": [
"Content-Length",
"Content-Range",
"Accept-Ranges"
],
"MaxAgeSeconds": 3600
}
]
Adicione a origem exata de qualquer outra página que busque os arquivos. Origens não contêm caminhos nem barra final. Se um domínio personalizado já estava em cache antes de adicionar CORS, limpe o cache desse hostname.
Referências oficiais: buckets públicos do R2, CORS do R2, e Preços do R2.
Exemplo de CORS do Backblaze B2
Torne o bucket público, use a URL direta do arquivo e aplique uma regra somente de download se o navegador informar um erro de CORS:
[
{
"corsRuleName": "allowSSNMedia",
"allowedOrigins": ["https://socialstream.ninja"],
"allowedHeaders": ["range"],
"allowedOperations": ["b2_download_file_by_name"],
"exposeHeaders": [
"content-length",
"content-range",
"accept-ranges"
],
"maxAgeSeconds": 3600
}
]
Antes de entrar ao vivo
- Abra a URL exata da mídia em uma janela privada/anônima. Ela deve carregar o arquivo diretamente.
- Use Imagem para mídia PNG, JPG, WebP ou GIF. Use Vídeo/incorporação para URLs de vídeo ou incorporação.
- Prefira MP3 para áudio, PNG/WebP/GIF para imagens e MP4 com H.264/AAC para compatibilidade de vídeo.
- Abra a página Flow Actions no OBS com o mesmo ID de sessão usado pelo Event Flow.
- Use o painel de teste do Event Flow e depois atualize a fonte de navegador do OBS uma vez antes da transmissão real.
- A URL baixa em vez de reproduzir: o host está enviando o tipo de conteúdo incorreto ou uma resposta somente para download.
- Arquivo na nuvem bloqueado: torne-o público e verifique a origem, o método e os cabeçalhos CORS.
- Arquivo local ausente: abra a ação no SSApp e use Revincular.
- Servidor local offline: inicie o SSApp e copie novamente a URL local de Flow Actions se a porta ou o token de segurança tiver mudado.
- Flow Actions hospedado não consegue reproduzir o item local: substitua a URL do OBS pela gerada pelo SSApp.
- Nada chega ao OBS: confirme que a URL de Flow Actions e o Event Flow usam o mesmo ID de sessão.