サイトコンテンツの分散化

ユーザーにコンテンツ配信サービスを独自に選択する機会を提供することを提案します。 コンテンツ情報(作曲、映画、本の名前)のみがページに残ります。

情報とコンテンツを含むサイトは共有されているか、直接関連していません。 コンテンツの合法性の責任は、それを提供するプロバイダー(ファイルが置かれているサイト)に移されます。 現在、多くのサービス(さまざまなビデオホスティング、オーディオホスティング、ライブラリなど)があるため、コンテンツをブロックする場合、ユーザーは問題なく切り替えられます(別のスクリプトを接続します)。

例:


ページにはそのようなコンテンツが含まれています。
<audio> Vivaldi Summer mvt 1 Allegro non molto - John Harrison violin </audio> 


ユーザーによって接続されたサービス(ユーザースクリプト)は、このコンテンツを読み取り、特定のソースに変更します。
 <audio> <source src="http://upload.wikimedia.org/wikipedia/commons/1/19/04_-_Vivaldi_Summer_mvt_1_Allegro_non_molto_-_John_Harrison_violin.ogg"> </audio> 


また、ローカルファイルにすることもできます。
 <audio> <source src="file:///d:/music/04_-_Vivaldi_Summer_mvt_1_Allegro_non_molto_-_John_Harrison_violin.ogg"> </audio> 


この曲はWebサイトで再生されるため、インターネットからファイルを再ダウンロードしないでください。

ユーザーにとって、すべては気付かれることなく起こります。 彼は再生ボタンを押すだけで、ファイルが再生されます。 そしてどこにいても。

このアプローチの利点の例:


Vkontakte Webサイトで音楽が削除されます。 同時に、コンポジションの名前を含む行がユーザーのプレイリストに残ります。 簡単なスクリプトは、この情報を使用して、Yandex.Music(合法である場合)で同じトラックを見つけ、ユーザーの追加のアクションを必要とせずに再生できます。

ウェブラジオ。


Webラジオを整理することもできます。 ラジオ局は、現時点では楽曲の名前とその中の位置のみを送信すれば十分であり、サービス(ユーザースクリプト)が楽曲自体を提供します。 この場合、トラックのライセンスに関する懸念はサプライヤーに転送されます。

私は、Vkontakteトラックをオンエアおよびインターネットラジオで再生するためのユーザースクリプトを既に実験しました。 それは不器用であることが判明し、間違った名前またはそれらの不在のためにいくつかのトラックを見つけませんが、それは動作します。

小さなデモ:


  <h4>Blender Foundation Movies Collection</h4> <h5>Blender Foundation - Sintel (2010)</h5> <video width=640 height=480>Blender Foundation - Sintel (2010)</video> <h5>Blender Foundation - Big Buck Bunny (2007)</h5> <video width=640 height=480>Blender Foundation - Big Buck Bunny (2007)</video> <h5>Blender Foundation - Elephants Dream (2006)</h5> <video width=640 height=480>Blender Foundation - Elephants Dream (2006)</video> 


 //        (Userscript) //    Video   var videos = document.getElementsByTagName("VIDEO") for (var i=videos.length-1; i >= 0 ; --i){ var video = videos[i]; GM_xmlhttpRequest({ method: "POST", url: "http://www.example.com/get_video", headers: { "Content-Type": "application/x-www-form-urlencoded" }, data: video.textContent, onload: function(response) { var url = response.responseText; if (url){ //   - . var iframe = document.createElement("IFRAME") iframe.style = video.style iframe.width = video.width iframe.height = video.height iframe.src = url video.parentNode.replaceChild(iframe, video) } } }); } 


デモ

Source: https://habr.com/ru/post/J197864/


All Articles