Я транслирую видео с Google Диска, и у меня есть два способа сделать это:
<video>
<source src="https://www.googleapis.com/drive/v3/files/videoXXX?key=APIXXX&alt=media">
</video>
или
<video>
<source src="https://drive.google.com/uc?export=download&id=videoXXX">
</video>
Они оба достаточно хорошо работают для небольших файлов, но они захватите полноразмерное видео на div, ширина которых никогда не превышает 200 пикселей. В моих файлах большой скачок от 12 до 88 МБ. Все, что меньше 12 МБ, работает, а все, что больше 88, - нет, поэтому между ними есть отсечка.
Я обнаружил это, физически посетив URL-адрес в формате https://drive.google.com/file/d/videoXXX/view Я могу уменьшить качество, а затем щелкнуть правой кнопкой мыши и получить URL-адрес файла с низким разрешением.
Мне также удалось получить этот URL-адрес с помощью file_get_contents("https://drive.google.com/file/d/videoXXX/view")
и проанализировать результат. Вы можете сделать то же самое с URL https://docs.google.com/get_video_info?docid=videoXXX.
Проблема в том, что этот URL-адрес зависит от IP-адреса пользователя, и его вставка в тег видео не работает (копирование и вставка в браузер также не работает), поскольку он заблокирован для IP-адрес сервера.
Я пытался получить его с помощью Ajax, загружая видео в iframe и захватывая источник, и совсем недавно, пытаясь загрузить заблокированный IP-адрес сервера на сервер и воспроизвести это оттуда.
За исключением самого последнего, я знаю, что это потому, что я не могу сделать это перекрестное происхождение, но почему PHP может это сделать? Как я могу загрузить эту страницу и / или получить этот URL-адрес на стороне клиента от IP-адреса пользователя?