Advertisement
smallkan

Untitled

Jan 24th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.95 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Teste</title>
  5. <link rel="stylesheet" href="https://cdn.plyr.io/3.4.7/plyr.css">
  6.  
  7. <style type="text/css">
  8. /* This is purely for the demo */
  9. .container {
  10. max-width: 800px;
  11. margin: 0 auto;
  12. }
  13. .plyr {
  14. border-radius: 4px;
  15. margin-bottom: 15px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <script src="https://cdn.plyr.io/3.4.6/plyr.js"></script>
  21. <script type="text/javascript">
  22. document.addEventListener('DOMContentLoaded', () => {
  23. // This is the bare minimum JavaScript. You can opt to pass no arguments to setup.
  24. const player = new Plyr('#player');
  25.  
  26. // Expose
  27. window.player = player;
  28.  
  29. // Bind event listener
  30. function on(selector, type, callback) {
  31. document.querySelector(selector).addEventListener(type, callback, false);
  32. }
  33.  
  34. // Play
  35. on('.js-play', 'click', () => {
  36. player.play();
  37. });
  38.  
  39. // Pause
  40. on('.js-pause', 'click', () => {
  41. player.pause();
  42. });
  43.  
  44. // Stop
  45. on('.js-stop', 'click', () => {
  46. player.stop();
  47. });
  48.  
  49. // Rewind
  50. on('.js-rewind', 'click', () => {
  51. player.rewind();
  52. });
  53.  
  54. // Forward
  55. on('.js-forward', 'click', () => {
  56. player.forward();
  57. });
  58. });
  59. </script>
  60.  
  61. <?php
  62.  
  63. // Retorno do JS abaixo
  64. function getStrBetween($string,$start,$end){
  65. $string = explode($start, $string)[1];
  66. return explode($end, $string)[0];
  67. }
  68.  
  69. // Link do vídeo
  70. $url = 'https://openload.co/f/cV3v0j81ds0/';
  71.  
  72. // Evitar os erros de cross
  73. // e fazer permitir retornar a transferência do vídeo antes
  74.  
  75. $ch = curl_init();
  76. curl_setopt($ch, CURLOPT_URL, $url);
  77. curl_setopt($ch, CURLOPT_HEADER, 0);
  78. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  79.  
  80. $data = curl_exec($ch);
  81. curl_close($ch);
  82.  
  83. // Tira o encrypt do link original (raw)
  84. $data = rawurldecode($data);
  85.  
  86. // Daqui para baixo ele começa a decifrar usando as variáveis do JS
  87. $longString = getStrBetween($data,'<div class="" style="display:none;">','</div>');
  88. $longString = getStrBetween($longString,'>','<');
  89.  
  90. $key1 = getStrBetween($data,'(_0x45ae41[_0x5949(\'0xf\')](_0x30725e,','),_1x4bfb36');
  91.  
  92. $key2 = getStrBetween($data,'_1x4bfb36=',';');
  93.  
  94. $title = getStrBetween($data,'<meta name="og:title" content="', '">');
  95.  
  96. $thumbnail = getStrBetween($data,'poster="', '"');
  97.  
  98. $subtitle = getStrBetween($data,'var suburl = "', '"');
  99. $subtitle = trim(str_replace('\/', '/', $subtitle));
  100.  
  101. // Dá um echo com os 3 fáceis ;/
  102. echo "Título do arquivo: " . $title . "<br/><br/>" . "Thumbnail: " . $thumbnail . "<br/><br/>" . "Legenda (extraída): " . $subtitle . "<br/><br/>";
  103.  
  104. ?>
  105.  
  106. <div class="container">
  107. <center><?php echo $title; ?></center>
  108. <script>
  109.  
  110. function getStrBetween(str, start, end, reverse = false, startOffset = 0, endOffset = 0) {
  111. if (reverse) {
  112. var sub = str.substr(0, str.indexOf(end) + endOffset);
  113. return sub.substr(sub.lastIndexOf(start) + start.length + startOffset);
  114. } else {
  115. var sub = str.substr(str.indexOf(start) + start.length + startOffset);
  116. return sub.substr(0, sub.indexOf(end) + endOffset);
  117. }
  118. }
  119.  
  120. function getStreamUrl(longString, varAtbytes, varAt_1x4bfb36) {
  121. var streamUrl = "";
  122. var hexByteArr = [];
  123. for (i = 0; i < 9 * 8; i += 8) {
  124. // Forum russo salvou essa tal de substring
  125. hexByteArr.push(parseInt(longString.substring(i, i + 8), 16));
  126. }
  127. longString = longString.substring(9 * 8);
  128. var iterator = 0;
  129. for (var arrIterator = 0; iterator < longString.length; arrIterator++) {
  130. var maxHex = 64;
  131. var value = 0;
  132. var currHex = 255;
  133. for (var byteIterator = 0; currHex >= maxHex; byteIterator += 6) {
  134. if (iterator + 1 >= longString.length) {
  135. maxHex = 0x8F;
  136. }
  137. // Fix do Fix do Fix
  138. currHex = parseInt(longString.substring(iterator, iterator + 2), 16);
  139. value += (currHex & 63) << byteIterator;
  140. iterator += 2;
  141. }
  142. var bytes = value ^ hexByteArr[arrIterator % 9] ^ varAtbytes ^ varAt_1x4bfb36;
  143. var usedBytes = maxHex * 2 + 127;
  144. for (i = 0; i < 4; i++) {
  145. var urlChar = String.fromCharCode(((bytes & usedBytes) >> 8 * i) - 1);
  146. if (urlChar != "$") {
  147. streamUrl += urlChar;
  148. }
  149. usedBytes = usedBytes << 8;
  150. }
  151. }
  152. return streamUrl;
  153. }
  154.  
  155. // Montando as variáveis antes de dar os parses
  156. var longString = "<?php echo $longString;?>";
  157. var keyNum1 = "<?php echo $key1;?>";
  158. var keyNum2 = "<?php echo $key2;?>";
  159.  
  160. try {
  161. var keyNum1_Oct = parseInt(getStrBetween(keyNum1, "('", "',"), 8);
  162. var keyNum1_Sub = parseInt(getStrBetween(keyNum1, ")-", "+"));
  163. var keyNum1_Div = parseInt(getStrBetween(keyNum1, "/(", "-"));
  164. var keyNum1_Sub2 = parseInt(getStrBetween(keyNum1, "+0x4-", ")"));
  165.  
  166. keyNum1 = (keyNum1_Oct - keyNum1_Sub + 4 - keyNum1_Sub2) / (keyNum1_Div - 8);
  167.  
  168. var keyNum2_Oct = parseInt(getStrBetween(keyNum2, "('", "',"), 8);
  169. var keyNum2_Sub = parseInt(keyNum2.substr(keyNum2.indexOf(")-") + 2));
  170.  
  171. keyNum2 = keyNum2_Oct - keyNum2_Sub;
  172. } catch (e) {
  173. throw {
  174. name: "ParseError",
  175. message: "keyNum1: '" + keyNum1 + "' keyNum2: '" + keyNum2 + "' \n" + HTML,
  176. toString: function() {
  177. return this.name + ": " + this.message
  178. }
  179. };
  180. }
  181.  
  182. // Montando com as variáveis
  183. var openStream = "http://openload.co/stream/";
  184. var openLink = getStreamUrl(longString, keyNum1, keyNum2);
  185. var posterImagem = "<?php echo $thumbnail;?>";
  186.  
  187. // Montando o player
  188. document.write('<video controls data-plyr-config="{ "title": "<?php echo $title ?>", focused: true, global: true }" playsinline id="player" poster="' + posterImagem +' >');
  189. document.write('<source type="video/mp4" src="go.php?url=' + openStream + openLink +' ">');
  190. document.write('</video>');
  191.  
  192. document.write('<a href="down.php?url=' + openStream + openLink +'">Link</a>');
  193.  
  194. </script>
  195. </div>
  196. </body>
  197. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement