Предотвратить загрузку видео в формате HTML5 (щелчок правой кнопкой мыши сохранен)? - PullRequest
148 голосов
/ 18 марта 2012

Как отключить «Сохранить видео как ...» в меню браузера, вызываемом правой кнопкой мыши, чтобы запретить клиентам загружать видео?

Существуют ли более полные решения, которые не позволяют клиенту получить доступ к пути к файлу?непосредственно

Ответы [ 18 ]

3 голосов
/ 01 августа 2015

+ 1 простой и кросс-браузерный способ: Вы также можете поместить прозрачное изображение поверх видео с помощью css z-index и opacity. Таким образом, пользователи увидят «сохранить изображение как» вместо «сохранить видео» в контекстном меню.

2 голосов
/ 17 марта 2018

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

Веб-браузер временно загружает видео в буфер, поэтому, если это может помешать загрузке, вы также запретите просмотр видео.

Вы также должны знать, что <1% от общей численности населения мира сможет понять исходный код, что в любом случае сделает его довольно безопасным.Это не означает, что вы не должны скрывать это и в источнике - <em>вам следует .

Вы должны не отключить правый клик, и еще меньше вы должны отобразитьсообщение, говорящее "You cannot save this video for copyright reasons. Sorry about that.".Как предлагается в этот ответ .

Это может быть очень раздражающим и вводящим в заблуждение для пользователя.Помимо этого;если они отключат JavaScript в своем браузере, они смогут иметь возможность щелкнуть правой кнопкой мыши и сохранить в любом случае.

Вот хитрость CSS, которую вы можете использовать:

video {
    pointer-events: none;
}

CSS нельзя отключить в браузере, защищая ваше видео, фактически не отключая щелчок правой кнопкой мыши.Однако одна проблема состоит в том, что controls также нельзя включить, другими словами, они должны быть установлены на false.Если вы собираетесь внедрить свою собственную функцию Play / Pause или использовать API, у которого есть кнопки, отдельные от тега video, то это выполнимый вариант.

controls также имеет кнопку загрузки, поэтому использовать ее тоже не очень хорошая идея.

Вот пример JSFiddle .


Если вы собираетесь отключить щелчок правой кнопкой мыши с помощью JavaScript, сохраните также источник видео в JavaScript.Таким образом, если пользователь отключит JavaScript (разрешив щелчок правой кнопкой мыши), видео не будет загружаться (это также лучше скрывает источник видео).

От Ответ TxRegex :

<video oncontextmenu="return false;" controls>
    <source type="video/mp4" id="video">
</video>

Теперь добавьте видео с помощью JavaScript:

document.getElementById("video").src = "https://www.w3schools.com/html/mov_bbb.mp4";

Функционально JSFiddle


Еще один способ предотвращения щелчка правой кнопкой мыши - использование тега embed,Это, однако, не обеспечивает элементы управления для запуска видео, поэтому они должны быть вставлены в JavaScript:

<embed src="https://www.w3schools.com/html/mov_bbb.mp4"></embed>
2 голосов
/ 05 сентября 2014

Использование службы, такой как Vimeo: войдите в систему Vimeo > Goto Video > Settings > Privacy > Mark as Secured, а также выберите встраивать домены.После настройки доменов для встраивания никому не разрешается встраивать видео или отображать его из браузера, если не подключены к указанным доменам.Так что, если у вас есть страница, защищенная на вашем сервере, которая загружает проигрыватель Vimeo в iframe, это довольно сложно обойти.

1 голос
/ 04 ноября 2018

Краткий ответ: Зашифруйте ссылку, как это делает youtube, не знаю как, чем спросить youtube / google о том, как они это делают.(Просто на тот случай, если вы хотите разобраться в этом.)

Я хотел бы указать всем, что это возможно, потому что это делает YouTube, и если они могут, то может любой другой веб-сайт, и это не так.либо из браузера, либо потому, что я тестировал его на нескольких браузерах, таких как Microsoft Edge и Internet Explorer, и поэтому есть способ отключить его и увидеть, что люди все еще говорят это ... Я пытаюсь найти ответ, потому что, если YouTube может, чем тамДолжен быть способ, и единственный способ увидеть, как они это делают, - это если кто-то изучит сценарии YouTube, которые я делаю сейчас.Я также проверил, было ли это пользовательское контекстное меню, и это не потому, что контекстное меню переполняет элемент inspect, и я имею в виду, что оно поверх него, и я посмотрел, и он никогда не создает новый класс, а такжена самом деле невозможно получить доступ к инспектировать элемент с помощью JavaScript, поэтому это не может быть.Вы можете сказать, когда он дважды щелкнет правой кнопкой мыши на видео YouTube, что он всплывает контекстное меню для Chrome.Кроме того ... YouTube не добавил бы эту функцию. Я занимаюсь поиском и изучением источника YouTube, поэтому я вернусь, если найду ответ ... если кто-то скажет, что вы не можете, чем, ну, они не сделали "не делаю исследования, как у меня.Единственный способ скачать видео с YouTube - это скачать видео.

Хорошо ... Я провел исследование, и мое исследование остается в том, что вы можете отключить его, за исключением того, что нет никакого JavaScript к нему ... Вы должны быть в состоянии зашифровать ссылки на видео, чтобы иметь возможностьотключите его, потому что я думаю, что любой браузер не будет показывать его, если он не сможет его найти, и когда я открыл ссылку на видео YouTube, он показывался как «blob: https://www.youtube.com/e5c4808e-297e-451f-80da-3e838caa1275" без кавычек, поэтому он шифрует его, поэтому он не можетбыть спасенным ... вам нужно знать php для этого, но, как и ответ, который вы выбрали, чтобы сделать его сложнее, youtube делает его самым сложным из тяжелых шифрований, вы должны быть опытным программистом php, но если вы этого не знаетечем принять человека, которого вы выбрали, как лучший ответ, затрудняющий его загрузку ... но если вы знаете php, чем сильно зашифруйте ссылку на видео, чтобы ее можно было прочитать только на вашем ... я не знаю, какобъясните, как они это делают, но они сделали, и есть способ. Способ, которым YouTube шифрует видео, довольно умен, поэтому, если вы хотите узнать, как это сделать, просто спросите youtube / google о том, как они это делают ... hoЭто помогает вам, хотя вы уже выбрали лучший ответ.Так что шифрование ссылки лучше всего в короткие сроки.

0 голосов
/ 04 января 2019

Мы могли бы сделать это не так просто, скрыв контекстное меню, например:

<video oncontextmenu="return false;"  controls>
  <source src="https://yoursite.com/yourvideo.mp4" >
</video>
0 голосов
/ 09 марта 2018

Вот что я сделал:

function noRightClick() {
      alert("You cannot save this video for copyright reasons. Sorry about that.");
}
    <body oncontextmenu="noRightClick();">
    <video>
    <source src="http://calumchilds.com/videos/big_buck_bunny.mp4" type="video/mp4">
    </video>
    </body>
Это также работает для изображений, текста и почти всего.Тем не менее, вы все равно можете получить доступ к «Проверка» и «Просмотр источника» с помощью сочетаний клавиш.(Как сказано в ответе сверху, вы не можете полностью это остановить.) Но вы можете попытаться поставить барьеры, чтобы остановить их.
0 голосов
/ 04 октября 2014

@ Клейтон-Граул имел то, что искал, за исключением того, что мне нужна версия CoffeeScript для сайта, использующего AngularJS.На тот случай, если вам это тоже понадобится, вот что вы положили в рассматриваемый контроллер AngularJS:

    # This is how to we do JQuery ready() dom stuff
    $ ->
        # let's hide those annoying download video options.
        # of course anyone who knows how can still download
        # the video, but hey... more power to 'em.
        $('#my-video').bind 'contextmenu', -> 
            false

«странные вещи находятся в круге k» (это правда)

0 голосов
/ 11 декабря 2015

Похоже, что потоковое видео через веб-сокет является жизнеспособным вариантом, так как при потоковой передаче кадров и их рисовании на холсте такого рода вещи.

Потоковое видео через веб-сокеты с использованием JavaScript

Я думаю, что это обеспечит еще один уровень защиты, усложняющий для клиента получение видео и, конечно, решение вашей проблемы с помощью опции контекстного меню «Сохранить видео как ...» (щелчок правой кнопкой мыши!).

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