2010-02-19 1 views
1

Добро пожаловать,Youtube download'er в максимально возможном формате (на стороне сервера)

Я ищу YouTube API, что позволит мне загрузить Youtube видео в высоком формате.

Несколько лет назад эта работа была более простой, потому что у url была информация о качестве «fmt = 22» или «fmt = 6» прямо сейчас, мы живем в будущем и эта информация встроена в плеер.

Теперь это сложнее ... google use cache servers и get_video не работают.

Посмотрите, например: http://www.youtube.com/watch?v=XIz-MmKeoCs (это просто пример с HD не комментирует музыку)

Сейчас я использую старый класс PHPtube (2007 год). phpclasses.org/browse/package/3966.html Он позволяет загружать только файлы с минимальным качеством через flv.

Мой вопрос: у кого есть класс, который разрешает загрузку в максимально возможной степени?

Я даю идентификатор видео -> XIz-MmKeoCs Он должен проверить, какое качество можно скачать. Прямо сейчас я не знаю, как получить это ...

И дать ссылку для скачивания. (конечно, я знаю о безопасности, используемой IP, и хочу загрузить файл на моем сервере с помощью file_contents), но у меня возникли проблемы только с получением этой ссылки для скачивания.

Я отлично подходит для любой помощи ...

+0

Когда вы говорите формат, что вы имеете в виду? Насколько я знаю, видеоролики YouTube доступны только в двух форматах, стандартном и (иногда) HD. – Pace

+0

Несколько дней назад я написал сценарий, который позволяет моим пользователям в локальной сети скачивать mp3 с youtube. Первый скрипт скачать фильм, затем извлечь аудио, конвертировать в mp3, используя lame и разрешить загрузку. (конечно, это только для моих пользователей локальной сети) Теперь я загружаю flv 320p, но у него есть монофонический звук. Чем я замечаю, что 480p если mp4, чем иметь стерео звук, если FLV - моно И, как вы сказали HD в формате 720p (mp4 - получил великолепное звучание стерео) Поэтому мне нужно, чтобы проверить, какой формат можно и скачать максимально возможное, чтобы получить лучшее качество звука. Есть ли у вас какие-либо идеи? Меня больше всего интересует версия mp4 ... но если не возможно получить низкий flv – Marc

ответ

0

Если потянуть видео страницу, разобрать его и искать & fmt_url_map = материал после того, как здесь карта формата ид => скачать ссылку. Вы должны немного разобрать его, но посмотрите, и это не так сложно.

Проблема заключается в том, что если вы разрабатываете это на своей машине, это сработает, но если вы хотите поместить его в живую, это не сработает, поскольку URL-адреса загрузки имеют какую-то подпись, которая применяется только к машине, видео-страница, которая в этом случае не будет соответствовать вашей локальной машине.

2

Используйте этот пост в качестве ориентира: youtube get_video not working

Используя $ ytarr [ 'fmt_url_map'] из этого примера, вы можете взорваться() его в различных доступных форматах:

$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 будет содержать все форматы, которые вы хотите в порядке приоритета. В этом примере сначала будет напечатана прямая ссылка на формат 5, и если 5 не будет доступно, она будет печатать 34 и так далее. Очевидно, вы захотите изменить этот массив, чтобы сначала отобразить самые высокие форматы.

Смежные вопросы