Skip to content

LealLara/RadioStream

Repository files navigation

RadioStream API

API REST desenvolvida em C# .NET para simular uma rádio online com fila de reprodução, processamento em background e streaming de áudio, incluindo uma interface web simples para reprodução.


Funcionalidades

  • Adicionar músicas à fila de reprodução
  • Processamento automático das músicas (BackgroundService)
  • Controle de estado da rádio (Playing, Paused, Stopped)
  • Streaming de áudio via HTTP
  • Listagem de músicas disponíveis
  • Interface web para reprodução (player)

Arquitetura

O projeto segue uma arquitetura em camadas baseada em separação de responsabilidades:

  • Domain → Entidades e regras básicas
  • Application → Serviços e lógica de negócio
  • Infrastructure → Implementações técnicas (fila em memória)
  • API → Entrada HTTP, controllers e arquivos estáticos

Tecnologias utilizadas

  • .NET 8
  • ASP.NET Core Web API
  • BackgroundService
  • ConcurrentQueue
  • Swagger
  • HTML + JavaScript (player web)

Como executar

dotnet run

A API estará disponível em:

https://localhost:7011/swagger

Interface Web (Player)

Acesse o player diretamente no navegador:

https://localhost:7011/index.html

Funcionalidades:

  • Selecionar músicas
  • Reproduzir áudio diretamente no browser
  • Integração com endpoints da API

Endpoints

POST /radio/enqueue

Adiciona uma música à fila da rádio.

GET /radio/status

Retorna o estado atual da rádio.

GET /songs

Retorna a lista de músicas disponíveis.

GET /stream/{fileName}

Realiza o streaming do arquivo de áudio.

Exemplo:

GET /stream/song1.mp3

Exemplo de resposta /songs

[
  {
    "title": "Lo-fi Beat",
    "artist": "Free Audio",
    "filePath": "song1.mp3",
    "duration": 10
  },
  {
    "title": "Chill Vibes",
    "artist": "Free Audio",
    "filePath": "song2.mp3",
    "duration": 8
  }
]

Estrutura de arquivos

RadioStream.Api/
 ├── Controllers/
 ├── Workers/
 ├── Program.cs
 └── wwwroot/
     ├── index.html
     └── songs/
         ├── song1.mp3
         ├── song2.mp3

Arquivos de áudio

Os arquivos de áudio utilizados são royalty-free e incluídos apenas para fins de demonstração.


Diferenciais do projeto

  • Processamento assíncrono com BackgroundService
  • Fila em memória com ConcurrentQueue
  • Streaming HTTP com suporte a range
  • Interface web integrada à API
  • Arquitetura limpa e escalável

Autor

Projeto desenvolvido para fins de estudo e portfólio.

About

Esta aplicação é um mini Spotify backend simplificado: Uma API que: Gerencia músicas Cria uma “rádio” Faz streaming de áudio Permite tocar, pausar, pular músicas

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors