mirror of
https://github.com/EvolutionAPI/evolution-audio-converter.git
synced 2025-07-14 01:41:24 -06:00
143 lines
3.4 KiB
Markdown
143 lines
3.4 KiB
Markdown
# 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](https://golang.org/doc/install) (versão 1.21 ou superior)
|
|
- [Docker](https://docs.docker.com/get-docker/) (para rodar o projeto em um container)
|
|
- [FFmpeg](https://ffmpeg.org/download.html) (para processamento de áudio)
|
|
|
|
## Instalação
|
|
|
|
### Clonar o Repositório
|
|
|
|
Clone este repositório em sua máquina local:
|
|
|
|
```bash
|
|
git clone https://github.com/EvolutionAPI/evolution-audio-converter.git
|
|
cd evolution-audio-converter
|
|
```
|
|
|
|
### Instalar Dependências
|
|
|
|
Instale as dependências do projeto:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install ffmpeg
|
|
```
|
|
|
|
- No MacOS (via Homebrew):
|
|
|
|
```bash
|
|
brew install ffmpeg
|
|
```
|
|
|
|
- No Windows, baixe o FFmpeg [aqui](https://ffmpeg.org/download.html) e adicione-o ao `PATH` do sistema.
|
|
|
|
### Configuração
|
|
|
|
Crie um arquivo `.env` no diretório raiz do projeto com a seguinte configuração:
|
|
|
|
```env
|
|
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:
|
|
|
|
```bash
|
|
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**:
|
|
|
|
```bash
|
|
docker build -t audio-service .
|
|
```
|
|
|
|
2. **Rodar o container**:
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
curl -X POST -F "file=@caminho/do/audio.mp3" http://localhost:4040/process-audio \
|
|
-H "apikey: sua_chave_api_secreta_aqui"
|
|
```
|
|
|
|
#### Envio como Base64
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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:
|
|
|
|
```json
|
|
{
|
|
"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](LICENSE). |