tagesschau.de-html5-videos

tagesschau.de: HTML5 Video all the way - get rid of annoying projekktor player

  1. // ==UserScript==
  2. // @id www.tagesschau.de-d25add17-4ab0-4d46-ad1e-980d91e0e4cd@https://github.com/about-robots
  3. // @name tagesschau.de-html5-videos
  4. // @description tagesschau.de: HTML5 Video all the way - get rid of annoying projekktor player
  5. // @namespace https://github.com/about-robots
  6. // @include http://www.tagesschau.de/*
  7. // @exclude http://www.tagesschau.de/multimedia/video/video-*~player_autoplay-true.html
  8. // @exclude http://www.tagesschau.de/multimedia/livestreams/index.html
  9. // @run-at document-end
  10.  
  11. // @version 1.6.2
  12. // ==/UserScript==
  13.  
  14. var mediaTypes = [];
  15. var iframes = document.getElementsByTagName("iframe");
  16.  
  17. for (var i = iframes.length - 1; i >= 0; i--) {
  18. var mediaResources = iframes[i].getAttribute("data-ctrl-iframe");
  19. var i1 = mediaResources.indexOf("'src'") + 7;
  20. var i2 = mediaResources.indexOf("'", i1);
  21. var mediaPageUrl = "http://www.tagesschau.de" + mediaResources.substr(i1, i2 - i1);
  22. mediaTypes[i] = mediaPageUrl.indexOf("audio") > -1 ? "audio" : "video";
  23. var oReq = new XMLHttpRequest();
  24. oReq.onload = (function(e,ix) {
  25. return function() {
  26. var mediaType = mediaTypes[ix];
  27. var i1 = this.response.indexOf("var playlist");
  28. i1 = this.response.indexOf("http://media.tagesschau.de/", i1);
  29. var i2 = this.response.indexOf((mediaType == "audio" ? "'" : '"'), i1);
  30. var mediaFileUrl = this.response.substr(i1, i2 - i1 - (mediaType == "audio" ? 3 : 10)) + ((mediaType == "audio" ? "ogg" : "l.h264.mp4"));
  31. var mediaElement = document.createElement(mediaType);
  32. mediaElement.setAttribute("src", mediaFileUrl);
  33. mediaElement.setAttribute("controls", "1");
  34. var audioBgImg = "http://www.tagesschau.de/resources/framework/mediaplayer/skin/audiobg.jpg";
  35. mediaElement.setAttribute("style", "width:100%;height:155px;background:url("+audioBgImg+") center bottom / auto no-repeat transparent;");
  36. if (mediaType == "video") {
  37. i1 = this.response.indexOf('poster:', i2);
  38. i1 = this.response.indexOf("5:", i1);
  39. i1 = this.response.indexOf('"', i1) + 1;
  40. i2 = this.response.indexOf('"', i1);
  41. var videoPosterImg = "http://www.tagesschau.de" + this.response.substr(i1, i2 - i1);
  42. mediaElement.setAttribute("poster", "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
  43. mediaElement.setAttribute("style", "width:100%;background:url("+videoPosterImg+") center / 100% no-repeat transparent");
  44. }
  45.  
  46. iframes[ix].parentNode.insertBefore(mediaElement, iframes[ix]);
  47. iframes[ix].parentNode.removeChild(iframes[ix]);
  48. }
  49. })(oReq,i);
  50. oReq.open("get", mediaPageUrl, true);
  51. oReq.send();
  52. }