Channel9 Resolver

Download video/audio from Channel 9

  1. // ==UserScript==
  2. // @name Channel9 Resolver
  3. // @namespace https://greasyfork.org/zh-TW/scripts/5920-channel9-resolver
  4. // @version 0.1
  5. // @description Download video/audio from Channel 9
  6. // @icon http://channel9.msdn.com/favicon.ico
  7. // @license GPL version 3
  8. // @encoding utf-8
  9. // @date 10/21/2014
  10. // @modified 10/21/2014
  11. // @author Myfreedom614 <openszone@gmail.com>
  12. // @supportURL http://openszone.com/
  13. // @match http://channel9.msdn.com/*
  14. // @grant none
  15. // @copyright 2014,Myfreedom614
  16. // ==/UserScript==
  17.  
  18. function DoResolve()
  19. {
  20. var title = document.getElementsByTagName('title')[0].innerHTML;
  21. //alert(title);
  22. var dls = document.getElementsByClassName('download')[0];
  23. var helps = dls.getElementsByClassName('help');
  24. var str = '<HTML><HEAD><BASE HREF="';
  25. str += document.URL;
  26. str += '"></HEAD><BODY>';
  27. str+='<h2>'+ title +'</h2>------------------------';
  28.  
  29. if(helps.length != 0)
  30. {
  31. for (i=0; i < helps.length; i++)
  32. {
  33. //alert(helps[i].innerHTML);
  34. var link = helps[i].getElementsByTagName('a')[0].getAttribute('href');
  35. var format = helps[i].getElementsByTagName('a')[0].innerHTML + ' ' + helps[i].getElementsByTagName('span')[0].innerHTML;
  36. var filesize = helps[i].getElementsByClassName('popup rounded')[0];
  37. //alert('<h3>'+ format +': </h3><span>'+ link + '</span><br>');
  38. if(filesize)
  39. {
  40. filesize = filesize.innerHTML.replace('<h3>File size</h3>','');
  41. str += '<h3>'+ format + " "+ filesize +': </h3><span>'+ "<a href='"+ link +"'>"+ link +"</a>" + '</span><br>';
  42. }
  43. else
  44. str += '<h3>'+ format +': </h3><span>'+ "<a href='"+ link +"'>"+ link +"</a>" + '</span><br>';
  45. }
  46. str += '<br><h4>Powered By <a href="http://openszone.com/about" title="About Myfreedom614" target="_blank">Myfreedom614</a></h4></BODY></HTML>';
  47. document.head.innerHTML='<title>'+ title + '</title>';
  48. document.body.innerHTML=str;
  49. }
  50. else
  51. {
  52. var lis = dls.getElementsByTagName('li');
  53. for (i=0; i < lis.length; i++)
  54. {
  55. var link = lis[i].getElementsByTagName('a')[0].getAttribute('href');
  56. var format = lis[i].getElementsByTagName('a')[0].innerHTML + ' ' + lis[i].getElementsByTagName('span')[0].innerHTML;
  57. var filesize = lis[i].getElementsByClassName('popup rounded')[0];
  58. //alert('<h3>'+ format +': </h3><span>'+ link + '</span><br>');
  59. if(filesize)
  60. {
  61. filesize = filesize.innerHTML.replace('<h3>File size</h3>','');
  62. str += '<h3>'+ format + " "+ filesize +': </h3><span>'+ "<a href='"+ link +"'>"+ link +"</a>" + '</span><br>';
  63. }
  64. else
  65. str += '<h3>'+ format +': </h3><span>'+ "<a href='"+ link +"'>"+ link +"</a>" + '</span><br>';
  66. }
  67. str += '<br><h4>Powered By <a href="http://openszone.com/about" title="About Myfreedom614" target="_blank">Myfreedom614</a></h4></BODY></HTML>';
  68. document.head.innerHTML='<title>'+ title + '</title>';
  69. document.body.innerHTML=str;
  70. }
  71. }
  72.  
  73. var div = document.getElementsByClassName('video-options')[0].getElementsByTagName('ul')[0];
  74. div.innerHTML += "<li class='rounded'><a class='formats' id='resolvelink' style='cursor: pointer;' data-selectedformat='html5'><span class='icon'>&nbsp;</span> Resolve</a></li>";
  75.  
  76. div = document.getElementById('resolvelink');
  77. div.onclick = DoResolve;