/* YTAlert v1.5, by TheDoctorTeam! Мониторит наличие и возможность просмотра видео на Youtube. Кричит, если видео стало недоступно. Для запуска возьмите Chrome/Firefox, вставьте этот код в консоль. Он переадресует браузер на страничку с надпись «Not Found», выполните код ещё раз на ней. Текстовое поле принимает ссылки на страницы с видео, или сами идентификаторы видео. Можно ввести несколько, разделив пробелом. Управление самой таблицей, думаю, очевидно. Цвета: зелёный: всё окей, красный – не доступно; голубой/жёлтый – происходит обновление зелёного или красного; белый/розовый – приостановлено пользователем; синий – неясный ответ сервера. Настройки: первое число – кол-во секунд между обновлениями; второе – случайная добавка к нему; третье – сколько секунд ждать ответа от сервера перед посылкой повторного запроса. Скрипт уведомляет звуком сирены (HTML5 audio – ogg, stereo); и использует Desktop Notifications. */ (function(){if(document.location.toString().indexOf('youtube.com/oembed')<0){if(document.body&&document.body.innerHTML.trim()!=''&&document.location.toString()!='about:blank'){var E=document.createElement('form');document.body.appendChild(E);E.outerHTML='
';}else document.location="https://www.youtube.com/oembed";return;};try{var Notifier={};(function(i){"use strict";var o=["granted","default","denied"];this.isSupported=!0,i.Notification?(this.permission=i.Notification.permission,!this.permission&&i.webkitNotifications&&(this.permission=o[i.webkitNotifications.checkPermission()]),this.requestPermission=function(o){var n=this;i.Notification.requestPermission(function(i){n.permission=i,o(i)})},this.notify=function(o,n){var t=this,s=new i.Notification(o,n);return n=n||{},s.onerror=function(o){t.permission=i.Notification.permission,n.onError(o)},s.onshow=n.onShow,s.onclick=n.onClick,s.onclose=n.onClose,s}):i.mozNotification?(this.permission=i.mozNotification.permission,this.requestPermission=function(o){var n=this;i.mozNotification.requestPermission(function(i){n.permission=i,o(i)})},this.notify=function(o,n){var t=this,s=i.mozNotification.createNotification(o,n.body||"",n.icon);return n=n||{},s.onerror=function(o){t.permission=i.mozNotification.permission,n.onError(o)},s.onshow=n.onShow,s.onclick=n.onClick,s.onclose=n.onClose,s.show(),s}):i.webkitNotifications?(this.permission=o[i.webkitNotifications.checkPermission()],this.requestPermission=function(o){var n=this;i.webkitNotifications.requestPermission(function(i){n.permission=i,o(i)})},this.notify=function(n,t){var s=this,e=i.webkitNotifications.createNotification(t.icon||null,n,t.body||"");return t=t||{},e.onerror=function(n){s.permission=o[i.webkitNotifications.checkPermission()],t.onError(n)},e.ondisplay=t.onShow,e.onclick=t.onClick,e.onclose=t.onClose,e.close=e.cancel,e.show(),e}):this.isSupported=!1}).call(Notifier,this);}catch(e){}; var D,F,U,A,I,T,V,M,N,W0,W1,W2;V='YTAlert v1.5!';D=function(i){return document.getElementById(i);};F=function(url,val,then){try{var x=new XMLHttpRequest();x.open('POST',url,true);x.overrideMimeType('text/plain; charset=x-user-defined');x.onreadystatechange=function(){if(x.readyState==4){if(x.status==200){if(then)then(x.responseText,val);}}};x.send(null);}catch(e){}};U='/get_video_info?hl=en_US&video_id=';A=[];I=0;M=0;N=-1;window.video_updatelist=function(){var i,s='';for(i=0;i