Télécharger les videos de youtube avec permalien depuis youtube

Description

Salut,
Suite à la version précèdente, voilà la nouvelle mise à jour importante.
Voilà ce que peut faire le script :
- Télécharger une vidéo depuis Youtube sur votre serveur en flv ou en mp4. Attention, ça prends du temps. Si vous tester en locale, évitez de télécharger les vidéos, parce que ça va buger à cause de votre connexion qui n'est pas capable de télécharger une telle vidéo.
- Donner le lien direct de téléchargement temporaire de la vidéo en flv et mp4. Quand je dit temporaire, ça veut dire qu'il marche que pour une session donc inutile de l'envoyer ou de le poster sur les forums.
- Donner un lien permanent (je suis fière de cette exploit) de la vidéo depuis youtube en flv et en mp4 en passant par votre page. Aucun fichier n'est hébergé sur votre site, seulement cette page qui génère le lien chaque fois qu'on clique dessus et redirige vers le téléchargement sans que l'utilisateur ne verra que du feu ;) Conclusion, c'est celui là que vous pouvez postez sur les forums.
- Afficher la minature de la vidéo. (Celle affiché sur Youtube).

/!\ Attention, si vous utilisez de copier la vidéo sur votre serveur, ça va vous bouffer tant de bande passante !! N'optez pour cette solution que si vous avez une bande passante illimité ;)

- Pour utilisez le script, télécharger le ZIP, et uploadez le tous, et donner un CHMOD 777 sur le dossiers vidéo, si vous voulez copier les vidéos sur votre serveur.

- Ou bien créer 2 page, index.php et lien.php et un dossier videos, que vous donnez le CHMOD (permissions) 777.

Voici la source :

Source / Exemple :


la page : index.php
======================================

<?php
// On déclare la fonction du téléchargement avant.
function get_video_url_youtube($page)
{
	$url = $page.'&';
	$regex = '/v=(.+?)&+/';
	preg_match($regex, $url, $vid_code);
	$input = file_get_contents($page);
	$regex = '/&t=(.+?)&+/';
	preg_match($regex, $input, $vid_t);
	return 'http://www.youtube.com/get_video?video_id='.$vid_code[1].'&t='.$vid_t[1].'=';
}
?>

<html>
<head>
<title>Youtube Téléchargeur</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<center>
<h1>Télécharger les vidéos de Youtube</h1>
<?php
if (!isset($_POST['lien'])) // On vérifie si le formulaire est déjà rempli, sinon on l'affiche
{
echo '
<form method="post">
Lien de la vidéo : <input type="text" name="lien" /><br />
Format de sortit : <input type="radio" name="format" value="flv" checked="checked" /> FLV <input type="radio" name="format" value="mp4" /> MP4<br />
Télécharger sur votre serveur : <input type="radio" name="down" value="oui" checked="checked" /> Oui <input type="radio" name="down" value="non" /> Non<br /><br />
<input type="submit" value="Télécharger" />
</form> ';
}
else // Le formulaire est rempli
{
	// On récupère les variables
	$lien = $_POST['lien']; // Le lien de la vidéo
	$down = $_POST['down']; // Si la vidéo est télécharger sur le serveur
	$format = $_POST['format']; // Format désiré
	
	// On récupère les lien de la vidéo
	$lien_yt_flv = get_video_url_youtube($lien); // La vidéo en flv
	$lien_yt_mp4 = $lien_yt_flv.'&fmt=18'; // La vidéo en mp4
	
	// Si on demande le téléchargement de la video, On la copie sur le serveur
	if ($down == "oui")
	{
		if ($format == "flv") // Le format est en FLV
		{
			$newname = 'videos/'.time().'.flv'; // On donne un nouveau nom et on ajoute l'extention
			copy($lien_yt_flv, $newname);
		}
		else // Le format est en MP4
		{
			$newname = 'videos/'.time().'.mp4'; // On donne un nouveau nom et on ajoute l'extention
			copy($lien_yt_mp4, $newname);
		}
	}
	
	// Pour obtenir l'id de la vidéo
	$url = $lien.'&';
	$regex = '/v=(.+?)&+/';
	preg_match($regex, $url, $vid_code);
	//On affiche l'image
	echo '<img src="http://i1.ytimg.com/vi/'.$vid_code[1].'/default.jpg"><br /><br />';
	// On affiche les résultat
	echo '<a href="'.$lien_yt_flv.'">Lien depuis Youtube en FLV<br /></a>';
	echo '<a href="'.$lien_yt_mp4.'">Lien depuis Youtube en MP4<br /></a>';
	// On teste d'abord si on a demandé de copier la vidéo sur notre sevreur
	if ($down == "oui")
	{
		if ($format == "flv") // Le format est en FLV
		{
			echo '<a href ="'.$newname.'">Lien depuis votre serveur en FLV</a><br />';
		}
		else // Le format est en MP4
		{
			echo '<a href ="'.$newname.'">Lien depuis votre serveur en MP4</a><br />';
		}
	}
	// On affiche les permaliens.
	echo '<a href ="lien.php?id='.$vid_code[1].'&type=flv">Lien permanant depuis Youtube en FLV</a><br />';
	echo '<a href ="lien.php?id='.$vid_code[1].'&type=mp4">Lien permanant depuis Youtube en MP4</a><br /><br />';

}
?>
Attention : Si vous télécharger la vidéo depuis Youtube et non depuis votre serveur, vous devez la renommer en ajoutant .flv ou .mp4 à la fin du fichier téléchagré.
</center>
</body>
</html>

la page : lien.php
======================================

<?php

function get_video_url_youtube($page) // Encore la fonction super sympa :p
{
	$url = $page.'&';
	$regex = '/v=(.+?)&+/';
	preg_match($regex, $url, $vid_code);
	$input = file_get_contents($page);
	$regex = '/&t=(.+?)&+/';
	preg_match($regex, $input, $vid_t);
	return 'http://www.youtube.com/get_video?video_id='.$vid_code[1].'&t='.$vid_t[1].'=';
}

// récupère les variables
$id = $_GET['id'];
$type = $_GET['type'];

$lien = 'http://www.youtube.com/watch?v='.$id;

$lien_yt_flv = get_video_url_youtube($lien); // La vidéo en flv
$lien_yt_mp4 = $lien_yt_flv.'&fmt=18'; // La vidéo en mp4
	

if ($type == "flv") // On vérifie le type
{
	header("Location: $lien_yt_flv"); // Puis on redirege vers le lien de téléchargement
}
else
{
	header("Location: $lien_yt_mp4"); // idem en cas de mp4
}
?>

Conclusion :


Voilà, je crois que c'est tous.
Je vais essayer d'améliorer le code, avec vos commentaires.
Un grand merci à griffondor pour son soutien ;)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.