Youtube download'er в максимально возможном формате (на стороне сервера) - PullRequest
1 голос
/ 20 февраля 2010

Добро пожаловать,

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

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

Теперь это более сложно ... Google использует серверы кеша, а get_video не работает.

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

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

У меня вопрос, есть ли у кого класс, который позволяет скачивать в максимально возможном количестве?

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

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

Я буду великолепен для любой помощи ...

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

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

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

0 голосов
/ 12 апреля 2010

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

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

...