A ver si esto marcha, lo pruebas y me dices algo:
Código PHP:
<h1>Imagen original desde Youtube</h1>
<img src="http://img.youtube.com/vi/kEG5H52G20g/0.jpg" width="200" height="100">
<br>
<?php
//La imagen origen
$origin = "http://img.youtube.com/vi/kEG5H52G20g/0.jpg";
//Imagen redimesionada
$destiny = "nuevaimagen.jpg";
//Carpeta temporal, es OBLIGATORIA
$destiny_temporal = tempnam("tmp/","tmp");
//Redimesionar imagen
//Fíjate que redimensiono con valores fijos. Puedes hacerte otra función que te de estos valores conforme a determinados parametros
resizeJpeg($origin, $destiny_temporal, 300, 200, 100);
// guardamos la imagen
$fp=fopen($destiny,"w");
fputs($fp,fread(fopen($destiny_temporal,"r"),filesize($destiny_temporal)));
fclose($fp);
// mostramos la imagen
echo "<h1>Nueva Imagen guardada en tu server: </h1><img src='nuevaimagen.jpg'>";
function resizeJpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
// crear una imagen desde el original
$img = ImageCreateFromJPEG($img_original);
// crear una imagen nueva
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
// redimensiona la imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
// guardar la nueva imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
ImageDestroy($img);
}
?>