Web Rádio - Pedidos Musicais Automáticos

No presente artigo, demonstro um pequeno sistema feito por mim em Shell Script e PHP, de uma Web Rádio com pedido musical automático. Onde o usuário digita uma palavra-chave para cantor e música, e o sistema a toca automaticamente.

[ Hits: 14.485 ]

Por: Alessandro Périgo em 29/02/2012 | Blog: http://www.neuroinformatica.com.br


Requisitos e Instalação



Requisitos

- Requisitos para instalação:
  • Servidor Linux Slackware, no caso, usei somente em modo texto (opcional), mas fica a seu critério;
  • Placa de áudio com recurso de Audio MIX ou Cabo P2 da saída de áudio na entrada de linha ou Microfone;
  • Servidor ICECAST-kh, mas tem que ser nesta versão KH, e não na versão normal do Icecast, pois iremos usar o recurso de áudio AAC Plus com o tocador de plugin Flash gratuito na página;
  • Encoder DarkIce compilado com plugin AAC Plus;
  • Biblioteca LibAAC-Plus;
  • Programa MPG123 para tocar as músicas;
  • Conexão com a Internet com boa taxa de Upload;
  • Servidor WEB, usei o Apache com suporte a PHP;
  • Banco de dados de Músicas MP3.

Instalação

Faça o download dos arquivos:
Arquivos “mus33” e “loopex” atualizados, entre outros:

Bom, o sistema é simples e funcional, ficou mais de 1 mês rodando sem quedas e sem apresentar problemas. Não vou explicar como instalar e configurar o Icecast, bem como o Darkice e suas respectivas bibliotecas.

Descompacte o arquivo “.zip” em “/geral/”. Depois de tudo instalado e funcionando, vamos para os scripts (que são 2 principais).

Arquivo “mus33”, segue abaixo:

#!/bin/sh
#Desenvolvido por Alessandro Périgo
#email: alessandroperigo@hotmail.com
#Por Favor - Se repassar o codigo mantenha o nome do autor.
while :;
do
c=1
while [ $c -le 4 ]
do
        echo "Welcone $c times"
#killall mpg123 && killall mpg123 && killall mpg123 && killall mpg123
 (( c++ ))
sleep 1
done


lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then

STATUS_ABC=`ps ax | grep mpg123 | grep -v grep | grep -v $0 | awk '{print $1}'`
if [ ! -n "$STATUS_ABC" ]
then
echo "Musicas Variadas" > aovivo
mpg123 -C -z /geral/musica/variados/*.mp3
echo "0" > vinheta

fi
fi
fi
fi
fi
fi
sleep 1
done


Estes dois arquivos trabalham em loop infinito, portando, abra um terminal pra cada um deles, o “mus33” recebe os pedidos do arquivo, lista e os toca. O arquivo “loopex” fica responsável por tocar as músicas variadas, pois quando não há pedidos, o sistema não pode parar, e a rádio tem que continuar tocando músicas mesmo sem pedidos.

E quando há um pedido de música, e esta música consta no banco de dados, o sistema pára a música que está sendo tocada pelo sistema, e toca uma vinheta, logo depois, toca as músicas que estão na lista de pedidos.

Lembrando que o arquivo “lista” tem sempre prioridade, caso não existir nenhuma música neste arquivo, ele volta a tocar as músicas variadas que estipulei.
    Próxima página

Páginas do artigo
   1. Requisitos e Instalação
   2. Estrutura, Pedidos e o Site
Outros artigos deste autor

Instalando uma placa wireless

Leitura recomendada

Programação: Tomada de decisão

DHCP sem (quase :-D) mistérios

Bioinformática - Análise Filogenética com Clustalx

Software envelhece?

mplayer 1.0pre1 :: Instalando e configurando

  
Comentários
[1] Comentário enviado por andrewr360 em 29/02/2012 - 15:41h

uma sugestão, seria mostrar as musica, caso escolha somente o nome da banda!!

como tem no kboing

[2] Comentário enviado por fernandoguedes em 29/02/2012 - 15:48h

Interessante, vou lhe dar duas sugestões, mas não tem nada haver com o código e sim com o seu licenciamento, que tal fazer um commit no GitHub com o seu código e licenciá-lo sob alguma GPL ou outra licença? Seria massa, tenho certeza que esse código seria interessante pra muita gente e que ambos poderiam contribuir para melhorá-lo, do mais, tá massa!

[3] Comentário enviado por perigo em 29/02/2012 - 16:01h

Andrewr360 - Thank You

Fernando Guedes ! .. Obrigado pelas suas informacoes, estarei verificando isso sobre licencia-lo sobre GPL, na verdade eu nem tenho ideia de como proceder. Mas agradeço a ideia.

Aos Demais:

Estou verificando aqui nos logs que muita gente esta colocando nomes errados ou mesmo as musicas nao existem no banco de dados, porisso que nao estao tocando. Outra coisa meu banco de dados de musicas tem algumas musicas que estao com defeito entao o mpg123 as vezes enrosca.




[4] Comentário enviado por perigo em 01/03/2012 - 18:16h

Amigos, Fiz uma uma correcao conforme descricao abaixo:

=====================================================
WeB Radio - Pedidos Automaticos Versao 1.0
Autor: Alessandro Périgo
Email: alessandroperigo@hotmail.com
Copyright 2011

01/03/2012

# corrigido 1 bug que na chamada do programa mus33 ele cria um novo
# processo deixando assim varios processos conforme o programa vai trabalhando
# entao codigo abaixo pega o pid do processo do grep e do mus33 e os mata depois
# eh feito uma chamada de em um novo processo.
# se observar na saida ele vai falar que deu um erro, porque ele tenta matar o processo do grep tbm
# isso eh normal !

======================================================

Entao, as correcoes e foi adicionado comentarios nos codigos...
Portanto tem que baixar o arquivo com as novas alteracoes no link abaixo, ou link la em cima que ja esta atualizado.

http://www.bestradio.com.br/arquivos_radio_automatico.zip








[5] Comentário enviado por cirinho em 16/04/2012 - 20:10h

Isso funciona com o shoutcast sc_serv e e a playlist sc_trans?

Pelo que estou vendo é ice que nunca usei como servidor de webrádio.

[6] Comentário enviado por perigo em 16/04/2012 - 22:30h


Nao fiz o teste, porem o darkice tem suporte pra funcionar no shoutcast. Portanto acredito que funcione sem problemas. A minha radio esta off, nao tenho nobreik entao toda hora q cai a energia tem q ligar e isso toma tempo. Mas O Icecast eh super simples de configurar, funciona 100% pode fazer o broadcast em varias portas com diferentes audios, somente mudando o arquivo de configuracao e abrindo um processo pra cada porta.



[7] Comentário enviado por perigo em 05/10/2012 - 12:40h

Server esta Online novamente.
Agora estou com uma conexao Dedicada aqui em casa.
Esta transmitindo em AAC-Plus a 70kbps.
www.bestradio.com.br em todos os dispositivos.
ou no winamp: http://www.bestradio.com.br:8000/aovivo


[8] Comentário enviado por perigo em 18/10/2012 - 12:28h

Estou trabalhando em outro sistema desse ai bem mais elaborado.. com binario e arquivo de conf. Alem disso o problema q cortava a musica variadas para entrar a musica dos pedidos agora ele aguarda a musica terminar. E os dois arquivos foram fundidos em 1 apenas. Agora tudo mais simples.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts