Greasy Fork is available in English.

HTML5 player for Público TV

No ads, easily download videos and shows.

// ==UserScript==
// @name           HTML5 player for Público TV
// @name:es        Reproductor HTML5 para Público TV
// @description    No ads, easily download videos and shows.
// @description:es Sin anuncios, descarga fácilmente los vídeos.
// @namespace      https://greasyfork.org/users/4813-swyter
// @include        http://especiales.publico.es/publico-tv/*
// @version        2016.05.12
// @icon           https://i.imgur.com/PQgnzT4.jpg
// @grant          none
// @run-at         document-start
// ==/UserScript==

window.OVERON_Player = window.OVERON_Player || {};

/* override the flash video function and call it a day */
Object.defineProperty(window.OVERON_Player, 'init',
{
  configurable: false,
  writable: false,
  value: function(options)
  {
    console.info("check overriden! video arguments =>", arguments);

    v = document.createElement("video");

    v.width = options.width;
    v.height = options.height;
    v.src = ((t=document.createElement("textarea")).innerHTML = options.stream) && t.textContent;
    v.style = "display: block !important;";

    v.poster = options.preview_load;
    v.controls = 'true';

    /* replace the old SWF Flash object with it, voilà */
    elem = document.getElementById(options.container)
    elem.parentNode.replaceChild(v, elem);

    console.log("video replaced =>", v, elem);
  }
});

/* wait until the page is ready for the code snipped to run */
document.addEventListener('DOMContentLoaded', function()
{
  /* remove random crap */
  filters =
  [
    ".robapaginas",
    ".share",
    ".ads",
  ];

  for (var cur in (junk=document.querySelectorAll(filters.join(', '))))
  {
    if(typeof junk[cur] !== 'object')
      continue;

    console.log("Removed junk element: " + junk[cur]);
    junk[cur].parentElement.removeChild(junk[cur]);
  }
});