YouTube полностью работает по протоколу HTTP(S).
Поэтому, если официальное API не позволяет сделать задуманного, то можно взять сниффер вроде Fiddler, отследить те GET/POST-запросы, которые фронт-енд ютуба отправляет бек-енду при загрузке видео, и имитировать их отправку на PHP, чтобы получить то же самое, что получил бы фронт-енд.
Не сказать, чтобы это было легко в случае с гугловскими сервисами. Google берёт количеством. Это их фирменный индусский стиль. Там тупо слишком много всего придется учесть и имитировать: много и параметров, и запросов, и кода. Времени и сил много потратить придется. Но тем не менее, это 100% возможно.
Видео там потоковое, подгружается по кускам, но можно отправить и такой запрос, чтобы подгрузилось все сразу.