Skip to content

gpuentes/evolution-audio-converter

 
 

Repository files navigation

Evolution Audio Converter

Este projeto é um micro serviço em Go que processa arquivos de áudio para whatsapp, os converte para o formato opus e retorna tanto a duração do áudio quanto o arquivo convertido em base64. O serviço aceita arquivos de áudio enviados como form-data, base64 ou URL.

Requisitos

Antes de começar, você precisará ter os seguintes itens instalados:

  • Go (versão 1.21 ou superior)
  • Docker (para rodar o projeto em um container)
  • FFmpeg (para processamento de áudio)

Instalação

Clonar o Repositório

Clone este repositório em sua máquina local:

git clone https://github.com/EvolutionAPI/evolution-audio-converter.git
cd evolution-audio-converter

Instalar Dependências

Instale as dependências do projeto:

go mod tidy

Instalar o FFmpeg

O serviço depende do FFmpeg para converter o áudio. Certifique-se de que o FFmpeg está instalado no seu sistema.

  • No Ubuntu:

    sudo apt update
    sudo apt install ffmpeg
  • No MacOS (via Homebrew):

    brew install ffmpeg
  • No Windows, baixe o FFmpeg aqui e adicione-o ao PATH do sistema.

Configuração

Crie um arquivo .env no diretório raiz do projeto com a seguinte configuração:

PORT=4040
API_KEY=sua_chave_api_secreta_aqui

Isso define a porta onde o serviço será executado.

Rodando o Projeto

Localmente

Para rodar o serviço localmente, use o seguinte comando:

go run main.go

O servidor estará disponível em http://localhost:4040.

Usando Docker

Se preferir rodar o serviço em um container Docker, siga os passos abaixo:

  1. Buildar a imagem Docker:

    docker build -t audio-service .
  2. Rodar o container:

    docker run -p 4040:4040 --env-file=.env audio-service

    Isso irá iniciar o container na porta especificada no arquivo .env.

Como Usar

Você pode enviar requisições POST para o endpoint /process-audio com um arquivo de áudio nos seguintes formatos:

  • Form-data (para enviar arquivos)
  • Base64 (para enviar o áudio codificado em base64)
  • URL (para enviar o link do arquivo de áudio)

Autenticação

Todas as requisições devem incluir o cabeçalho apikey com o valor da API_KEY configurada no arquivo .env.

Exemplo de Requisição via cURL

Envio como Form-data

curl -X POST -F "file=@caminho/do/audio.mp3" http://localhost:4040/process-audio \
  -H "apikey: sua_chave_api_secreta_aqui"

Envio como Base64

curl -X POST -d "base64=$(base64 caminho/do/audio.mp3)" http://localhost:4040/process-audio \
  -H "apikey: sua_chave_api_secreta_aqui"

Envio como URL

curl -X POST -d "url=https://exemplo.com/caminho/para/audio.mp3" http://localhost:4040/process-audio \
  -H "apikey: sua_chave_api_secreta_aqui"

Resposta

A resposta será um JSON contendo a duração do áudio e o arquivo convertido em base64:

{
  "duration": 120,
  "audio": "UklGR... (base64 do arquivo)"
}
  • duration: A duração do áudio em segundos.
  • audio: O arquivo de áudio convertido para o formato opus, codificado em base64.

Licença

Este projeto está sob a licença MIT.

About

EVO-API-audio_converter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 86.5%
  • Dockerfile 13.5%