Как мне внутренне структурировать файл PHP для доставки исходного URL видео - PullRequest
1 голос
/ 23 апреля 2020

У меня есть страница с видео, которая использует что-то вроде этого:

<video>
  <source src="http://example.com/video1.mp4">
</video>

Я хочу скрыть исходный URL.

Так что я могу написать скрипт, который использует токен и извлекает реальный URL из базы данных, делая URL похожим на

http://example.com/video.php?token=A982134DF345e

, но я не вижу, как я могу использовать его в качестве URL источника видео.

Очевидно, я знаю, что это не будет работа ...

<video>
  <source src="http://example.com/video.php?token=A982134DF345e">
</video>

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

Токен будет аннулирован после одного воспроизведения, поэтому, если пользователь захочет снова посмотреть видео, система получит новый токен.

Как это сделать?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

Ваш video.php должен сначала отправить правильный заголовок MIME, например, video/mp4 или video/mpeg. Затем он может использовать fopen () и fpassthru () для отправки содержимого видеофайла.

Что касается создания и проверки токена, существует множество способов сделать это. В конечном счете, серверу необходимо хранить базу данных действительных токенов, и вам нужен способ их добавления, удаления и проверки. Таким образом, ваш video.php скрипт может в конечном итоге выглядеть примерно так:

if ( validate_and_expire_token( $_REQUEST[ 'token' ] ) ) {
  header( 'Content-type: video/mp4' ); // Possibly video/mpeg
  if ( $fp = fopen( 'video1.mp4', 'rb' ) ) {
    fpassthru( $fp );
  }
}

Где validate_and_expire_token() - это код, который вам нужно написать, который возвращает TRUE, если заданный $token действителен (сначала делает его недействительным, чтобы его нельзя было снова использовать), FALSE в противном случае.

1 голос
/ 23 апреля 2020

Ваша ссылка с токеном должна возвращать соответствующие заголовки MIME для видео, такие как video/webm, video/ogg или video/mpeg. Это позволит браузеру правильно распознавать обработчик приложения (конечно, браузер должен сначала поддерживать код c для такого типа MIME). В настоящее время ваше оригинальное видео с video.mp4 будет воспроизводиться в браузере, распознавая расширение файла (mp4). Если вы указали общую ссылку PHP, браузер попытается обнаружить заголовки MIME.

header("Content-type:video/mpeg");

См. Допустимое видео Типы MIME .

Срок действия токена не имеет значения для Ваш вопрос (насколько я понимаю, вы спрашиваете, как использовать PHP ссылку для правильного воспроизведения видео).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...