Я тестировал YouTube API v3, загружая видеофайлы, существующие на моем сервере Apache (VPS, работающий под CENTOS 6.7 x86_64 на Virtuozzo, RAM 2 ГБ и тонну процессора), используя предоставленный возобновляемый сценарий загрузки .
Пробовав всю усадьбу вещей, максимальная скорость загрузки, которую я смог достичь, составляет не более 120 КБ / с.
Я играл с выходными буферами, отключая GZipping , изменяя размеры блоков (от 1 до 30 МБ) и проверяя скорость полосы пропускания сервера (последовательно более 250 Мбит / с в направлении загрузки).
Мне трудно верить, учитывая, как быстро вы можете загружать через браузер (я не могу проверить эту теорию прямо сейчас, поскольку я нахожусь на очень медленном интернет-соединении, но это основано на прошлом опыте), что это ограничение YouTube , если это не преднамеренное дросселирование. Я не могу найти документацию о ожидаемых скоростях через API в документах YouTube или в любом месте в Интернете.
Кто-нибудь еще сталкивался с медленными загрузками и есть ли что-нибудь, что можно сделать? Заранее спасибо.
Сделав немного больше тестирования, я пришел к выводу, что медленные скорости вызваны не из-за дросселирования на YouTube, а в рамках основной инфраструктуры самого PHP. Тем не менее, мне удалось увеличить скорость с помощью PHP от ~ 120 КБ / с до ~ 770 КБ / с, изменив примерный подход Google, используя stream_get_contents
вместо fread
( кредит на этот пост ).
Однако, если вам все еще нужно больше, я бы предложил перейти к подходу Python. Через API я загрузил 2 ГБ файл за 83 секунды, который выходит на ~ 24 МБ / с. Было бы интересно узнать основные причины программирования из-за резких различий скоростей, если кто-нибудь знает, хотя и из моего царства, которое я бы спешил добавить.