Estou usando o seguinte cURL em PHP para uma solicitação de API para obter um arquivo de vídeo, conforme recomendado pelo provedor da API. Essa é a extensão da documentação deles.
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, $payload_json);
$response = curl_exec($curl);
Quando salvo a resposta em um arquivo e depois a vejo em um editor de texto, ela se parece com o seguinte:
HTTP/1.1 200 OK
Date: Fri, 20 Dec 2024 21:23:34 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 3292160
Connection: keep-alive
Access-Control-Allow-Origin: *
x-request-id: a1d0850f892cb9b4fc357a3532e81b91
Server: cloudflare
CF-RAY: 8f52b1b34f7f8ff9-BOS
alt-svc: h3=":443"; ma=86400
{"video":"AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAlpQhtZGF0AAACrwYF//+r3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlID - 2 megs more of characters that are probably the video"}
O ChatGPT diz para extrair o vídeo com uma operação de string, por exemplo, procurando por \r\n\r\n e excluindo tudo até então, mas acho que deve haver uma maneira mais limpa.
Como posso pegar o vídeo sozinho e colocá-lo em uma variável?
Agradecemos antecipadamente por quaisquer sugestões
Diga ao curl que você não quer que os cabeçalhos de resposta sejam incluídos na resposta. Você não deveria precisar fazer isso, porque não incluir os cabeçalhos é o comportamento padrão, mas você claramente os está recebendo.
Então sua resposta será apenas:
Que você pode então processar com
json_decode()
:Você provavelmente também deseja verificar se o código de resposta foi bem-sucedido, o que tornaria seu script algo como: