Voltar ao portfólio
Open source

AllInOne Converter

Estudo de caso: conversor de mídia em microserviços

React 18
Laravel 10
Python 3.11
FFmpeg
yt-dlp
libtorrent
Redis
MySQL
Docker
Nginx

O que ele faz

O AllInOne Converter roda inteiro na sua máquina, dentro do Docker. Ele converte vídeo e áudio com FFmpeg, baixa de mais de mil sites com yt-dlp, puxa torrent por magnet ou por arquivo .torrent e transmite por HLS o que ainda está baixando. É um projeto aberto, e o README pede colaboradores.

Como está montado

O front em React fala com um gateway em Laravel, e o gateway reparte o trabalho entre quatro serviços em Python, cada um no seu container. O Redis segura a fila, o MySQL guarda o estado dos jobs e os serviços trocam arquivo por volumes compartilhados. Quebrar assim deixa escalar só a parte que estiver apertada.

Front em React

:3000

Gateway em Laravel

Nginx, PHP-FPM e Supervisor · :8080

Converter

Python + FFmpeg:8001

Downloader

Python + yt-dlp:8002

Torrent

Python + libtorrent:8003

Streamer

Python + HLS:8004

Redis

fila · :6379

MySQL

banco · :3306

Os quatro serviços

Converter

:8001

Python + FFmpeg

  • Perfis de conversão já prontos
  • Thumbnail gerada sozinha
  • Gera o HLS para o streaming
  • Usa aceleração por hardware quando a máquina tem

Downloader

:8002

Python + yt-dlp

  • YouTube, Vimeo e Dailymotion
  • Twitter/X, Instagram e TikTok
  • Mais de mil sites no total
  • Consulta as informações do vídeo antes de baixar

Torrent

:8003

Python + libtorrent

  • Magnet link ou arquivo .torrent
  • Dá para escolher quais arquivos baixar
  • Pause e resume por item
  • Peers e seeds em tempo real

Streamer

:8004

Python + HLS

  • Transcodifica sob demanda
  • De 360p a 1080p
  • Cache dos segmentos já gerados
  • Funciona em arquivo que ainda está baixando

As telas

O painel, com a conversão a um clique e a contagem do que está na fila

O painel, com a conversão a um clique e a contagem do que está na fila

Arquivo, URL ou magnet entram pela mesma caixa

Arquivo, URL ou magnet entram pela mesma caixa

O gerenciador de torrent, com velocidade, progresso e peers

O gerenciador de torrent, com velocidade, progresso e peers

Subindo na sua máquina

Precisa de Docker 20.10, Docker Compose 2.0, 8GB de RAM e 20GB de disco. Depois disso é clonar e subir, sem arquivo de configuração para preencher.

git clone https://github.com/Advansoftware/allInOne-Converter.git
cd allInOne-Converter
make up

O front sobe em localhost:3000 e a API em localhost:8080. O Makefile ainda traz atalhos para logs, migrations e para checar a saúde dos containers.