Ferramentas · No ar
Rádio No Ar
A web rádio de antigamente, com locutor e pedidos.
Web rádio ao vivo, igual para todos: a mesma música e a mesma fala do locutor no mesmo instante. Locutor de voz neural (Piper, no navegador), músicas do YouTube só em áudio e uma fila pública de pedidos e recados guardada no servidor.
Sobre o projeto
O que é Rádio No Ar
A Rádio No Ar funciona como uma rádio de verdade: existe uma só transmissão, e todo mundo que sintoniza ouve a mesma música, na mesma posição, e o mesmo locutor falando no mesmo instante. Quem liga o rádio no meio de uma faixa cai no meio dela, junto com os outros. O que está no ar, o que vem a seguir e a fila de pedidos moram no servidor.
As músicas vêm do YouTube, mas o vídeo fica escondido: o player toca só o som. A voz do locutor não é gravada: o servidor escreve a fala e marca a hora, e cada navegador gera a mesma voz na hora, pelo Piper TTS, outro projeto deste portfólio. Quando o locutor fala, a música abaixa e depois volta. Há 4 locutores, cada um no seu turno, com troca de turno ao vivo, e 14 faixas na programação.
Quer ouvir a sua música? Cole o link do YouTube, diga o seu nome e, se quiser, escreva um recado: o pedido entra na fila de todos e o locutor anuncia "pedido de fulano" na próxima troca. Também dá para mandar só um recado, que o locutor lê por cima da introdução da música seguinte.
Recursos
O que o Rádio No Ar faz
Todo mundo ouve a mesma coisa
A mesma faixa na mesma posição e a mesma fala do locutor no mesmo instante, em qualquer aparelho. O navegador se acerta pela hora do servidor.
Locutor com voz neural
4 locutores, cada um com uma voz e um turno. A fala é gerada no seu navegador, na hora, com humor calmo, normal ou animado e pausas nas vírgulas; o servidor só manda o texto e a hora de falar.
Pedidos e recados de todos
Cole o link de um vídeo e o seu nome, com um recado se quiser, ou mande só o recado: o locutor lê por cima da música, sem esperar a troca. A fila é uma só e todos a veem. Só quem pediu consegue cancelar o próprio pedido.
Um volume só, e o locutor se ouve
Um controle de volume para tudo, como em qualquer rádio. Quando o locutor fala, a música cai uns 17 dB e a voz é levada a um nível fixo, para ouvir bem por cima do fundo.
Player escondido
O vídeo do YouTube toca fora da tela: só o som. Nos ajustes, "Mostrar o vídeo" traz a imagem de volta.
Grade com troca de turno ao vivo
Cada locutor tem o seu horário (hora de Brasília). Na virada, quem sai se despede e passa o microfone a quem entra, cada um com a sua voz.
Programação própria
14 faixas de canais que oferecem música para uso livre, sorteadas sem repetir até a lista acabar. Uma faixa nunca passa de 5 minutos no ar.
A música começa já
O rádio liga na hora e o locutor entra assim que a voz termina de baixar, sem fazer você esperar a tela.
Moderação e limites
O título vem do YouTube, não do navegador. Nome e recado passam por filtro de palavrões, sem link nem telefone. Cada IP pede devagar, e a fila tem teto.
Tecnologias
Por dentro do Rádio No Ar
Uma linha do tempo no servidor
O servidor guarda qual faixa está no ar desde quando, a próxima e a hora exata da fala. Nada toca no servidor: ele só marca os horários, calculados pelo relógio, e guarda tudo no SQLite para um reinício não derrubar a música.
Relógio sincronizado com o servidor
Cada resposta do servidor vira uma amostra de relógio (vale a de menor ida e volta). A faixa começa na posição certa, a posição é conferida e corrigida durante a música, e a fala sai na hora marcada.
YouTube IFrame API como tocador de áudio
Um player do YouTube, fora da tela, troca de vídeo com loadVideoById a partir da posição do servidor. O rádio controla volume e fade pela API e confere erros de incorporação (100, 101 e 150).
Piper TTS como módulo
O locutor usa piper-tts.js e piper-player.js, os mesmos arquivos do projeto Piper TTS. A fala é publicada 50 segundos antes e cada navegador gera o áudio nesse prazo; quem não conseguiu a tempo fica sem a fala e a música segue.
Emissora, roteiro e ouvinte são funções puras
A emissora (servidor), o roteiro do locutor, a fila e o ouvinte (navegador) não tocam em tela nem em áudio e rodam igual no Node, onde são testados com relógio falso, inclusive dois ouvintes entrando em momentos diferentes.
Texto de ouvinte é dado de fora
O título vem do oEmbed do YouTube, o nome e o recado são limpos e filtrados no servidor, e tudo só entra na tela por textContent. Há um interruptor no servidor que desliga os recados sem apagar nada.
FAQ
Perguntas frequentes
O meu pedido toca para todo mundo?
Toca. A fila é uma só, de todos os ouvintes, e fica no servidor: quando chega a vez, o locutor anuncia o pedido com o seu nome e todo mundo ouve a música junto.
Posso mandar só um recado, sem música?
Pode. Em "Peça sua música ou mande um recado", escolha "Só um recado". O locutor lê na próxima troca de música, por cima da introdução. Nada de link, telefone ou palavrão: o texto vai ao ar para todos.
Por que o locutor demora a aparecer na primeira vez?
A voz tem cerca de 63 MB e baixa em segundo plano. A música já toca, e o locutor entra assim que o download termina. Nas próximas visitas a voz já está guardada no navegador.
Todos ouvem a mesma coisa mesmo?
A música e a hora da fala são as mesmas. Quem ainda não baixou a voz do locutor ouve só a música. A voz de cada navegador pode terminar um instante antes ou depois, porque cada aparelho a gera por conta própria.
Que links posso pedir?
Links de um vídeo do YouTube (youtube.com/watch, youtu.be, shorts ou embed). Playlists não entram. Vídeos curtos demais (menos de 20 segundos), ao vivo ou com a incorporação bloqueada pelo dono são recusados na hora.
Dá para cancelar um pedido?
Dá, enquanto ele espera na fila, e só pelo mesmo navegador que o fez (o código para cancelar fica guardado nele).
O vídeo está escondido. Posso vê-lo?
Pode: nos ajustes, ligue "Mostrar o vídeo".
Funciona no celular?
Só foi testado no Chrome do computador. No celular, o início precisa de um toque, e o YouTube costuma pausar o som com a tela bloqueada.
De onde vêm as músicas da programação?
De canais que oferecem a música para uso livre: NoCopyrightSounds e White Bat Audio. Os pedidos podem ser de qualquer vídeo que permita incorporação.
O que o servidor guarda?
A fila de pedidos e recados (nome, título da música e o texto do recado) até serem lidos, e o estado da transmissão. Para contar quantos ouvem agora, cada aba sorteia um número sem ligação com você, que some em segundos. Os números abertos são só contadores anônimos: vezes que o rádio foi ligado e pedidos feitos.
Gostou do Rádio No Ar? Dá para apoiar o trabalho: Me pague um café
Continue explorando
Veja também
Mercado Helper
Listas de compras para usar no celular: adicione vários itens de uma vez, marque com um toque e, se quiser, informe preço e quantidade para ver o total.
Ver projeto No arShareSoFast
Compartilhe um arquivo de até 25 MB por um link curto, com senha e uma carta opcional. Depois de 1 dia, tudo é apagado de verdade.
Ver projeto No arRec2Link
Grave a tela, o áudio, os dois ou só a webcam direto no navegador. O arquivo é comprimido aí mesmo, ganha um link curto e é apagado sozinho em 24 horas.
Ver projeto