Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <title>Teste</title>
- <link rel="stylesheet" href="https://cdn.plyr.io/3.4.7/plyr.css">
- <style type="text/css">
- /* This is purely for the demo */
- .container {
- max-width: 800px;
- margin: 0 auto;
- }
- .plyr {
- border-radius: 4px;
- margin-bottom: 15px;
- }
- </style>
- </head>
- <body>
- <script src="https://cdn.plyr.io/3.4.6/plyr.js"></script>
- <script type="text/javascript">
- document.addEventListener('DOMContentLoaded', () => {
- // This is the bare minimum JavaScript. You can opt to pass no arguments to setup.
- const player = new Plyr('#player');
- // Expose
- window.player = player;
- // Bind event listener
- function on(selector, type, callback) {
- document.querySelector(selector).addEventListener(type, callback, false);
- }
- // Play
- on('.js-play', 'click', () => {
- player.play();
- });
- // Pause
- on('.js-pause', 'click', () => {
- player.pause();
- });
- // Stop
- on('.js-stop', 'click', () => {
- player.stop();
- });
- // Rewind
- on('.js-rewind', 'click', () => {
- player.rewind();
- });
- // Forward
- on('.js-forward', 'click', () => {
- player.forward();
- });
- });
- </script>
- <?php
- // Retorno do JS abaixo
- function getStrBetween($string,$start,$end){
- $string = explode($start, $string)[1];
- return explode($end, $string)[0];
- }
- // Link do vídeo
- $url = 'https://openload.co/f/cV3v0j81ds0/';
- // Evitar os erros de cross
- // e fazer permitir retornar a transferência do vídeo antes
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $data = curl_exec($ch);
- curl_close($ch);
- // Tira o encrypt do link original (raw)
- $data = rawurldecode($data);
- // Daqui para baixo ele começa a decifrar usando as variáveis do JS
- $longString = getStrBetween($data,'<div class="" style="display:none;">','</div>');
- $longString = getStrBetween($longString,'>','<');
- $key1 = getStrBetween($data,'(_0x45ae41[_0x5949(\'0xf\')](_0x30725e,','),_1x4bfb36');
- $key2 = getStrBetween($data,'_1x4bfb36=',';');
- $title = getStrBetween($data,'<meta name="og:title" content="', '">');
- $thumbnail = getStrBetween($data,'poster="', '"');
- $subtitle = getStrBetween($data,'var suburl = "', '"');
- $subtitle = trim(str_replace('\/', '/', $subtitle));
- // Dá um echo com os 3 fáceis ;/
- echo "Título do arquivo: " . $title . "<br/><br/>" . "Thumbnail: " . $thumbnail . "<br/><br/>" . "Legenda (extraída): " . $subtitle . "<br/><br/>";
- ?>
- <div class="container">
- <center><?php echo $title; ?></center>
- <script>
- function getStrBetween(str, start, end, reverse = false, startOffset = 0, endOffset = 0) {
- if (reverse) {
- var sub = str.substr(0, str.indexOf(end) + endOffset);
- return sub.substr(sub.lastIndexOf(start) + start.length + startOffset);
- } else {
- var sub = str.substr(str.indexOf(start) + start.length + startOffset);
- return sub.substr(0, sub.indexOf(end) + endOffset);
- }
- }
- function getStreamUrl(longString, varAtbytes, varAt_1x4bfb36) {
- var streamUrl = "";
- var hexByteArr = [];
- for (i = 0; i < 9 * 8; i += 8) {
- // Forum russo salvou essa tal de substring
- hexByteArr.push(parseInt(longString.substring(i, i + 8), 16));
- }
- longString = longString.substring(9 * 8);
- var iterator = 0;
- for (var arrIterator = 0; iterator < longString.length; arrIterator++) {
- var maxHex = 64;
- var value = 0;
- var currHex = 255;
- for (var byteIterator = 0; currHex >= maxHex; byteIterator += 6) {
- if (iterator + 1 >= longString.length) {
- maxHex = 0x8F;
- }
- // Fix do Fix do Fix
- currHex = parseInt(longString.substring(iterator, iterator + 2), 16);
- value += (currHex & 63) << byteIterator;
- iterator += 2;
- }
- var bytes = value ^ hexByteArr[arrIterator % 9] ^ varAtbytes ^ varAt_1x4bfb36;
- var usedBytes = maxHex * 2 + 127;
- for (i = 0; i < 4; i++) {
- var urlChar = String.fromCharCode(((bytes & usedBytes) >> 8 * i) - 1);
- if (urlChar != "$") {
- streamUrl += urlChar;
- }
- usedBytes = usedBytes << 8;
- }
- }
- return streamUrl;
- }
- // Montando as variáveis antes de dar os parses
- var longString = "<?php echo $longString;?>";
- var keyNum1 = "<?php echo $key1;?>";
- var keyNum2 = "<?php echo $key2;?>";
- try {
- var keyNum1_Oct = parseInt(getStrBetween(keyNum1, "('", "',"), 8);
- var keyNum1_Sub = parseInt(getStrBetween(keyNum1, ")-", "+"));
- var keyNum1_Div = parseInt(getStrBetween(keyNum1, "/(", "-"));
- var keyNum1_Sub2 = parseInt(getStrBetween(keyNum1, "+0x4-", ")"));
- keyNum1 = (keyNum1_Oct - keyNum1_Sub + 4 - keyNum1_Sub2) / (keyNum1_Div - 8);
- var keyNum2_Oct = parseInt(getStrBetween(keyNum2, "('", "',"), 8);
- var keyNum2_Sub = parseInt(keyNum2.substr(keyNum2.indexOf(")-") + 2));
- keyNum2 = keyNum2_Oct - keyNum2_Sub;
- } catch (e) {
- throw {
- name: "ParseError",
- message: "keyNum1: '" + keyNum1 + "' keyNum2: '" + keyNum2 + "' \n" + HTML,
- toString: function() {
- return this.name + ": " + this.message
- }
- };
- }
- // Montando com as variáveis
- var openStream = "http://openload.co/stream/";
- var openLink = getStreamUrl(longString, keyNum1, keyNum2);
- var posterImagem = "<?php echo $thumbnail;?>";
- // Montando o player
- document.write('<video controls data-plyr-config="{ "title": "<?php echo $title ?>", focused: true, global: true }" playsinline id="player" poster="' + posterImagem +' >');
- document.write('<source type="video/mp4" src="go.php?url=' + openStream + openLink +' ">');
- document.write('</video>');
- document.write('<a href="down.php?url=' + openStream + openLink +'">Link</a>');
- </script>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement