Um aplicativo web simples para criar um proxy local de streams de rádio online, permitindo integrá-los ao Farming Simulator 19, 22 e 25 usando URLs locais (ex.: http://127.0.0.1:9000/stream.mp3). O sistema converte streams de rádio (como https://r6.ciclano.io/proxy/viva945/stream) em MP3 usando FFmpeg e os serve localmente, gerando entradas XML compatíveis com os jogos.
- Adiciona rádios via interface web com nome, URL e porta opcional.
- Converte streams de áudio para MP3 usando FFmpeg, sem salvar arquivos no disco (apenas buffer na memória).
- Lista rádios ativas com players de teste para verificar o áudio.
- Gera entradas XML no formato correto (
<streamingInternetRadio href="..."/>) para os jogos. - Inclui um tutorial embutido para configurar as entradas XML no Farming Simulator.
- Persistência de rádios em um arquivo
radios.json.
- Python 3.6+: Para rodar o backend Flask.
- FFmpeg: Para converter streams de áudio. Baixe em ffmpeg.org e adicione ao PATH do sistema.
- Node.js (opcional): Apenas se precisar recompilar Tailwind CSS.
- Um navegador moderno para acessar a interface web.
-
Clone o repositório:
git clone https://github.com/viniperini/fs-radio-proxy.git cd fs-radio-proxy -
Crie um ambiente virtual (opcional, mas recomendado):
python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
-
Instale as dependências:
pip install flask psutil
-
Instale o FFmpeg:
- No Windows: Baixe o executável em gyan.dev e adicione ao PATH.
- No Linux/Mac: Instale via gerenciador de pacotes (ex.:
sudo apt install ffmpegno Ubuntu).
-
Inicie o servidor:
python app.py
O servidor rodará em
http://localhost:8080. -
Acesse a interface:
- Abra
http://localhost:8080no navegador. - Preencha o formulário para adicionar uma rádio:
- Nome: Ex.:
Rádio Viva 94.5 - URL: Ex.:
https://r6.ciclano.io/proxy/viva945/stream - Porta: Deixe em branco para automática (a partir de 9000) ou especifique uma.
- Nome: Ex.:
- Clique em Adicionar.
- Abra
-
Teste o áudio:
- As rádios aparecem na seção "Rádios Ativas" com um player. Clique para testar o stream.
-
Configure no Farming Simulator:
- Clique no botão "📖 Como adicionar as entradas XML ao Farming Simulator" para ver o tutorial.
- Copie a entrada XML gerada (ex.:
<streamingInternetRadio href="http://127.0.0.1:9000/stream.mp3" />). - Adicione ao arquivo
streamingInternetRadios.xmlna pasta do jogo:- FS19:
C:\Users\[SeuNome]\Documents\My Games\FarmingSimulator2019\music\ - FS22:
C:\Users\[SeuNome]\Documents\My Games\FarmingSimulator2022\music\ - FS25:
C:\Users\[SeuNome]\Documents\My Games\FarmingSimulator2025\music\
- FS19:
- Certifique-se de que
<soundPlayer allowStreams="true"/>está nogameSettings.xml. - Mantenha o servidor (
app.py) rodando enquanto joga.
app.py: Backend Flask que gerencia rádios, inicia o FFmpeg e serve a interface.index.html: Interface web com formulário, lista de rádios, tutorial dropdown e entradas XML.static/script.js: Lógica do frontend (adicionar/remover rádios, toggle do tutorial, atualização da interface).radios.json: Arquivo gerado automaticamente para persistência das rádios.
- O FFmpeg usa apenas memória RAM para streaming, sem salvar arquivos no disco (exceto
radios.json). - As portas são atribuídas automaticamente a partir de 9000. Use portas manuais com cuidado para evitar conflitos.
- Em caso de erro no player, verifique os logs do FFmpeg no console do
app.pye certifique-se de que a porta está livre (netstat -ano | findstr :9000no Windows).
- Faça um fork do repositório.
- Crie uma branch para sua feature:
git checkout -b minha-feature. - Commit suas mudanças:
git commit -m "Adiciona minha feature". - Envie para o repositório remoto:
git push origin minha-feature. - Abra um Pull Request.
MIT License.
- Inspirado na necessidade de adicionar rádios customizadas ao Farming Simulator.
- Usa Flask, FFmpeg e Tailwind CSS.