Je me demandais s'il y avait un moyen, après tous les changements sur YouTube au cours des derniers mois, d'écrire un script qui permet de télécharger des vidéos? Je suis conscient du fait que les méthodes qui ont fonctionné il y a un an ne sont plus pertinentes.Téléchargement de vidéos depuis YouTube avec PHP - encore possible?
Répondre
Oui, il y a encore un moyen. Je ne vais pas écrire tout le script pour vous, mais je vais au moins vous écrire la fonction qui fournit le lien de téléchargement de YouTube.
D'accord, vous aurez besoin de CURL installé pour cela.
/* Developed by User - WebEntrepreneur @ StackOverlow.com */
function ___get_youtube_video($youtube_url)
{
if(eregi('youtube.com', $youtube_url))
{
preg_match('/http:\/\/(.+)youtube.com\/watch(.+)?v=(.+)/', $youtube_url, $youtube_id_regex);
$youtube_id = ($youtube_id_regex[3]) ? $youtube_id_regex[3] : '';
if(!$youtube_id)
{
return INVALID_YOUTUBE_ID;
}
if(eregi('\&', $youtube_id))
{
$youtube_id_m = explode('&', $youtube_id);
foreach($youtube_id_m as $slices)
{
$youtube_id = $slices;
break;
}
}
} else {
$youtube_id = ($youtube_url);
}
$ping = ___get_curl("http://www.youtube.com/watch?v={$youtube_id}&feature=youtu.be");
if(!$ping)
{
return YOUTUBE_UNAVAILABLE;
}
$ping_scan = nl2br($ping);
$ping_scan = explode('<br />', $ping_scan);
if(eregi('= null', $ping_scan[36]) or !$ping_scan[36])
{
return YOUTUBE_TOO_MANY_REQUESTS;
}
$ping_scan = str_replace("\n", "", $ping_scan[36]);
$ping_scan = str_replace(" img.src = '", "", $ping_scan);
$out[1] = str_replace("';", "", $ping_scan);
$sub_ping = ___get_curl("http://gdata.youtube.com/feeds/api/videos/{$youtube_id}");
preg_match('/<title type=\'text\'>(.+)<\/title>/', $sub_ping, $inout);
$inout = $inout[1];
if(!$out[1])
{
return VERSION_EXPIRED;
}
$out[1] = str_replace("generate_204", "videoplayback", $out[1]);
$out[1] = str_replace("\\/", "/", $out[1]);
$out[1] = rawurldecode($out[1]);
if($inout)
{
$out[1] .= "&file=".urlencode($inout).".mp4";
$filename = urlencode($inout).".mp4";
}
header("Content-Disposition: attachment; filename=\"".$filename."\"");
flush();
return ___get_curl($out[1]);
}
function ___get_curl($url)
{
if(!function_exists("curl_setopt"))
{
return CURL_NOT_INSTALLED;
}
$ch=curl_init();
curl_setopt($ch,CURLOPT_USERAGENT, "YouTube Video Downloader");
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_TIMEOUT,100000);
$curl_output=curl_exec($ch);
$curlstatus=curl_getinfo($ch);
curl_close($ch);
return $curl_output;
}
Maintenant, permettez-moi de parler du code. Après environ 30 minutes de recherche, j'ai réussi à pirater leur algorithme mais il a des limites très strictes qu'ils ont fixées maintenant. Comme chaque demande faite pour un téléchargement de vidéo est uniquement liée à l'IP, vous devez la diffuser hors de votre bande passante, ce que fait le script ci-dessus. Cependant, des sites comme keepvid.com utilisent Java pour récupérer l'URL de téléchargement et la diffuser vers l'utilisateur. J'ai aussi installé ma propre carte d'identification YouTube, très pratique pour ce genre d'outils. Veuillez reconnaitre que comme indiqué, YouTube change toujours leurs algorithmes et l'utilisation de cet outil est à vos risques et périls. Je ne suis pas tenu responsable des dommages causés à YouTube.
Espérons que cela vous donne une bonne limite, que vous y avez passé du temps.
Merci l'homme. C'est juste ce que je cherchais – Alex1987
Ok, j'ai essayé ce code et il télécharge le fichier html. Voici comment j'ai utilisé votre script: echo ___ get_youtube_video ("http://www.youtube.com/watch?v=dDwKPGUIVME"); et il téléchargements Alizee + - + Moi + Lolita.mp4.html – Alex1987
Il pourrait être votre serveur, en essayant de le déboguer et de voir ce qui se passe. –
- 1. Télécharger des vidéos Youtube avec PHP
- 2. Téléchargement de vidéos YouTube via un compte commun
- 3. Récupération automatique de toutes les vidéos YouTube depuis le compte
- 4. Podcast Wordpress avec l'hébergement de vidéos YouTube
- 5. Intégration dynamique de vidéos YouTube avec jquery
- 6. Supprimer des vidéos YouTube en utilisant Zend/PHP
- 7. Incorporation youtube vidéos problème
- 8. streaming Youtube Vidéos
- 9. Vidéos Youtube intégrées slowwww choses
- 10. Lecture de vidéos youtube intentionnellement
- 11. Création de vidéos YouTube dans l'application iPhone
- 12. PrettyPhoto et vidéos youtube superposition
- 13. UIWebView pas la lecture de vidéos YouTube
- 14. Intégrer des vidéos via Youtube
- 15. Lecture de vidéos YouTube dans une application Windows Mobile
- 16. Téléchargement de vidéos dans BlackBerry
- 17. Comment obtenir le lien de téléchargement direct de l'URL de sites de partage de vidéos?
- 18. Téléchargement et diffusion de vidéo depuis Azure
- 19. vidéo Youtube URL de téléchargement
- 20. YouTube API + PHP + hébergement de site?
- 21. Détection des qualités disponibles des vidéos YouTube
- 22. Intégration automatique de vidéos YouTube à partir de l'URI
- 23. Lecture de vidéos YouTube intégré consécutivement sur une page
- 24. Youtube App sur iPhone en ignorant les vidéos privées
- 25. Téléchargement direct Zend PHP: Comment désactiver les commentaires sur les vidéos en cours de téléchargement?
- 26. Téléchargement direct d'Objective-C sur YouTube
- 27. Comment utiliser FlowPlayer pour afficher des vidéos YouTube
- 28. Vidéos YouTube dans les flux Atom/RSS de Blogger
- 29. incorporation de vidéos youtube en utilisant modernizer, plutôt qu'un iframe
- 30. Comment puis-je utiliser l'API YouTube et jQuery pour télécharger des vidéos sur YouTube?
Remarque: Cela constitue une violation des conditions d'utilisation de YouTube. –