0
respostas

Scraping php

Boa noite, eu estava tentando fazer só para estudo, um site que baixasse videos do youtube, como a api para fazer isso é:

https://d2c3ct5w4v6137.cloudfront.net/youtube_ID_VIDEO/22/NOME_DO_VIDEO_720P HD.mp4

eu separei o id do link e fiz o codigo entrar no link pelo HTTP-browser só que quando ele entra ele muda o url para http://localhost/watch?v=OLCfs3ZU6Ds e nao aparece nada na pagina mesmo mudando o agent aproveitei isso pra colocar o codigo

$protocolo = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=="on") ? "https" : "http");
$url = '://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$nome_video = $protocolo.$url;
$fnome_video = str_replace(' - YouTube', '', $$nome_video);
print_r($nome_video);

pra retornar o nome do video porém ele só fica na tela do youtube https://prnt.sc/10hf0fn e nao aparece o nome do video na tela. como faço pra ele pegar o titulo da pagina se nao é exibido muitas informaçoes e desse meu outro metodo tambem nao pega?

Codigo completo

<?php

require ('vendor/autoload.php');

use Symfony\Component\HttpClient\HttpClient;
use Symfony\Component\BrowserKit\HttpBrowser;


$api_youtube = 'https://www.youtube.com/watch?v=OLCfs3ZU6Ds';

$api_youtube = str_replace('https://', '', $api_youtube);

$api_youtube = str_replace('www.youtube.com/watch?v=', '', $api_youtube);

$final = substr($api_youtube, 0, 11);  




 $navegador = new HttpBrowser(HttpClient::create());
 $youtube = $navegador->request('GET', 'https://www.youtube.com/watch?v='. $final);

 $visualizar = $youtube->html();
print($visualizar);



$protocolo = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=="on") ? "https" : "http");
$url = '://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$nome_video = $protocolo.$url;
$fnome_video = str_replace(' - YouTube', '', $$nome_video);
print_r($nome_video);




 $navegador = new HttpBrowser(HttpClient::create());
 $youtube = $navegador->request('GET', 'https://d2c3ct5w4v6137.cloudfront.net/youtube_' .$final. '/22/' .$fnome_video.'_720P HD.mp4');

 $visualizar = $youtube->html();
print($visualizar);