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:

Continue explorando

Veja também

Todos os projetos