ue40D6100SW Youtube no longer works on 30.06.2017

General Forum for talking area for D series TVs.

VooDooShamane
Posts: 23
Joined: Sat Feb 08, 2014 4:44 am

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by VooDooShamane » Mon Jul 03, 2017 12:08 pm

My Youtube also got deleted today.
I did take a backup from it since i saw the "Youtube will not work after 30.6.2017" message for the first time.
But when i ftp it back and start it i only get a black screen. :(

Noticed there are some interresting files in the youtube app folder.
For example the js\main.js
Content of this file is:

Code: Select all

(function() {
 var k = !0,
  m = null,
  n = !1,
  o, p = this;

 function q(a) {
  for (var a = a.split("."), b = p, c; c = a.shift();)
   if (b[c] != m) b = b[c];
   else return m;
  return b
 }

 function r(a) {
  var b = typeof a;
  if ("object" == b)
   if (a) {
    if (a instanceof Array) return "array";
    if (a instanceof Object) return b;
    var c = Object.prototype.toString.call(a);
    if ("[object Window]" == c) return "object";
    if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array";
    if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function"
   } else return "null";
  else if ("function" == b && "undefined" == typeof a.call) return "object";
  return b
 }

 function s(a) {
  return "string" == typeof a
 }
 var u = "closure_uid_" + Math.floor(2147483648 * Math.random()).toString(36),
  v = 0,
  aa = Date.now || function() {
   return +new Date
  };

 function x(a, b) {
  var c = a.split("."),
   d = p;
  !(c[0] in d) && d.execScript && d.execScript("var " + c[0]);
  for (var f; c.length && (f = c.shift());) !c.length && void 0 !== b ? d[f] = b : d = d[f] ? d[f] : d[f] = {}
 }

 function y(a, b) {
  function c() {}
  c.prototype = b.prototype;
  a.m = b.prototype;
  a.prototype = new c
 };

 function ba() {
  for (var a = 0, b = 0; 64 > b; ++b) a = 31 * a + "http://www.youtube.com/leanbacklite?action_get_js&vendor=samsung".charCodeAt(b), a %= 4294967296;
  return a
 };
 var z = Array.prototype,
  ca = z.indexOf ? function(a, b, c) {
   return z.indexOf.call(a, b, c)
  } : function(a, b, c) {
   c = c == m ? 0 : 0 > c ? Math.max(0, a.length + c) : c;
   if (s(a)) return !s(b) || 1 != b.length ? -1 : a.indexOf(b, c);
   for (; c < a.length; c++)
    if (c in a && a[c] === b) return c;
   return -1
  },
  da = z.forEach ? function(a, b, c) {
   z.forEach.call(a, b, c)
  } : function(a, b, c) {
   for (var d = a.length, f = s(a) ? a.split("") : a, e = 0; e < d; e++) e in f && b.call(c, f[e], e, a)
  };

 function ea(a, b) {
  var c = ca(a, b);
  0 <= c && z.splice.call(a, c, 1)
 }

 function fa(a, b, c) {
  return 2 >= arguments.length ? z.slice.call(a, b) : z.slice.call(a, b, c)
 };
 var A, B, C, D;

 function ga() {
  return p.navigator ? p.navigator.userAgent : m
 }
 D = C = B = A = n;
 var E;
 if (E = ga()) {
  var ha = p.navigator;
  A = 0 == E.indexOf("Opera");
  B = !A && -1 != E.indexOf("MSIE");
  C = !A && -1 != E.indexOf("WebKit");
  D = !A && !C && "Gecko" == ha.product
 }
 var ia = A,
  F = B,
  G = D,
  H = C,
  I;
 a: {
  var J = "",
   K;
  if (ia && p.opera) var L = p.opera.version,
   J = "function" == typeof L ? L() : L;
  else if (G ? K = /rv\:([^\);]+)(\)|;)/ : F ? K = /MSIE\s+([^\);]+)(\)|;)/ : H && (K = /WebKit\/(\S+)/), K) var ja = K.exec(ga()),
   J = ja ? ja[1] : "";
  if (F) {
   var M, ka = p.document;
   M = ka ? ka.documentMode : void 0;
   if (M > parseFloat(J)) {
    I = "" + M;
    break a
   }
  }
  I = J
 }
 var la = I,
  ma = {};

 function N(a) {
  var b;
  if (!(b = ma[a])) {
   b = 0;
   for (var c = ("" + la).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), d = ("" + a).replace(/^[\s\xa0]+|[\s\xa0]+$/g, "").split("."), f = Math.max(c.length, d.length), e = 0; 0 == b && e < f; e++) {
    var g = c[e] || "",
     i = d[e] || "",
     l = RegExp("(\\d*)(\\D*)", "g"),
     h = RegExp("(\\d*)(\\D*)", "g");
    do {
     var t = l.exec(g) || ["", "", ""],
      j = h.exec(i) || ["", "", ""];
     if (0 == t[0].length && 0 == j[0].length) break;
     b = ((0 == t[1].length ? 0 : parseInt(t[1], 10)) < (0 == j[1].length ? 0 : parseInt(j[1], 10)) ? -1 : (0 == t[1].length ? 0 : parseInt(t[1],
      10)) > (0 == j[1].length ? 0 : parseInt(j[1], 10)) ? 1 : 0) || ((0 == t[2].length) < (0 == j[2].length) ? -1 : (0 == t[2].length) > (0 == j[2].length) ? 1 : 0) || (t[2] < j[2] ? -1 : t[2] > j[2] ? 1 : 0)
    } while (0 == b)
   }
   b = ma[a] = 0 <= b
  }
  return b
 }
 var na = {};

 function O() {
  return na[9] || (na[9] = F && !!document.documentMode && 9 <= document.documentMode)
 };
 !F || O();
 !G && !F || F && O() || G && N("1.9.1");
 F && N("9");

 function P(a) {
  P[" "](a);
  return a
 }
 P[" "] = function() {};
 !F || O();
 var oa = !F || O(),
  pa = F && !N("8");
 !H || N("528");
 G && N("1.9b") || F && N("8") || ia && N("9.5") || H && N("528");
 G && !N("8") || F && N("9");

 function Q() {}
 Q.prototype.s = n;
 Q.prototype.j = function() {
  this.s || (this.s = k, this.g())
 };
 Q.prototype.g = function() {
  this.v && qa.apply(m, this.v);
  if (this.t)
   for (; this.t.length;) this.t.shift()()
 };

 function qa(a) {
  for (var b = 0, c = arguments.length; b < c; ++b) {
   var d = arguments[b],
    f = d,
    e = r(f);
   "array" == e || "object" == e && "number" == typeof f.length ? qa.apply(m, d) : d && "function" == typeof d.j && d.j()
  }
 };

 function S(a, b) {
  this.type = a;
  this.a = this.b = b
 }
 y(S, Q);
 S.prototype.g = function() {
  delete this.type;
  delete this.b;
  delete this.a
 };
 S.prototype.l = n;
 S.prototype.n = function() {};

 function T(a, b) {
  a && ra(this, a, b)
 }
 y(T, S);
 T.prototype.b = m;
 T.prototype.c = m;

 function ra(a, b, c) {
  var d = a.type = b.type;
  S.call(a, d);
  a.b = b.target || b.srcElement;
  a.a = c;
  if ((c = b.relatedTarget) && G) try {
   P(c.nodeName)
  } catch (f) {}
  a.c = b;
  b.defaultPrevented && a.n();
  delete a.l
 }
 T.prototype.n = function() {
  T.m.n.call(this);
  var a = this.c;
  if (a.preventDefault) a.preventDefault();
  else if (a.returnValue = n, pa) try {
   if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) a.keyCode = -1
  } catch (b) {}
 };
 T.prototype.g = function() {
  T.m.g.call(this);
  this.a = this.b = this.c = m
 };

 function U() {}
 var sa = 0;
 U.prototype.key = 0;
 U.prototype.f = n;
 U.prototype.a = n;
 U.prototype.handleEvent = function(a) {
  return this.b ? this.h.call(this.p || this.src, a) : this.h.handleEvent.call(this.h, a)
 };
 var V = {},
  W = {},
  X = {},
  Y = {};

 function ta(a, b, c, d, f) {
  if (b) {
   if ("array" == r(b)) {
    for (var e = 0; e < b.length; e++) ta(a, b[e], c, d, f);
    return m
   }
   var d = !!d,
    g = W;
   b in g || (g[b] = {
    d: 0,
    e: 0
   });
   g = g[b];
   d in g || (g[d] = {
    d: 0,
    e: 0
   }, g.d++);
   var g = g[d],
    i = a[u] || (a[u] = ++v),
    l;
   g.e++;
   if (g[i]) {
    l = g[i];
    for (e = 0; e < l.length; e++)
     if (g = l[e], g.h == c && g.p == f) {
      if (g.f) break;
      return l[e].key
     }
   } else l = g[i] = [], g.d++;
   e = ua();
   e.src = a;
   var h = g = new U;
   if ("function" == r(c)) h.b = k;
   else if (c && c.handleEvent && "function" == r(c.handleEvent)) h.b = n;
   else throw Error("Invalid listener argument");
   h.h = c;
   h.c =
    e;
   h.src = a;
   h.type = b;
   h.capture = !!d;
   h.p = f;
   h.a = n;
   h.key = ++sa;
   h.f = n;
   c = g.key;
   e.key = c;
   l.push(g);
   V[c] = g;
   X[i] || (X[i] = []);
   X[i].push(g);
   a.addEventListener ? (a == p || !a.u) && a.addEventListener(b, e, d) : a.attachEvent(b in Y ? Y[b] : Y[b] = "on" + b, e);
   return c
  }
  throw Error("Invalid event type");
 }

 function ua() {
  var a = va,
   b = oa ? function(c) {
    return a.call(b.src, b.key, c)
   } : function(c) {
    c = a.call(b.src, b.key, c);
    if (!c) return c
   };
  return b
 }

 function wa(a, b, c, d, f) {
  if ("array" == r(b))
   for (var e = 0; e < b.length; e++) wa(a, b[e], c, d, f);
  else a = ta(a, b, c, d, f), V[a].a = k
 }

 function xa(a, b, c, d) {
  if (!d.k && d.q) {
   for (var f = 0, e = 0; f < d.length; f++) d[f].f ? d[f].c.src = m : (f != e && (d[e] = d[f]), e++);
   d.length = e;
   d.q = n;
   0 == e && (delete W[a][b][c], W[a][b].d--, 0 == W[a][b].d && (delete W[a][b], W[a].d--), 0 == W[a].d && delete W[a])
  }
 }

 function ya(a, b, c, d, f) {
  var e = 1,
   b = b[u] || (b[u] = ++v);
  if (a[b]) {
   a.e--;
   a = a[b];
   a.k ? a.k++ : a.k = 1;
   try {
    for (var g = a.length, i = 0; i < g; i++) {
     var l = a[i];
     l && !l.f && (e &= za(l, f) !== n)
    }
   } finally {
    a.k--, xa(c, d, b, a)
   }
  }
  return Boolean(e)
 }

 function za(a, b) {
  if (a.a) {
   var c = a.key;
   if (V[c]) {
    var d = V[c];
    if (!d.f) {
     var f = d.src,
      e = d.type,
      g = d.c,
      i = d.capture;
     f.removeEventListener ? (f == p || !f.u) && f.removeEventListener(e, g, i) : f.detachEvent && f.detachEvent(e in Y ? Y[e] : Y[e] = "on" + e, g);
     f = f[u] || (f[u] = ++v);
     g = W[e][i][f];
     if (X[f]) {
      var l = X[f];
      ea(l, d);
      0 == l.length && delete X[f]
     }
     d.f = k;
     g.q = k;
     xa(e, i, f, g);
     delete V[c]
    }
   }
  }
  return a.handleEvent(b)
 }

 function va(a, b) {
  if (!V[a]) return k;
  var c = V[a],
   d = c.type,
   f = W;
  if (!(d in f)) return k;
  var f = f[d],
   e, g;
  if (!oa) {
   e = b || q("window.event");
   var i = k in f,
    l = n in f;
   if (i) {
    if (0 > e.keyCode || void 0 != e.returnValue) return k;
    a: {
     var h = n;
     if (0 == e.keyCode) try {
      e.keyCode = -1;
      break a
     } catch (t) {
      h = k
     }
     if (h || void 0 == e.returnValue) e.returnValue = k
    }
   }
   h = new T;
   ra(h, e, this);
   e = k;
   try {
    if (i) {
     for (var j = [], R = h.a; R; R = R.parentNode) j.push(R);
     g = f[k];
     g.e = g.d;
     for (var w = j.length - 1; !h.l && 0 <= w && g.e; w--) h.a = j[w], e &= ya(g, j[w], d, k, h);
     if (l) {
      g = f[n];
      g.e = g.d;
      for (w =
       0; !h.l && w < j.length && g.e; w++) h.a = j[w], e &= ya(g, j[w], d, n, h)
     }
    } else e = za(c, h)
   } finally {
    j && (j.length = 0), h.j()
   }
   return e
  }
  d = new T(b, this);
  try {
   e = za(c, d)
  } finally {
   d.j()
  }
  return e
 };

 function Aa(a) {
  return a.dataset ? a.dataset[Ba()] : a.getAttribute("data-loaded")
 }
 var Ca = {};

 function Ba() {
  return Ca.loaded || (Ca.loaded = "loaded".replace(/\-([a-z])/g, function(a, b) {
   return b.toUpperCase()
  }))
 };

 function Z() {
  this.a = [];
  this.b = {}
 }
 y(Z, Q);
 o = Z.prototype;
 o.r = 1;
 o.i = 0;
 o.z = function(a, b, c) {
  var d = this.b[a];
  d || (d = this.b[a] = []);
  var f = this.r;
  this.a[f] = a;
  this.a[f + 1] = b;
  this.a[f + 2] = c;
  this.r = f + 3;
  d.push(f);
  return f
 };
 o.o = function(a) {
  if (0 != this.i) return this.c || (this.c = []), this.c.push(a), n;
  var b = this.a[a];
  if (b) {
   var c = this.b[b];
   c && ea(c, a);
   delete this.a[a];
   delete this.a[a + 1];
   delete this.a[a + 2]
  }
  return !!b
 };
 o.w = function(a, b) {
  var c = this.b[a];
  if (c) {
   this.i++;
   for (var d = fa(arguments, 1), f = 0, e = c.length; f < e; f++) {
    var g = c[f];
    this.a[g + 1].apply(this.a[g + 2], d)
   }
   this.i--;
   if (this.c && 0 == this.i)
    for (; c = this.c.pop();) this.o(c);
   return 0 != f
  }
  return n
 };
 o.clear = function(a) {
  if (a) {
   var b = this.b[a];
   b && (da(b, this.o, this), delete this.b[a])
  } else this.a.length = 0, this.b = {}
 };
 o.g = function() {
  Z.m.g.call(this);
  delete this.a;
  delete this.b;
  delete this.c
 };
 var $ = window.yt && window.yt.config_ || {};
 x("yt.config_", $);
 x("yt.tokens_", window.yt && window.yt.tokens_ || {});
 x("yt.globals_", window.yt && window.yt.globals_ || {});
 x("yt.msgs_", window.yt && window.yt.msgs_ || {});
 x("yt.timeouts_", window.yt && window.yt.timeouts_ || []);
 x("yt.intervals_", window.yt && window.yt.intervals_ || []);
 eval("/*@cc_on!@*/false");
 var Da = q("yt.pubsub.instance_") || new Z;
 Z.prototype.subscribe = Z.prototype.z;
 Z.prototype.unsubscribeByKey = Z.prototype.o;
 Z.prototype.publish = Z.prototype.w;
 Z.prototype.clear = Z.prototype.clear;
 x("yt.pubsub.instance_", Da);

 function Ea(a, b) {
  var c = q("yt.pubsub.instance_");
  c && c.publish.apply(c, arguments)
 };

 function Fa() {
  var a = "scriptload-" + ba(),
   b = document.getElementById(a),
   c = b && Aa(b);
  if (!c && (!b || c)) {
   b && (a = "scriptload-" + (Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ aa()).toString(36)));
   var d = Ga(a, function() {
    if (!Aa(d)) {
     var b = d;
     b.dataset ? b.dataset[Ba()] = "true" : b.setAttribute("data-loaded", "true");
     Ea(a);
     var b = a,
      c = q("yt.pubsub.instance_");
     c && c.clear(b)
    }
   })
  }
 }

 function Ga(a, b) {
  var c = document.createElement("script");
  c.id = a;
  c.onload = b;
  c.onreadystatechange = function() {
   if ("loaded" == c.readyState || "complete" == c.readyState) c.onload()
  };
  c.src = "http://www.youtube.com/leanbacklite?action_get_js&vendor=samsung";
  var d = document.getElementsByTagName("head")[0];
  d.insertBefore(c, d.firstChild);
  return c
 };
 x("yt.tv.leanbacklite.samsung.exitOnBack", function() {
  (new Common.API.Widget).sendReturnEvent()
 });
 x("yt.tv.leanbacklite.samsung.getVersion", function() {
  return "3.1"
 });
 x("yt.setConfig", function(a) {
  var b = arguments;
  if (1 < b.length) {
   var c = b[0];
   $[c] = b[1]
  } else
   for (c in b = b[0], b) $[c] = b[c]
 });
 x("yt.getConfig", function(a, b) {
  return a in $ ? $[a] : b
 });
 wa(window, "load", function() {
  (new Common.API.Widget).sendReadyEvent();
  Fa()
 });
 wa(window, "show", function() {
  var a;
  a = s("pluginObjectNNavi") ? document.getElementById("pluginObjectNNavi") : "pluginObjectNNavi";
  var b = new Common.API.Plugin,
   c = new Common.API.TVKeyValue;
  b.SetBannerState(1);
  a.SetBannerState(2);
  b.unregistKey(c.KEY_VOL_UP);
  b.unregistKey(c.KEY_VOL_DOWN);
  b.unregistKey(c.KEY_MUTE);
  b.unregistKey(c.KEY_MENU);
  b.unregistKey(c.KEY_INFOLINK);
  b.unregistKey(c.KEY_EXIT)
 });
})();
There is a URL called http://www.youtube.com/leanbacklite?act ... or=samsung
When you go there you get this output:

Code: Select all

(function() {
 var f, h = this;

 function k(a) {
  return "string" == typeof a
 }

 function l(a) {
  a = a.split(".");
  for (var b = h, c; c = a.shift();)
   if (null != b[c]) b = b[c];
   else return null;
  return b
 }

 function aa() {}

 function n(a) {
  var b = typeof a;
  if ("object" == b)
   if (a) {
    if (a instanceof Array) return "array";
    if (a instanceof Object) return b;
    var c = Object.prototype.toString.call(a);
    if ("[object Window]" == c) return "object";
    if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) return "array";
    if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) return "function"
   } else return "null";
  else if ("function" == b && "undefined" == typeof a.call) return "object";
  return b
 }

 function ba(a) {
  var b = n(a);
  return "array" == b || "object" == b && "number" == typeof a.length
 }

 function p(a) {
  return "function" == n(a)
 }

 function ca(a, b, c) {
  return a.call.apply(a.bind, arguments)
 }

 function da(a, b, c) {
  if (!a) throw Error();
  if (2 < arguments.length) {
   var d = Array.prototype.slice.call(arguments, 2);
   return function() {
    var c = Array.prototype.slice.call(arguments);
    Array.prototype.unshift.apply(c, d);
    return a.apply(b, c)
   }
  }
  return function() {
   return a.apply(b, arguments)
  }
 }

 function q(a, b, c) {
  Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? q = ca : q = da;
  return q.apply(null, arguments)
 }

 function t(a, b) {
  var c = a.split("."),
   d = h;
  c[0] in d || !d.execScript || d.execScript("var " + c[0]);
  for (var e; c.length && (e = c.shift());) c.length || void 0 === b ? d[e] && d[e] !== Object.prototype[e] ? d = d[e] : d = d[e] = {} : d[e] = b
 }

 function u(a, b) {
  function c() {}
  c.prototype = b.prototype;
  a.L = b.prototype;
  a.prototype = new c;
  a.prototype.constructor = a;
  a.R = function(a, c, g) {
   for (var d = Array(arguments.length - 2), e = 2; e < arguments.length; e++) d[e - 2] = arguments[e];
   return b.prototype[c].apply(a, d)
  }
 };

 function ea(a, b) {
  for (var c = a.split("%s"), d = "", e = Array.prototype.slice.call(arguments, 1); e.length && 1 < c.length;) d += c.shift() + e.shift();
  return d + c.join("%s")
 }
 var fa = String.prototype.trim ? function(a) {
  return a.trim()
 } : function(a) {
  return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "")
 };

 function v(a, b) {
  return a < b ? -1 : a > b ? 1 : 0
 };
 var ha = Array.prototype.indexOf ? function(a, b, c) {
   return Array.prototype.indexOf.call(a, b, c)
  } : function(a, b, c) {
   c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c;
   if (k(a)) return k(b) && 1 == b.length ? a.indexOf(b, c) : -1;
   for (; c < a.length; c++)
    if (c in a && a[c] === b) return c;
   return -1
  },
  ia = Array.prototype.forEach ? function(a, b, c) {
   Array.prototype.forEach.call(a, b, c)
  } : function(a, b, c) {
   for (var d = a.length, e = k(a) ? a.split("") : a, g = 0; g < d; g++) g in e && b.call(c, e[g], g, a)
  };

 function ja(a) {
  return Array.prototype.concat.apply([], arguments)
 }

 function ka(a) {
  var b = a.length;
  if (0 < b) {
   for (var c = Array(b), d = 0; d < b; d++) c[d] = a[d];
   return c
  }
  return []
 };

 function w() {
  this.c = this.c;
  this.f = this.f
 }
 w.prototype.c = !1;
 w.prototype.dispose = function() {
  this.c || (this.c = !0, this.s())
 };
 w.prototype.s = function() {
  if (this.f)
   for (; this.f.length;) this.f.shift()()
 };
 var x;
 a: {
  var la = h.navigator;
  if (la) {
   var ma = la.userAgent;
   if (ma) {
    x = ma;
    break a
   }
  }
  x = ""
 }

 function y(a) {
  return -1 != x.indexOf(a)
 };

 function na(a) {
  var b = [],
   c = 0,
   d;
  for (d in a) b[c++] = a[d];
  return b
 }

 function oa(a) {
  var b = [],
   c = 0,
   d;
  for (d in a) b[c++] = d;
  return b
 };

 function pa(a, b) {
  var c = qa;
  return Object.prototype.hasOwnProperty.call(c, a) ? c[a] : c[a] = b(a)
 };
 var ra = y("Opera"),
  z = y("Trident") || y("MSIE"),
  sa = y("Edge"),
  A = y("Gecko") && !(-1 != x.toLowerCase().indexOf("webkit") && !y("Edge")) && !(y("Trident") || y("MSIE")) && !y("Edge"),
  B = -1 != x.toLowerCase().indexOf("webkit") && !y("Edge");

 function ta() {
  var a = h.document;
  return a ? a.documentMode : void 0
 }
 var C;
 a: {
  var D = "",
   E = function() {
    var a = x;
    if (A) return /rv\:([^\);]+)(\)|;)/.exec(a);
    if (sa) return /Edge\/([\d\.]+)/.exec(a);
    if (z) return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);
    if (B) return /WebKit\/(\S+)/.exec(a);
    if (ra) return /(?:Version)[ \/]?(\S+)/.exec(a)
   }();
  E && (D = E ? E[1] : "");
  if (z) {
   var F = ta();
   if (null != F && F > parseFloat(D)) {
    C = String(F);
    break a
   }
  }
  C = D
 }
 var ua = C,
  qa = {};

 function G(a) {
  return pa(a, function() {
   for (var b = 0, c = fa(String(ua)).split("."), d = fa(String(a)).split("."), e = Math.max(c.length, d.length), g = 0; 0 == b && g < e; g++) {
    var m = c[g] || "",
     r = d[g] || "";
    do {
     m = /(\d*)(\D*)(.*)/.exec(m) || ["", "", "", ""];
     r = /(\d*)(\D*)(.*)/.exec(r) || ["", "", "", ""];
     if (0 == m[0].length && 0 == r[0].length) break;
     b = v(0 == m[1].length ? 0 : parseInt(m[1], 10), 0 == r[1].length ? 0 : parseInt(r[1], 10)) || v(0 == m[2].length, 0 == r[2].length) || v(m[2], r[2]);
     m = m[3];
     r = r[3]
    } while (0 == b)
   }
   return 0 <= b
  })
 }
 var va;
 var wa = h.document;
 va = wa && z ? ta() || ("CSS1Compat" == wa.compatMode ? parseInt(ua, 10) : 5) : void 0;
 z && G("9");
 !B || G("528");
 A && G("1.9b") || z && G("8") || ra && G("9.5") || B && G("528");
 A && !G("8") || z && G("9");

 function xa(a, b, c) {
  this.f = c;
  this.c = a;
  this.g = b;
  this.b = 0;
  this.a = null
 }
 xa.prototype.get = function() {
  if (0 < this.b) {
   this.b--;
   var a = this.a;
   this.a = a.next;
   a.next = null
  } else a = this.c();
  return a
 };

 function ya(a) {
  h.setTimeout(function() {
   throw a;
  }, 0)
 }
 var H;

 function za() {
  var a = h.MessageChannel;
  "undefined" === typeof a && "undefined" !== typeof window && window.postMessage && window.addEventListener && !y("Presto") && (a = function() {
   var a = document.createElement("IFRAME");
   a.style.display = "none";
   a.src = "";
   document.documentElement.appendChild(a);
   var b = a.contentWindow,
    a = b.document;
   a.open();
   a.write("");
   a.close();
   var c = "callImmediate" + Math.random(),
    d = "file:" == b.location.protocol ? "*" : b.location.protocol + "//" + b.location.host,
    a = q(function(a) {
      if (("*" == d || a.origin == d) && a.data == c) this.port1.onmessage()
     },
     this);
   b.addEventListener("message", a, !1);
   this.port1 = {};
   this.port2 = {
    postMessage: function() {
     b.postMessage(c, d)
    }
   }
  });
  if ("undefined" !== typeof a && !y("Trident") && !y("MSIE")) {
   var b = new a,
    c = {},
    d = c;
   b.port1.onmessage = function() {
    if (void 0 !== c.next) {
     c = c.next;
     var a = c.w;
     c.w = null;
     a()
    }
   };
   return function(a) {
    d.next = {
     w: a
    };
    d = d.next;
    b.port2.postMessage(0)
   }
  }
  return "undefined" !== typeof document && "onreadystatechange" in document.createElement("SCRIPT") ? function(a) {
   var b = document.createElement("SCRIPT");
   b.onreadystatechange = function() {
    b.onreadystatechange = null;
    b.parentNode.removeChild(b);
    b = null;
    a();
    a = null
   };
   document.documentElement.appendChild(b)
  } : function(a) {
   h.setTimeout(a, 0)
  }
 };

 function Aa() {
  this.b = this.a = null
 }
 var Ca = new xa(function() {
  return new Ba
 }, function(a) {
  a.reset()
 }, 100);
 Aa.prototype.remove = function() {
  var a = null;
  this.a && (a = this.a, this.a = this.a.next, this.a || (this.b = null), a.next = null);
  return a
 };

 function Ba() {
  this.next = this.b = this.a = null
 }
 Ba.prototype.set = function(a, b) {
  this.a = a;
  this.b = b;
  this.next = null
 };
 Ba.prototype.reset = function() {
  this.next = this.b = this.a = null
 };

 function Da(a) {
  I || Ea();
  Fa || (I(), Fa = !0);
  var b = Ga,
   c = Ca.get();
  c.set(a, void 0);
  b.b ? b.b.next = c : b.a = c;
  b.b = c
 }
 var I;

 function Ea() {
  if (-1 != String(h.Promise).indexOf("[native code]")) {
   var a = h.Promise.resolve(void 0);
   I = function() {
    a.then(Ha)
   }
  } else I = function() {
   var a = Ha;
   !p(h.setImmediate) || h.Window && h.Window.prototype && !y("Edge") && h.Window.prototype.setImmediate == h.setImmediate ? (H || (H = za()), H(a)) : h.setImmediate(a)
  }
 }
 var Fa = !1,
  Ga = new Aa;

 function Ha() {
  for (var a; a = Ga.remove();) {
   try {
    a.a.call(a.b)
   } catch (c) {
    ya(c)
   }
   var b = Ca;
   b.g(a);
   b.b < b.f && (b.b++, a.next = b.a, b.a = a)
  }
  Fa = !1
 };

 function Ia(a, b, c) {
  if (p(a)) c && (a = q(a, c));
  else if (a && "function" == typeof a.handleEvent) a = q(a.handleEvent, a);
  else throw Error("Invalid listener argument");
  return 2147483647 < Number(b) ? -1 : h.setTimeout(a, b || 0)
 };

 function J(a, b, c) {
  w.call(this);
  this.b = a;
  this.m = b || 0;
  this.g = c;
  this.i = q(this.j, this)
 }
 u(J, w);
 J.prototype.a = 0;
 J.prototype.s = function() {
  J.L.s.call(this);
  0 != this.a && h.clearTimeout(this.a);
  this.a = 0;
  delete this.b;
  delete this.g
 };
 J.prototype.start = function(a) {
  0 != this.a && h.clearTimeout(this.a);
  this.a = 0;
  this.a = Ia(this.i, void 0 !== a ? a : this.m)
 };
 J.prototype.j = function() {
  this.a = 0;
  this.b && this.b.call(this.g)
 };
 !A && !z || z && 9 <= Number(va) || A && G("1.9.1");
 z && G("9");

 function K(a) {
  var b = document;
  return k(a) ? b.getElementById(a) : a
 };
 var Ja = "StopIteration" in h ? h.StopIteration : {
  message: "StopIteration",
  stack: ""
 };

 function Ka() {}
 Ka.prototype.next = function() {
  throw Ja;
 };
 Ka.prototype.N = function() {
  return this
 };

 function L(a) {
  w.call(this);
  this.j = 1;
  this.g = [];
  this.i = 0;
  this.a = [];
  this.b = {};
  this.m = !!a
 }
 u(L, w);
 f = L.prototype;
 f.O = function(a, b, c) {
  var d = this.b[a];
  d || (d = this.b[a] = []);
  var e = this.j;
  this.a[e] = a;
  this.a[e + 1] = b;
  this.a[e + 2] = c;
  this.j = e + 3;
  d.push(e);
  return e
 };
 f.u = function(a) {
  var b = this.a[a];
  if (b) {
   var c = this.b[b];
   if (0 != this.i) this.g.push(a), this.a[a + 1] = aa;
   else {
    if (c) {
     var d = ha(c, a);
     0 <= d && Array.prototype.splice.call(c, d, 1)
    }
    delete this.a[a];
    delete this.a[a + 1];
    delete this.a[a + 2]
   }
  }
  return !!b
 };
 f.P = function(a) {
  var b = this.b[a];
  if (b) {
   for (var c = Array(arguments.length - 1), d = 1, e = arguments.length; d < e; d++) c[d - 1] = arguments[d];
   if (this.m)
    for (d = 0; d < b.length; d++) {
     var g = b[d];
     La(this.a[g + 1], this.a[g + 2], c)
    } else {
     this.i++;
     try {
      for (d = 0, e = b.length; d < e; d++) g = b[d], this.a[g + 1].apply(this.a[g + 2], c)
     } finally {
      if (this.i--, 0 < this.g.length && 0 == this.i)
       for (; g = this.g.pop();) this.u(g)
     }
    }
   return 0 != d
  }
  return !1
 };

 function La(a, b, c) {
  Da(function() {
   a.apply(b, c)
  })
 }
 f.clear = function(a) {
  if (a) {
   var b = this.b[a];
   b && (ia(b, this.u, this), delete this.b[a])
  } else this.a.length = 0, this.b = {}
 };
 f.s = function() {
  L.L.s.call(this);
  this.clear();
  this.g.length = 0
 };

 function M(a, b) {
  this.b = {};
  this.a = [];
  this.f = this.c = 0;
  var c = arguments.length;
  if (1 < c) {
   if (c % 2) throw Error("Uneven number of arguments");
   for (var d = 0; d < c; d += 2) this.set(arguments[d], arguments[d + 1])
  } else if (a) {
   a instanceof M ? (c = a.l(), d = a.h()) : (c = oa(a), d = na(a));
   for (var e = 0; e < c.length; e++) this.set(c[e], d[e])
  }
 }
 f = M.prototype;
 f.h = function() {
  N(this);
  for (var a = [], b = 0; b < this.a.length; b++) a.push(this.b[this.a[b]]);
  return a
 };
 f.l = function() {
  N(this);
  return this.a.concat()
 };
 f.clear = function() {
  this.b = {};
  this.f = this.c = this.a.length = 0
 };
 f.remove = function(a) {
  return O(this.b, a) ? (delete this.b[a], this.c--, this.f++, this.a.length > 2 * this.c && N(this), !0) : !1
 };

 function N(a) {
  var b, c;
  if (a.c != a.a.length) {
   for (b = c = 0; c < a.a.length;) {
    var d = a.a[c];
    O(a.b, d) && (a.a[b++] = d);
    c++
   }
   a.a.length = b
  }
  if (a.c != a.a.length) {
   var e = {};
   for (b = c = 0; c < a.a.length;) d = a.a[c], O(e, d) || (a.a[b++] = d, e[d] = 1), c++;
   a.a.length = b
  }
 }
 f.get = function(a, b) {
  return O(this.b, a) ? this.b[a] : b
 };
 f.set = function(a, b) {
  O(this.b, a) || (this.c++, this.a.push(a), this.f++);
  this.b[a] = b
 };
 f.forEach = function(a, b) {
  for (var c = this.l(), d = 0; d < c.length; d++) {
   var e = c[d],
    g = this.get(e);
   a.call(b, g, e, this)
  }
 };
 f.N = function(a) {
  N(this);
  var b = 0,
   c = this.f,
   d = this,
   e = new Ka;
  e.next = function() {
   if (c != d.f) throw Error("The map has changed since the iterator was created");
   if (b >= d.a.length) throw Ja;
   var e = d.a[b++];
   return a ? e : d.b[e]
  };
  return e
 };

 function O(a, b) {
  return Object.prototype.hasOwnProperty.call(a, b)
 };

 function Ma(a) {
  if (a.h && "function" == typeof a.h) return a.h();
  if (k(a)) return a.split("");
  if (ba(a)) {
   for (var b = [], c = a.length, d = 0; d < c; d++) b.push(a[d]);
   return b
  }
  return na(a)
 };
 var Na = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/;

 function Oa(a, b) {
  if (a)
   for (var c = a.split("&"), d = 0; d < c.length; d++) {
    var e = c[d].indexOf("="),
     g = null;
    if (0 <= e) {
     var m = c[d].substring(0, e);
     g = c[d].substring(e + 1)
    } else m = c[d];
    b(m, g ? decodeURIComponent(g.replace(/\+/g, " ")) : "")
   }
 };

 function P(a, b) {
  this.f = this.m = this.c = "";
  this.j = null;
  this.g = this.i = "";
  this.a = !1;
  if (a instanceof P) {
   this.a = void 0 !== b ? b : a.a;
   Pa(this, a.c);
   this.m = a.m;
   this.f = a.f;
   Qa(this, a.j);
   this.i = a.i;
   var c = a.b;
   var d = new Q;
   d.c = c.c;
   c.a && (d.a = new M(c.a), d.b = c.b);
   Ra(this, d);
   this.g = a.g
  } else a && (c = String(a).match(Na)) ? (this.a = !!b, Pa(this, c[1] || "", !0), this.m = R(c[2] || ""), this.f = R(c[3] || "", !0), Qa(this, c[4]), this.i = R(c[5] || "", !0), Ra(this, c[6] || "", !0), this.g = R(c[7] || "")) : (this.a = !!b, this.b = new Q(null, 0, this.a))
 }
 P.prototype.toString = function() {
  var a = [],
   b = this.c;
  b && a.push(S(b, Sa, !0), ":");
  var c = this.f;
  if (c || "file" == b) a.push("//"), (b = this.m) && a.push(S(b, Sa, !0), "@"), a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, "%$1")), c = this.j, null != c && a.push(":", String(c));
  if (c = this.i) this.f && "/" != c.charAt(0) && a.push("/"), a.push(S(c, "/" == c.charAt(0) ? Ta : Ua, !0));
  (c = this.b.toString()) && a.push("?", c);
  (c = this.g) && a.push("#", S(c, Va));
  return a.join("")
 };

 function Pa(a, b, c) {
  a.c = c ? R(b, !0) : b;
  a.c && (a.c = a.c.replace(/:$/, ""))
 }

 function Qa(a, b) {
  if (b) {
   b = Number(b);
   if (isNaN(b) || 0 > b) throw Error("Bad port number " + b);
   a.j = b
  } else a.j = null
 }

 function Ra(a, b, c) {
  b instanceof Q ? (a.b = b, Wa(a.b, a.a)) : (c || (b = S(b, Xa)), a.b = new Q(b, 0, a.a))
 }

 function R(a, b) {
  return a ? b ? decodeURI(a.replace(/%25/g, "%2525")) : decodeURIComponent(a) : ""
 }

 function S(a, b, c) {
  return k(a) ? (a = encodeURI(a).replace(b, Ya), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, "%$1")), a) : null
 }

 function Ya(a) {
  a = a.charCodeAt(0);
  return "%" + (a >> 4 & 15).toString(16) + (a & 15).toString(16)
 }
 var Sa = /[#\/\?@]/g,
  Ua = /[\#\?:]/g,
  Ta = /[\#\?]/g,
  Xa = /[\#\?@]/g,
  Va = /#/g;

 function Q(a, b, c) {
  this.b = this.a = null;
  this.c = a || null;
  this.f = !!c
 }

 function T(a) {
  a.a || (a.a = new M, a.b = 0, a.c && Oa(a.c, function(b, c) {
   Za(a, decodeURIComponent(b.replace(/\+/g, " ")), c)
  }))
 }

 function Za(a, b, c) {
  T(a);
  a.c = null;
  b = U(a, b);
  var d = a.a.get(b);
  d || a.a.set(b, d = []);
  d.push(c);
  a.b = a.b + 1
 }
 f = Q.prototype;
 f.remove = function(a) {
  T(this);
  a = U(this, a);
  return O(this.a.b, a) ? (this.c = null, this.b = this.b - this.a.get(a).length, this.a.remove(a)) : !1
 };
 f.clear = function() {
  this.a = this.c = null;
  this.b = 0
 };

 function V(a, b) {
  T(a);
  b = U(a, b);
  return O(a.a.b, b)
 }
 f.forEach = function(a, b) {
  T(this);
  this.a.forEach(function(c, d) {
   ia(c, function(c) {
    a.call(b, c, d, this)
   }, this)
  }, this)
 };
 f.l = function() {
  T(this);
  for (var a = this.a.h(), b = this.a.l(), c = [], d = 0; d < b.length; d++)
   for (var e = a[d], g = 0; g < e.length; g++) c.push(b[d]);
  return c
 };
 f.h = function(a) {
  T(this);
  var b = [];
  if (k(a)) V(this, a) && (b = ja(b, this.a.get(U(this, a))));
  else {
   a = this.a.h();
   for (var c = 0; c < a.length; c++) b = ja(b, a[c])
  }
  return b
 };
 f.set = function(a, b) {
  T(this);
  this.c = null;
  a = U(this, a);
  V(this, a) && (this.b = this.b - this.a.get(a).length);
  this.a.set(a, [b]);
  this.b = this.b + 1;
  return this
 };
 f.get = function(a, b) {
  var c = a ? this.h(a) : [];
  return 0 < c.length ? String(c[0]) : b
 };

 function $a(a, b, c) {
  a.remove(b);
  0 < c.length && (a.c = null, a.a.set(U(a, b), ka(c)), a.b = a.b + c.length)
 }
 f.toString = function() {
  if (this.c) return this.c;
  if (!this.a) return "";
  for (var a = [], b = this.a.l(), c = 0; c < b.length; c++)
   for (var d = b[c], e = encodeURIComponent(String(d)), d = this.h(d), g = 0; g < d.length; g++) {
    var m = e;
    "" !== d[g] && (m += "=" + encodeURIComponent(String(d[g])));
    a.push(m)
   }
  return this.c = a.join("&")
 };

 function U(a, b) {
  var c = String(b);
  a.f && (c = c.toLowerCase());
  return c
 }

 function Wa(a, b) {
  b && !a.f && (T(a), a.c = null, a.a.forEach(function(a, b) {
   var c = b.toLowerCase();
   b != c && (this.remove(b), $a(this, c, a))
  }, a));
  a.f = b
 };
 t("yt.config_", window.yt && window.yt.config_ || window.ytcfg && window.ytcfg.data_ || {});
 var ab = l("ytPubsubPubsubInstance") || new L;
 L.prototype.subscribe = L.prototype.O;
 L.prototype.unsubscribeByKey = L.prototype.u;
 L.prototype.publish = L.prototype.P;
 L.prototype.clear = L.prototype.clear;
 t("ytPubsubPubsubInstance", ab);
 var bb = l("ytPubsubPubsubSubscribedKeys") || {};
 t("ytPubsubPubsubSubscribedKeys", bb);
 var cb = l("ytPubsubPubsubTopicToKeys") || {};
 t("ytPubsubPubsubTopicToKeys", cb);
 var db = l("ytPubsubPubsubIsSynchronous") || {};
 t("ytPubsubPubsubIsSynchronous", db);
 var W = null;

 function eb() {}
 f = eb.prototype;
 f.D = function() {
  return !1
 };
 f.B = function() {
  return ""
 };
 f.C = function() {};
 f.A = function() {};
 f.G = function() {};
 f.K = function() {};
 f.F = function() {};
 f.H = function() {};
 f.I = function() {};
 f.M = function() {};
 f.o = function() {};
 var fb, gb, X, hb;

 function ib(a) {
  var b = fb;
  b.Open("ExternalWidgetInterface", "1.000", "ExternalWidgetInterface");
  b.Execute("SetWidgetInfo", "1", gb);
  a = b.Execute.apply(b, a);
  b.Close();
  return a
 }

 function jb() {
  try {
   return 1 == ib(["WriteWidgetData", "YouTubeLBL", X, X.length.toString()])
  } catch (a) {}
  return !1
 }

 function Y(a) {
  var b = new Common.API.Plugin;
  p(b.setOnScreenSaver) && p(b.setOffScreenSaver) && (a ? b.setOnScreenSaver() : b.setOffScreenSaver())
 }
 var kb = "unknown";

 function Z() {
  this.f = "";
  this.g = 0;
  this.a = K("lbl-video");
  this.a.OnCurrentPlayTime = "yt.tv.leanbacklite.facadeInstance.onPlayback";
  this.a.OnAuthenticationFailed = "yt.tv.leanbacklite.samsung.OnAuthenticationFailed";
  this.a.OnConnectionFailed = "yt.tv.leanbacklite.samsung.OnConnectionFailed";
  this.a.OnNetworkDisconnected = "yt.tv.leanbacklite.samsung.OnNetworkDisconnected";
  this.a.OnRenderError = "yt.tv.leanbacklite.samsung.OnRenderError";
  this.a.OnStreamNotFound = "yt.tv.leanbacklite.samsung.OnStreamNotFound";
  this.a.OnStreamInfoReady =
   "yt.tv.leanbacklite.samsung.OnStreamInfoReady";
  this.c = K("lbl-flash");
  this.c.focus();
  this.J()
 }
 u(Z, eb);
 f = Z.prototype;
 f.D = function() {
  return null !== this.a && p(this.a.Play)
 };
 f.B = function() {
  var a = "";
  try {
   a = this.a.GetPlayerVersion()
  } catch (b) {}
  return "1.0" + (a ? "_" + a : "")
 };
 f.C = function(a) {
  this.b = a
 };
 f.G = function(a) {
  this.f = K("samsung-external").GetESN("WIDEVINE");
  a += ea("|DEVICE_ID=%s|STREAM_ID=%s|DRM_URL=%s|USER_DATA=%s|PORTAL=%s|COMPONENT=WV|CUR_TIME=PTS|DEVICE_TYPE_ID=|IP_ADDR=|ACK_URL=|HEARTBEAT_URL=%s|HEARTBEAT_PERIOD=%s|I_SEEK=TIME|", this.f || "", this.b.streamId || "", this.b.drmServerUrl, this.b.userData || "", "YouTube", this.b.heartbeatUrl || "", this.b.heartbeatPeriod || "");
  this.a.Play(a);
  Y(!1)
 };
 f.F = function() {
  this.a.Pause();
  Y(!0)
 };
 f.H = function() {
  this.a.Resume();
  Y(!1)
 };
 f.K = function() {
  this.a.Stop();
  Y(!0)
 };
 f.A = function() {
  this.a.Close()
 };
 f.I = function(a) {
  a -= this.g;
  0 < a ? this.a.JumpForward(a) : this.a.JumpBackward(-a)
 };
 f.J = function() {
  var a = window.location.search,
   b = (a instanceof P ? new P(a) : new P(a, void 0)).b,
   c = K("pluginObjectNNavi"),
   a = {};
  a.country = b.get("country");
  a.lang = b.get("lang");
  a.model = b.get("modelid");
  a.vendor = "SAMSUNG";
  a.firmware = b.get("remocon", "") + "mgr" + b.get("mgrver", "") + "|" + c.GetFirmware();
  V(b, "pairingCode") ? a.pairingCode = b.get("pairingCode") : V(b, "data") && (c = b.get("data"), 0 == c.indexOf("pairingCode=") ? a.pairingCode = c.substr(c.indexOf("=") + 1) : a.v = c);
  switch (b.get("product")) {
   case "0":
    a.type = "DTV";
    break;
   case "2":
    a.type = "BDP";
    break;
   default:
    a.type = "OTHER"
  }
  for (var d in a) {
   a: for (b = String(a[d]), c = 0; 1 > c; c++)
    if ('"' == b.charAt(0) && '"' == b.charAt(b.length - 1)) {
     b = b.substring(1, b.length - 1);
     break a
    }a[d] = b
  }
  if (a.l && "function" == typeof a.l) d = a.l();
  else if (a.h && "function" == typeof a.h) d = void 0;
  else if (ba(a) || k(a))
   for (d = [], b = a.length, c = 0; c < b; c++) d.push(c);
  else d = oa(a);
  if ("undefined" == typeof d) throw Error("Keys are undefined");
  b = new Q(null, 0, void 0);
  a = Ma(a);
  for (c = 0; c < d.length; c++) {
   var e = d[c],
    g = a[c];
   "array" == n(g) ? $a(b,
    e, g) : Za(b, e, g)
  }
  try {
   this.c.setParams(R(b.toString()))
  } catch (m) {
   Ia(this.J, 1E3, this)
  }
 };
 f.M = function(a) {
  this.g = a / 1E3;
  try {
   this.c.onPlayback(a)
  } catch (b) {}
 };
 f.o = function(a, b) {
  try {
   this.c.onError(a, b)
  } catch (c) {}
  Y(!1)
 };
 t("yt.tv.leanbacklite.samsung.getStorageStatus", function() {
  return kb
 });
 t("yt.tv.leanbacklite.samsung.readFromStorage", function() {
  return X
 });
 t("yt.tv.leanbacklite.samsung.writeToStorage", function(a) {
  X = a && "null" != a ? a : "";
  hb.start()
 });
 t("yt.tv.leanbacklite.samsung.OnAuthenticationFailed", function() {
  W.o("wv.err.authFailed")
 });
 t("yt.tv.leanbacklite.samsung.OnConnectionFailed", function() {
  W.o("wv.err.connectFailed")
 });
 t("yt.tv.leanbacklite.samsung.OnNetworkDisconnected", function() {
  W.o("wv.err.networkDisconnect")
 });
 t("yt.tv.leanbacklite.samsung.OnRenderError", function(a) {
  W.o("wv.err.render", a)
 });
 t("yt.tv.leanbacklite.samsung.OnStreamNotFound", function() {
  W.o("wv.err.streamNotFound")
 });
 t("yt.tv.leanbacklite.samsung.OnStreamInfoReady", function() {
  var a = K("lbl-video");
  try {
   var b = a.GetVideoWidth(),
    c = a.GetVideoHeight(),
    d = Math.min(960 / b, 540 / c);
   a.SetDisplayArea(480 - b / 2 * d, 270 - c / 2 * d, b * d, c * d)
  } catch (e) {}
 });
 t("yt.tv.leanbacklite.samsung.WidevineFacade", Z);
 Z.prototype.isAvailable = Z.prototype.D;
 Z.prototype.getVersion = Z.prototype.B;
 Z.prototype.initVideo = Z.prototype.C;
 Z.prototype.closeVideo = Z.prototype.A;
 Z.prototype.playVideo = Z.prototype.G;
 Z.prototype.stopVideo = Z.prototype.K;
 Z.prototype.pauseVideo = Z.prototype.F;
 Z.prototype.resumeVideo = Z.prototype.H;
 Z.prototype.seekVideo = Z.prototype.I;
 Z.prototype.onPlayback = Z.prototype.M;
 W = new Z;
 t("yt.tv.leanbacklite.facadeInstance", W);
 kb = function() {
  var a = K("pluginSef");
  if (!a) {
   a = document.getElementsByTagName("head")[0];
   if (!a) return "noHead";
   a.innerHTML += '<object id="pluginSef" border="0" classid="clsid:SAMSUNG-INFOLINK-SEF"></object>';
   a = K("pluginSef")
  }
  if (!a) return "creationError";
  if (!p(a.Open)) return "initError";
  fb = a;
  gb = location.href.match(/file:\/(\/localhost)?(.*?)\/index.html\?.*/)[2];
  if (!gb) return "noPath";
  try {
   var b = ib(["ReadWidgetData", "YouTubeLBL"]);
   X = b ? String(b) : void 0
  } catch (c) {}
  hb = new J(jb, 1E3);
  return "ok"
 }();
}).call(this);
Furthermore when you go to http://www.youtube.com/leanbacklite
you get the Message YT ended its support bla bla something like that.
But the url http://www.youtube.com/leanback is still working.
It looks the same as if i go there using the YT app on my ps3.
I have a Jailbreaked PS3 and also backed up the YT app from it.
Think there will be some options for us to edit the TV app to use the "leanback" url instead of the "leanbacklite"

just my quick findings.
Unfort. i have no time to do further resarch but maybe someone else can go from there.

regards

dieter92
SamyGO Project Donor
Posts: 38
Joined: Thu Feb 12, 2015 3:38 pm

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by dieter92 » Mon Jul 03, 2017 12:52 pm

Hello, i have a h-Serie. With T-GFS Firmware.
I try to extract my YouTube app and the emps for YouTube.
Someone can test it..
You do not have the required permissions to view the files attached to this post.

VooDooShamane
Posts: 23
Joined: Sat Feb 08, 2014 4:44 am

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by VooDooShamane » Mon Jul 03, 2017 12:56 pm

sry for the noobisch question but what are those emps ?
and where to put them ? Image

dieter92
SamyGO Project Donor
Posts: 38
Joined: Thu Feb 12, 2015 3:38 pm

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by dieter92 » Mon Jul 03, 2017 1:32 pm

my emps Location is /mtd_unirw/rwcommon/emps
i dont now sorry. you can try it when you want

VooDooShamane
Posts: 23
Joined: Sat Feb 08, 2014 4:44 am

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by VooDooShamane » Mon Jul 03, 2017 2:29 pm

huh okay my emps seems to be in /mtd_rwcommon/emps (my TV UE46D6200 spoofed to D6300)
i did put yours in there and the app in user and in normal.
so it looks like that now:

Code: Select all

/mtd_rwcommon/emps/empYTContents
/mtd_rwcommon/emps/empYTContents_img
/mtd_rwcommon/widgets/normal/111299001912_img
/mtd_rwcommon/widgets/user/111299001912_img
and when ever i start smarthub now it says "downloading" in the upper right corner and then "installing" before smarthub starts.
But sadly the app does not show up in Smarthub.

thank's for your efforts anyways ;)

regards

dieter92
SamyGO Project Donor
Posts: 38
Joined: Thu Feb 12, 2015 3:38 pm

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by dieter92 » Wed Jul 05, 2017 11:12 am

Do you test the YouTube app from the SamsungApps List (for free apps) section in extras?

zoelechat
SamyGO Moderator
Posts: 7946
Joined: Fri Apr 12, 2013 7:32 pm
Location: France

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by zoelechat » Wed Jul 05, 2017 11:45 am

I doubt any will work, Youtube dropped Flash and that's all up to 2012 (<=E) TVs apps support.
https://support.google.com/youtube/answer/7379403?hl=en
I do NOT receive any PM. Please use forum.

hermator
Posts: 1
Joined: Thu Jul 06, 2017 1:10 am

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by hermator » Thu Jul 06, 2017 1:29 am

Hello - I have a Samsung UE46D6200 "patched" to D6300 and youtube uninstalled itself on first of July as expected.
My pre-installed and renamed copy is still intact, but after the youtube-boot-logo and bar has finished loading to the end,
nothing else happens except a black screen. Now I´m using russian LforkMod3.3 widget, it has youtube integrated
and most of all videos still work with flashplayer. Also the brandnew ones !
It just took me a while to figure out how to control the app and switch to non-russian keyboard at all...
I also suspect, the app even is not for my TV (sometimes crashes and disables sleep function of TV) , but other than that
works fine for me as long as there's nothing better.
So if I still can watch newest youtube videos with it, I guess it should be possible to rewrite oder modify youtube app for
somebody who has the skills (not me).
How I miss the nyoutubeHD3d widget, which the developer unfortunately stopped supporting years ago......

Mxler
Posts: 1
Joined: Wed Sep 06, 2017 4:19 pm

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by Mxler » Wed Sep 06, 2017 5:08 pm

Can you give a link to LforkMod3.3? I have the same issue.

samer
Posts: 74
Joined: Mon Nov 14, 2011 3:04 am

Re: ue40D6100SW Youtube no longer works on 30.06.2017

Post by samer » Thu Sep 28, 2017 11:28 am

Hello

I need fix youtube problem on my D series too... Youtube app deleted :-((
----D6100, i search YouTube app for mirroring from tablet (send me pm, many thx!)
....F6500 T-MST12DEUC ver.1119

Post Reply

Return to “[D] General”