Вы не можете .Это потому, что браузеры предназначены для этого: Обслуживание контента .Но вы можете усложнить загрузку .
Во-первых, вы могли бы отключить contextmenu
событие , иначе "право"нажмите».Это помешает вашему обычному заносу нагло копировать видео, щелкнув правой кнопкой мыши и сохрани как.Но тогда они могли бы просто отключить JS и обойти это или найти источник видео через отладчик браузера.Плюс это плохой UX.В контекстном меню есть много законных вещей, кроме «Сохранить как».
Вы также можете использовать пользовательские библиотеки видеопроигрывателей.В большинстве из них реализованы видеоплееры, которые настраивают контекстное меню по вашему вкусу.Таким образом, вы не получите контекстное меню браузера по умолчанию.И если когда-либо они будут обслуживать пункт меню, похожий на «Сохранить как», вы можете отключить его.Но опять же, это обходной путь JS.Недостатки аналогичны предыдущему варианту.
Еще один способ сделать это - показать видео с использованием HTTP Live Streaming .По сути, он нарезает видео на куски и подает их один за другим.Именно так большинство потоковых сайтов обслуживают видео.Таким образом, даже если вам удастся сохранить как, вы сохраните только фрагмент, а не все видео.Потребовалось бы немного больше усилий, чтобы собрать все куски и сшить их с помощью специального программного обеспечения.
Другой метод - рисовать <video>
на <canvas>
.В этом методе, с небольшим количеством JavaScript, вы видите на странице <canvas>
элемент рендеринга кадров из скрытого <video>
.И поскольку это <canvas>
, контекстное меню будет использовать меню <img>
, а не <video>
.Вы получите «Сохранить изображение как» вместо «Сохранить видео как».
Вы также можете использовать CSRF токены в своих интересах.Ваш сервер отправит токен на страницу.Затем вы используете этот токен для получения вашего видео.Ваш сервер проверяет, является ли он действительным токеном, прежде чем он отправит видео, или получите HTTP 401 .Идея заключается в том, что вы можете получить видео только при наличии токена, который вы можете получить только при переходе со страницы, а не при прямом посещении URL-адреса видео.
В конце дня яПросто загрузите мое видео на сторонний видео-сайт, например, YouTube или Vimeo.У них есть хорошие инструменты для управления видео, которые оптимизируют воспроизведение на устройстве, и они прилагают усилия для предотвращения копирования их видео без каких-либо усилий с вашей стороны.