2010-02-19 5 views
1

Bienvenue,Youtube download'er dans le plus possible le format (côté serveur)

Je cherche youtube api ce qui me permettra de télécharger la vidéo sur youtube dans le plus possible le format.

Il y a quelques années, ce travail était plus simple car url avait des informations sur la qualité comme "fmt = 22" ou "fmt = 6" en ce moment nous vivons dans le futur et cette information est intégrée dans le lecteur.

Maintenant, c'est plus complexe ... google utilise les serveurs cache et get_video ne fonctionne pas.

Regardez par exemple: http://www.youtube.com/watch?v=XIz-MmKeoCs (il est par exemple juste avec HD ne pas commenter la musique)

En ce moment je suis en utilisant ancienne classe PHPtube (2007 ans). phpclasses.org/browse/package/3966.html Il permet uniquement de télécharger le fichier de qualité inférieure via flv.

Ma question est, tout le monde a la classe ce qui permet le téléchargement le plus haut possible?

Je donne l'ID vidéo -> XIz-MmKeoCs Il devrait vérifier quelle qualité est possible pour le téléchargement. En ce moment je ne sais pas comment l'obtenir ...

Et donner le lien de téléchargement. (bien sûr, je sais à propos de la sécurité utilisée par IP, et je veux télécharger le fichier sur mon serveur en utilisant file_contents) mais j'ai eu des problèmes seulement avec l'obtention de ce lien de téléchargement.

je serai grand pour toute aide ...

+0

Quand vous dites format, que voulez-vous dire? Pour autant que je sache, les vidéos YouTube ne sont disponibles qu'en deux formats, standard et (parfois) HD. – Pace

+0

Il ya quelques jours j'ai écrit un script ce qui permet à mes utilisateurs dans le téléchargement LAN mp3 à partir de YouTube. Premier script de téléchargement de film, puis extraire l'audio, convertir en mp3 en utilisant lame et permettre le téléchargement. (bien sûr, c'est seulement pour mes utilisateurs LAN) Maintenant, je télécharge en FLV 320p mais il a un son mono.Puis je remarque que 480p si mp4 que d'avoir un son stéréo si flv - mono Et comme vous l'avez dit HD en 720p (mp4 - a obtenu un excellent son stéréo) Donc, je dois vérifier quel format sont disponibles et télécharger le plus possible pour obtenir meilleure qualité audio. Avez-vous une idée? Je suis le plus intéressé par la version mp4 ... mais si ce n'est pas possible, obtenez bas flv – Marc

Répondre

0

Si vous tirez une page vidéo, et l'analyser recherchez & fmt_url_map = les choses après voici une carte de format ID => lien de téléchargement. Vous devez faire un peu d'analyse, mais jetez un coup d'oeil et ce n'est pas si compliqué. Le problème est que si vous développez ceci sur votre machine, cela fonctionnera, mais si vous voulez le mettre en ligne cela ne fonctionnera pas car les urls de téléchargement ont une sorte de signature qui ne s'applique qu'à la machine qui a tiré la page vidéo, qui dans ce cas ne correspondra pas à votre machine locale.

2

Utilisez ce poste comme ligne directrice: youtube get_video not working

Utilisation du ytarr de $ [ 'de fmt_url_map'] de cet exemple, vous pouvez exploser() dans les différents formats disponibles:

$fmt_array = array('5','34','35');  
$fmt_available = explode(',', $ytarr['fmt_stream_map']); 
foreach ($fmt_array as $val) { 
    foreach ($fmt_available as $fmtstr) { 
     if (strpos($fmtstr,"$val|") !== false){ 
      $format = explode('|', $fmtstr); 
      break 2; 
     } 
    } 
} 
echo $format['1']; 

fmt_array $ tiendrait tous les formats que vous désirez en ordre de priorité. Dans cet exemple, il imprime d'abord le lien direct au format 5, et si 5 n'est pas disponible, il imprime 34, et ainsi de suite. Vous voudriez évidemment changer ce tableau pour commencer par lister les formats les plus élevés.

Questions connexes