Pull to refresh

Децентрализация контента сайта

Reading time 3 min
Views 6.9K
Предлагаю дать возможность пользователям самостоятельно выбирать сервис по доставке контента. На странице остаётся только информация о контенте (Название композиции, фильма, книги).

Сайт с информацией и контент разделены или не связаны прямо. Ответственность за законность контента перекладывается на поставщика который его предоставляет (сайт на котором расположен файл). Поскольку сервисов много уже сейчас (Различные видеохостинги, аудиохостинги, библиотеки и т. д.) пользователю не составит проблемы переключиться с одного на другой(подключить другой скрипт) в случае блокировки контента.

Пример:


На странице находится такое содержимое.
<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>


И не надо заново загружать файл из интернета из-за того что проигрывается эта композиция на веб сайте.

Для пользователя происходит все незаметно. Он просто нажимает на кнопку play и файл воспроизводится. И не важно при этом откуда.

Пример пользы такого подхода уже сейчас:


На сайте Вконтакте удаляется музыка. При этом в плейлисте пользователя остается строчка с названием композиции. Простой скрипт может используя эту информацию найти этот же трек на Яндекс.Музыке(где он легально) и воспроизвести не требуя от пользователя дополнительных действий.

Веб-радио.


Также можно организовать и веб-радио. Радиостанции достаточно передать только название композиции и позицию в ней на данный момент а сервис(пользовательский скрипт) поставляет саму композицию. При этом забота о лицензии на трек перекладывается на поставщика.

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

Небольшое демо:


		<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)
		}
	  }
	});
}


Демка
Tags:
Hubs:
+1
Comments 61
Comments Comments 61

Articles