Guest User

Untitled

a guest
Oct 3rd, 2012
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. function getBestQuality(videoID) {
  2.  
  3. xhr=new XMLHttpRequest();
  4. var param_array = new Array('&el=detailpage');
  5. var txtDoc = "";
  6. for(var i = 0; i < param_array.length; ++i)
  7. {
  8. var param = param_array[i];
  9.  
  10. var send_to_url = 'http://www.youtube.com/get_video_info?&video_id=' + videoID + param + '&ps=default&eurl=&gl=US&hl=en';
  11. xhr.open("GET", send_to_url, false);
  12. xhr.setRequestHeader("Accept-Encoding", "identity");
  13. xhr.setRequestHeader("Accept-Language", "en-us,en;q=0.5");
  14. xhr.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
  15. xhr.setRequestHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.6) Gecko/20100627 Firefox/3.6.6");
  16. xhr.setRequestHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
  17. xhr.setRequestHeader("Connection", "close");
  18.  
  19. xhr.send();
  20.  
  21. txtDoc=xhr.responseText;
  22. if(txtDoc.indexOf('fmt_url_map'))
  23. {
  24. break;
  25. }
  26.  
  27. if(txtDoc.indexOf('url_encoded_fmt_stream_map'))
  28. {
  29. break;
  30. }
  31. }
  32.  
  33. xhr.destroy();
  34.  
  35. var paare = txtDoc.split("&");
  36.  
  37. var paar, name, wert;
  38. var params=new Array();
  39. for (var i = 0; i < paare.length; i++)
  40. {
  41. paar = paare[i].split("=");
  42. name = paar[0];
  43. wert = paar[1];
  44. params[name] = unescape(wert);
  45. }
  46. var url ="";
  47.  
  48. if(params['fmt_url_map'])
  49. {
  50.  
  51. var test = params['fmt_url_map'].split(",");
  52.  
  53. for (var index = 0; index < test.length; index++)
  54. {
  55. var videoinfo = test[index].split("|");
  56.  
  57. if (videoinfo[0] == '22')
  58. {
  59. url = videoinfo[1];
  60. alert(videoinfo[0]);
  61. alert("HD 720p");
  62. break;
  63. }
  64. }
  65. }
  66.  
  67. url = params['url_encoded_fmt_stream_map'].replace("url=","");
  68. url = parser(url, '&url=', ',itag');
  69. url = url.replace("&sig", "&signature");
  70.  
  71. if(params['url_encoded_fmt_stream_map'])
  72. {
  73.  
  74. var test = params['url_encoded_fmt_stream_map'].split(",url=");
  75.  
  76. for (var index = 0; index < test.length; index++)
  77. {
  78.  
  79. var need_help = test[index].indexOf(',itag');
  80. if(need_help>0)
  81. {
  82. var helper = test[index].substr(0,need_help);
  83. alert('helper' + helper)
  84. test[index] = helper
  85. }
  86.  
  87. var videoinfo = test[index].split("&itag=");
  88. videoinfo[0] = videoinfo[0].replace("url=","");
  89.  
  90. if (videoinfo[1] == '22')
  91. {
  92. url = videoinfo[0];
  93. mode = "HD 720p"
  94. break;
  95. }
  96. if (videoinfo[1] == '18')
  97. {
  98. url = videoinfo[0];
  99. break;
  100. }
  101. if (videoinfo[1] == '5')
  102. {
  103. url = videoinfo[0];
  104. break;
  105. }
  106. }
  107. }
  108.  
  109.  
  110. url = url.replace(/\%3A/g,":");
  111. url = url.replace(/\%2F/g,"/");
  112. url = url.replace(/\%3F/g,"?");
  113. url = url.replace(/\%3D/g,"=");
  114. url = url.replace(/\%252C/g,",");
  115. url = url.replace(/\%26/g,"&");
  116. url = url.replace(/\%253/g,":");
  117.  
  118. return url;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment