Você tem uma fila de links do YouTube e um aplicativo PHP que precisa de MP3s esta semana. Ao final deste guia, você chamará a API de Vídeo do Youtube para Áudio do seu backend PHP, obterá um link direto para MP3 além de metadados e lidará com isso de forma segura em produção—usando uma chave de API do Zyla API Hub.
O que você pode construir com a API de Vídeo do Youtube para Áudio
A API de Vídeo do Youtube para Áudio converte um vídeo do YouTube (por ID) em um arquivo de áudio e retorna:
- Um link direto para o arquivo MP3
- O título do vídeo
- Tamanho do arquivo
- Progresso e status da conversão
- Duração em segundos (ponto flutuante)
Casos de uso típicos incluem geração de feeds de podcast a partir de vídeos curtos, pipelines de transcrição interna (primeiro obtenha o MP3, depois alimente para o reconhecimento de fala), recortes de conteúdo automatizados ou fluxos de trabalho de escuta offline. O endpoint é projetado para vídeos curtos (cerca de 5 minutos ou menos).
Começando no Zyla API Hub
O Zyla API Hub centraliza milhares de APIs por trás de uma única conta, assinatura e chave de API. Você se inscreve uma vez e chama endpoints em várias categorias com um cabeçalho de Autorização consistente. A cobrança é por assinatura + cota (não é pago por chamada). Para a primeira API que você experimentar, você normalmente recebe um teste de 7 dias ou 50 solicitações. Não há Plano Gratuito; verifique a página da API para opções de acesso e preços atuais antes de enviar.
- Abra a página da API: API de Vídeo do Youtube para Áudio no Zyla.
- Clique em Inscrever-se (ou Começar Teste Gratuito quando disponível) e obtenha sua chave de API.
- Use Autorização: Bearer YOUR_API_KEY em cada solicitação para endpoints da API zylalabs.com.
Pronto para integrar? Crie sua conta de desenvolvedor gratuita aqui para obter uma chave de API: Registrar.
Referência de endpoint
A API expõe um endpoint acionável para conversão. Use a URL e os parâmetros exatos mostrados abaixo.
Obter Áudio
- Método: GET
- URL: https://zylalabs.com/api/1812/youtube-video-to-audio-api/5870/get-audio
- Descrição: Forneça um ID de vídeo do YouTube. Os vídeos devem ter aproximadamente 5 minutos ou menos.
- Parâmetro de consulta obrigatório:
- id (string): o ID do vídeo do YouTube
cURL
curl -s -X GET "https://zylalabs.com/api/1812/youtube-video-to-audio-api/5870/get-audio?id=p-Z3YrHJ1sU" \
-H "Authorization: Bearer YOUR_API_KEY"
JSON (RESPOSTA REAL DA API)
{
"link": "https://eta.123tokyo.xyz/get.php/9/9e/ty7nkwYqodA.mp3?cid=MmEwMTo0Zjg6YzAxMjozMmVlOjoxfE5BfERF&h=FwrcvY5cIfOO0jyXh5C-6Q&s=1737705748&n=%E2%82%B91%2C07%2C000%20_iPhone%2016%20Pro%20Max_%20USA%20to%20INDIA_%20%23shorts%20%23youtubeshorts&uT=R&uN=QWxlam9aeWxhTGFicw%3D%3D",
"title": "₹1,07,000 *iPhone 16 Pro Max* USA to INDIA! #shorts #youtubeshorts",
"filesize": 417480,
"progress": 100,
"duration": 22.896054233758,
"status": "ok",
"msg": "success"
}
O que esses campos significam e como usá-los:
- link: URL direta para o MP3 gerado. Inclui parâmetros codificados em URL; trate-o como uma string opaca e não a modifique.
- title: Título original do vídeo. Útil para nomeação de arquivos ou metadados.
- filesize: Tamanho do MP3 em bytes. Bom para verificações de cota ou planejamento de armazenamento.
- progress: 100 indica conclusão.
- duration: Duração em segundos (float). Use para UX (por exemplo, barras de progresso) ou processamento posterior.
- status/msg: Indicadores de status simples. Espere "ok" e "success" em uma execução bem-sucedida.
Integração PHP (curl_init) com tratamento robusto
Abaixo está um exemplo mínimo em PHP para chamar o endpoint, analisar o JSON e, opcionalmente, baixar o MP3 para o disco. Ele usa apenas o parâmetro id obrigatório e o cabeçalho de Autorização.
PHP
<?php
$apiKey = 'YOUR_API_KEY';
$videoId = 'p-Z3YrHJ1sU'; // Substitua pelo seu ID de vídeo do YouTube
$url = 'https://zylalabs.com/api/1812/youtube-video-to-audio-api/5870/get-audio?id=' . urlencode($videoId);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Accept: application/json'
],
CURLOPT_TIMEOUT => 30,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($response === false || $httpCode < 200 || $httpCode >= 300) {
http_response_code(502);
echo json_encode([
'error' => 'Falha na solicitação da API',
'httpCode' => $httpCode,
'curlError' => $error,
]);
exit;
}
data = json_decode($response, true);
if (!is_array($data) || empty($data['status']) || $data['status'] !== 'ok') {
http_response_code(500);
echo json_encode([
'error' => 'Resposta inesperada da API',
'response' => $response,
]);
exit;
}
// Extrair campos
$link = $data['link'] ?? null;
$title = $data['title'] ?? 'sem título';
$filesize = $data['filesize'] ?? null;
$duration = $data['duration'] ?? null;
echo "Título: {$title}\n";
echo "Duração (s): {$duration}\n";
echo "Tamanho do arquivo (bytes): {$filesize}\n";
echo "URL do MP3: {$link}\n";
// Opcional: baixar o MP3
if ($link) {
$safeTitle = preg_replace('/[^A-Za-z0-9_\-]+/', '_', $title);
$target = __DIR__ . '/' . $safeTitle . '.mp3';
$fp = fopen($target, 'w');
if ($fp === false) {
throw new RuntimeException('Não é possível abrir o arquivo para escrita: ' . $target);
}
$ch2 = curl_init($link);
curl_setopt_array($ch2, [
CURLOPT_FILE => $fp,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_TIMEOUT => 120,
]);
$ok = curl_exec($ch2);
$err2 = curl_error($ch2);
curl_close($ch2);
fclose($fp);
if (!$ok) {
unlink($target);
throw new RuntimeException('Falha no download: ' . $err2);
}
echo "Salvo: {$target}\n";
}
Exemplo em JavaScript (Node.js fetch)
Este exemplo demonstra uma simples solicitação GET usando fetch nativo no Node.js 18+ ou undici. Ele imprime os mesmos campos-chave e mostra como transmitir o MP3 se você precisar persistir.
JavaScript
import fs from 'node:fs';
import { pipeline } from 'node:stream';
import { promisify } from 'node:util';
const streamPipeline = promisify(pipeline);
const API_KEY = 'YOUR_API_KEY';
const videoId = 'p-Z3YrHJ1sU';
const url = `https://zylalabs.com/api/1812/youtube-video-to-audio-api/5870/get-audio?id=${encodeURIComponent(videoId)}`;
const res = await fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Accept': 'application/json'
}
});
if (!res.ok) {
throw new Error(`Erro na API: ${res.status} ${res.statusText}`);
}
const data = await res.json();
if (data.status !== 'ok') {
throw new Error(`Conversão não ok: ${JSON.stringify(data)}`);
}
console.log('Título:', data.title);
console.log('Duração (s):', data.duration);
console.log('Tamanho do arquivo (bytes):', data.filesize);
console.log('URL do MP3:', data.link);
// Download opcional
if (data.link) {
const mp3Res = await fetch(data.link);
if (!mp3Res.ok) throw new Error(`Falha no download: ${mp3Res.status}`);
const safeTitle = data.title.replace(/[^A-Za-z0-9_\-]+/g, '_');
await streamPipeline(mp3Res.body, fs.createWriteStream(`${safeTitle}.mp3`));
console.log(`Salvo: ${safeTitle}.mp3`);
}
Fluxo de ponta a ponta em produção
Use esta sequência para encaixar a API em seu pipeline:
- Valide a entrada: certifique-se de passar apenas o ID do vídeo do YouTube (por exemplo, p-Z3YrHJ1sU). Se você tiver URLs completas, extraia o parâmetro v ou o ID do caminho do seu lado.
- Chame o endpoint Obter Áudio com Autorização: Bearer YOUR_API_KEY.
- Verifique o status e a msg; prossiga apenas se o status for ok.
- Leia a duração para impor seus próprios limites superiores para o tempo de processamento e armazenamento. O endpoint é destinado a vídeos de cerca de 5 minutos ou menos.
- Consuma o link para baixar o MP3. Trate-o como uma URL opaca; não modifique os parâmetros de consulta.
- Armazene o tamanho do arquivo e o título como metadados para serviços posteriores (indexação, metadados de objeto S3, etc.).
Dicas práticas que economizam tempo
- Timeouts: Defina timeouts de cliente HTTP razoáveis (por exemplo, 30s para chamada da API, mais longo para download de MP3) para evitar trabalhadores travados.
- Tentativas: Para erros de rede transitórios, tente novamente a chamada da API com backoff. Não insista em tentativas em respostas 4xx.
- Cache: Se você processar os mesmos IDs com frequência, armazene respostas bem-sucedidas (título, tamanho do arquivo, duração, link) em um armazenamento e defina sua própria retenção. Revalide conforme necessário.
- Nomes de arquivos: Títulos de vídeos podem conter caracteres não adequados para sistemas de arquivos. Sanitizar antes de salvar.
- Unidades: tamanho do arquivo é em bytes; duração é em segundos (float). Converta antes de exibir.
- Guarda de comprimento: Imponha seu próprio limite próximo de 5 minutos para evitar trabalho desperdiçado em vídeos mais longos.
Usando a API de agentes de IA via MCP
Você pode chamar o mesmo endpoint de ferramentas compatíveis com MCP (Claude Code, Cursor, Windsurf, etc.) usando o hub MCP da Zyla. Configure seu cliente para usar a base MCP e inclua sua chave de API:
- Base MCP: https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
- Você ainda emitirá um GET para a mesma URL de recurso: https://zylalabs.com/api/1812/youtube-video-to-audio-api/5870/get-audio?id=p-Z3YrHJ1sU
- Mantenha o cabeçalho Autorização: Bearer YOUR_API_KEY na configuração da chamada HTTP da sua ferramenta.
Para configuração do ambiente e detalhes do cliente, consulte a documentação do MCP.
Padrões comuns e casos de uso do mundo real
- Ingestão em lote para transcrição: Converta muitos IDs curtos para MP3, coloque arquivos em sua pipeline de reconhecimento de fala, anexe duração e tamanho do arquivo para estimativas de custo.
- Serviço de pré-visualização de áudio: Armazene link, título e duração em seu banco de dados para alimentar interfaces de reprodução e cartões de áudio compactos.
- Recorte automatizado: Puxe MP3 para clipes curtos e passe-os por normalização de áudio ou corte de silêncio.
- Arquivamento de conteúdo interno: Para canais de criadores específicos, analise IDs, converta e deposite em armazenamento gerenciado com metadados para pesquisa.
Solução de problemas e casos extremos
- Código HTTP não-200 da API: Registre o status HTTP e o corpo da resposta; não analise JSON cegamente em erros.
- status não "ok": Trate como uma conversão falhada e exiba a msg nos logs ou operadores.
- ID inválido ou ausente: Certifique-se de que está passando apenas a string do ID do vídeo. A sanitização é por sua conta.
- Falhas de download: Siga redirecionamentos e permita tempo suficiente para a busca do MP3; armazene falhas parciais e tente novamente separadamente da chamada de metadados.
- Planejamento de cota: A Zyla usa assinatura + cota. Monitore o uso no seu painel Zyla e verifique a página da API para detalhes do plano atual.
Notas de segurança
- Não codifique chaves de API no código-fonte; use variáveis de ambiente ou gerenciadores de segredos.
- Limite quem pode acionar conversões em seu aplicativo. Valide a origem das solicitações se expuser um webhook ou endpoint HTTP.
- Registre apenas os últimos 4 caracteres das chaves. Nunca imprima credenciais completas em logs ou código do lado do cliente.
Checklist de teste antes de enviar
- Teste com pelo menos três IDs de YouTube diferentes (incluindo um próximo de 5 minutos e um curto).
- Verifique a análise JSON e a presença de campos para link, título, tamanho do arquivo, duração, status, msg.
- Simule timeouts e falhas de rede para confirmar tentativas e exibição de erros.
- Certifique-se de que os nomes de arquivos derivados do título sejam sanitizados em todos os alvos do sistema operacional de implantação.
- Execute de ponta a ponta: chamada da API, download do MP3, armazenamento e qualquer processamento posterior (por exemplo, transcrição).
Para onde ir a seguir
Explore mais ferramentas de áudio e conteúdo na página da API de Vídeo do Youtube para Áudio da Zyla e o restante do Zyla API Hub. Uma conta, uma chave, cabeçalhos consistentes em categorias como áudio, IA, enriquecimento e mais.
FAQ
1) Que parâmetro preciso passar para obter áudio?
Passe o ID do vídeo do YouTube via o parâmetro de consulta id. Exemplo: id=p-Z3YrHJ1sU.
2) Como faço para autenticar?
Inclua Autorização: Bearer YOUR_API_KEY nos cabeçalhos da solicitação para os endpoints zylalabs.com.
3) Que saída recebo de volta?
Um objeto JSON com link (URL direta do MP3), título, tamanho do arquivo, progresso (100 quando completo), duração (segundos), status e msg.
4) Há limites para o comprimento do vídeo?
Sim. O endpoint é destinado a vídeos com aproximadamente 5 minutos ou menos.
5) Como é tratada a cobrança?
A Zyla usa assinatura + cota (não pago por chamada). Para sua primeira API, você normalmente recebe um teste de 7 dias ou 50 solicitações. Não há Plano Gratuito; verifique a página da API para opções atuais.
Envie sua integração agora: obtenha sua chave de API em minutos e comece a chamar o endpoint. Crie sua conta aqui: Registrar. Em seguida, visite a página da API de Vídeo do Youtube para Áudio, inscreva-se e conecte o cabeçalho de Autorização ao seu código PHP.