Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Downloader MegaVideo i biała strona
screv
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

Ostrzeżenie: (10%)
X----


Posiadam taki o to kod:

cli.php
  1. <?
  2. if(!$argv[1]) die("Usage: $argv[0] URL OR ID\n");
  3.  
  4. include('megavideo.class.php');
  5.  
  6. $obj = new Megavideo(!$argv[1]);
  7. print "-- Megavideo Downloader by luruke --\n";
  8. print "URL download:..........{$obj->get(url)}\n";
  9. print "Title:.................{$obj->get(title)}\n";
  10. print "Duration:..............{$obj->get(duration)}m\n";
  11. print "Size:..................{$obj->get(size)}Mb\n";
  12.  
  13. //system("firefox ".$obj->get(url));
  14. ?>


megavideo.class.php
  1. <?
  2. class Megavideo
  3. {
  4.  
  5. function __construct($url)
  6. {
  7. preg_match('#\?v=(.+?)$#', $url, $id);
  8.  
  9. $this->id = $id[1]?$id[1]:$url;
  10.  
  11. $this->getxml();
  12.  
  13. $parse = array ( 'runtimehms' => 'duration',
  14. 'size' => 'size',
  15. 's' => 'server',
  16. 'title' => 'title',
  17. 'description' => 'description',
  18. 'added' => 'added',
  19. 'username' => 'username',
  20. 'category' => 'category',
  21. 'views' => 'views',
  22. 'comments' => 'comments',
  23. 'favorited' => 'favorited',
  24. 'rating' => 'rating',
  25. 'k1' => 'key1',
  26. 'k2' => 'key2',
  27. 'un' => 'str');
  28.  
  29. foreach($parse as $key=>$val)
  30. {
  31. $this->parsexml($key, $val);
  32. }
  33.  
  34. $this->size = round($this->size/(1024*1024));
  35.  
  36. }
  37.  
  38. function get($what=false)
  39. {
  40. $all = array( "URL" => "http://www".$this->server.
  41. ".megavideo.com/files/".
  42. $this->decrypt($this->str, $this->key1, $this->key2)."/",
  43. "SIZE" => $this->size,
  44. "TITLE" => $this->title,
  45. "DURATION" => $this->duration,
  46. "SERVER" => $this->server,
  47. "DESCRIPTION" => $this->description,
  48. "ADDED" => $this->added,
  49. "USERNAME" => $this->username,
  50. "CATEGORY" => $this->category,
  51. "VIEWS" => $this->views,
  52. "COMMENTS" => $this->comments,
  53. "FAVORITED" => $this->favorited,
  54. "RATING" => $this->rating
  55. );
  56.  
  57. return $what&&array_key_exists(strtoupper($what),$all)?$all[strtoupper($what)]:$all;
  58. }
  59.  
  60. function getxml()
  61. {
  62. $this->xml = file_get_contents("http://www.megavideo.com/xml/videolink.php?v=".$this->id."&id=".time()) or
  63. die("Error!\n");
  64. }
  65.  
  66.  
  67. function parsexml($attribute, $name)
  68. {
  69. preg_match("#\s$attribute=\"(.+?)\"#", $this->xml, $tmp);
  70. list(,$this->$name) = $tmp;
  71. }
  72.  
  73. function decrypt($str, $key1, $key2)
  74. {
  75. $reg1 = array();
  76.  
  77. for($reg3=0; $reg3<strlen($str); $reg3++)
  78. {
  79. $reg0 = $str[$reg3];
  80.  
  81. switch($reg0)
  82. {
  83. case '0': $reg1[] = '0000'; break;
  84. case '1': $reg1[] = '0001'; break;
  85. case '2': $reg1[] = '0010'; break;
  86. case '3': $reg1[] = '0011'; break;
  87. case '4': $reg1[] = '0100'; break;
  88. case '5': $reg1[] = '0101'; break;
  89. case '6': $reg1[] = '0110'; break;
  90. case '7': $reg1[] = '0111'; break;
  91. case '8': $reg1[] = '1000'; break;
  92. case '9': $reg1[] = '1001'; break;
  93. case 'a': $reg1[] = '1010'; break;
  94. case 'b': $reg1[] = '1011'; break;
  95. case 'c': $reg1[] = '1100'; break;
  96. case 'd': $reg1[] = '1101'; break;
  97. case 'e': $reg1[] = '1110'; break;
  98. case 'f': $reg1[] = '1111'; break;
  99. }
  100. }
  101.  
  102. $reg1 = join($reg1);
  103. $reg6 = array();
  104.  
  105. for($reg3=0; $reg3<384; $reg3++)
  106. {
  107. $key1 = ($key1 * 11 + 77213) % 81371;
  108. $key2 = ($key2 * 17 + 92717) % 192811;
  109. $reg6[] = ($key1 + $key2) % 128;
  110. }
  111.  
  112. for($reg3=256; $reg3>=0; $reg3--)
  113. {
  114. $reg5 = $reg6[$reg3];
  115. $reg4 = $reg3 % 128;
  116. $reg8 = $reg1[$reg5];
  117. $reg1[$reg5] = $reg1[$reg4];
  118. $reg1[$reg4] = $reg8;
  119. }
  120.  
  121. for($reg3=0; $reg3<128; $reg3++)
  122. {
  123. $reg1[$reg3] = $reg1[$reg3] ^ ($reg6[$reg3+256] & 1);
  124. }
  125.  
  126. $reg12 = $reg1;
  127. $reg7 = array();
  128.  
  129. for($reg3=0; $reg3<strlen($reg12); $reg3+=4)
  130. {
  131. $reg9 = substr($reg12, $reg3, 4);
  132. $reg7[] = $reg9;
  133. }
  134.  
  135. $reg2 = array();
  136.  
  137. for($reg3=0; $reg3<count($reg7); $reg3++)
  138. {
  139. $reg0 = $reg7[$reg3];
  140.  
  141. switch($reg0)
  142. {
  143. case '0000': $reg2[] = '0'; break;
  144. case '0001': $reg2[] = '1'; break;
  145. case '0010': $reg2[] = '2'; break;
  146. case '0011': $reg2[] = '3'; break;
  147. case '0100': $reg2[] = '4'; break;
  148. case '0101': $reg2[] = '5'; break;
  149. case '0110': $reg2[] = '6'; break;
  150. case '0111': $reg2[] = '7'; break;
  151. case '1000': $reg2[] = '8'; break;
  152. case '1001': $reg2[] = '9'; break;
  153. case '1010': $reg2[] = 'a'; break;
  154. case '1011': $reg2[] = 'b'; break;
  155. case '1100': $reg2[] = 'c'; break;
  156. case '1101': $reg2[] = 'd'; break;
  157. case '1110': $reg2[] = 'e'; break;
  158. case '1111': $reg2[] = 'f'; break;
  159. }
  160. }
  161.  
  162. return join($reg2);
  163.  
  164. }
  165.  
  166. }
  167. ?>


Więc mam ten kod. Ma on teoretycznie dawać mi link do pobrania linku z MegaVideo. Nie jestem świetny z PHP, wprawdzie praktycznei wogule się na tym nie znam. Jak doporowadzić to do stanu używalności? I czy ten kod faktycznie działa?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
screv
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 3.08.2009

Ostrzeżenie: (10%)
X----


Teoretycznie chciałem to zrobić jako odwarzacz filmów MegaVideo. Link bezpośredni do filmu podczepić pod plejerka flv i w ten sposób omijać limit. W takim razie generując na serwerze nie zrobie tego w żaden sposób?

@edit
Ależ musi się dać. Pomysł na początku powstał w mojej głowie. Szukając jakiś źródeł prostego skryptu do sciągania z MegaVideo natrafiłem na 2 strony, które wyprzedziły mnie pomysłem. Jedną z nich był serwis www.TV.Wrzuc.TO, z którym ty, b4x, chyba jesteś powiązany?

@edit2
Kupa kombinowania. Niby mi nie ściaga filmu, ale postanowiłem spróbować podstawić pod JW Plejerka, mając taki kod:
Kod
<?
class Megavideo
{

            function __construct($url)
            {
                    preg_match('#\?v=(.+?)$#', $url, $id);

                    $this->id = $id[1]?$id[1]:$url;

                        $this->getxml();

                            $parse = array    (    'runtimehms'    =>    'duration',
                                                'size'            =>    'size',
                                                's'                =>    'server',
                                                'title'            =>    'title',
                                                'description'    =>    'description',
                                                'added'            =>    'added',
                                                'username'        =>    'username',
                                                'category'        =>    'category',
                                                'views'            =>    'views',
                                                'comments'        =>    'comments',
                                                'favorited'        =>    'favorited',
                                                'rating'        =>    'rating',
                                                'k1'            =>    'key1',
                                                'k2'            =>    'key2',
                                                'un'            =>    'str');

                            foreach($parse as $key=>$val)
                            {
                                $this->parsexml($key, $val);
                            }

                        $this->size = round($this->size/(1024*1024));

            }

            function get($what=false)
            {
                $all = array(    "URL"            =>    "http://www".$this->server.
                                                    ".megavideo.com/files/".
                                                    $this->decrypt($this->str, $this->key1, $this->key2)."/",
                                "SIZE"            =>    $this->size,
                                "TITLE"            =>    $this->title,
                                "DURATION"        =>    $this->duration,
                                "SERVER"        =>    $this->server,
                                "DESCRIPTION"    =>  $this->description,
                                "ADDED"            =>  $this->added,
                                "USERNAME"        =>  $this->username,
                                "CATEGORY"        =>    $this->category,
                                "VIEWS"            =>    $this->views,
                                "COMMENTS"        =>    $this->comments,
                                "FAVORITED"        =>    $this->favorited,
                                "RATING"        =>  $this->rating
                            );

                return $what&&array_key_exists(strtoupper($what),$all)?$all[strtoupper($what)]:$all;
            }

            function getxml()
            {
          $ch = curl_init ("http://www.megavideo.com/xml/videolink.php?v=".$this->id."&id=".time());

          curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
          curl_setopt($ch,CURLOPT_HEADER, 0);

          $r = curl_exec($ch);
          curl_close($ch);

                    $this->xml = $r;
            }


            function parsexml($attribute, $name)
            {
                    preg_match("#\s$attribute=\"(.+?)\"#", $this->xml, $tmp);
                    list(,$this->$name) = $tmp;
            }

            function decrypt($str, $key1, $key2)
            {
                $reg1 = array();

                    for($reg3=0; $reg3<strlen($str); $reg3++)
                    {
                        $reg0 = $str[$reg3];

                            switch($reg0)
                            {
                                case '0': $reg1[] = '0000'; break;
                                case '1': $reg1[] = '0001'; break;
                                case '2': $reg1[] = '0010'; break;
                                case '3': $reg1[] = '0011'; break;
                                case '4': $reg1[] = '0100'; break;
                                case '5': $reg1[] = '0101'; break;
                                case '6': $reg1[] = '0110'; break;
                                case '7': $reg1[] = '0111'; break;
                                case '8': $reg1[] = '1000'; break;
                                case '9': $reg1[] = '1001'; break;
                                case 'a': $reg1[] = '1010'; break;
                                case 'b': $reg1[] = '1011'; break;
                                case 'c': $reg1[] = '1100'; break;
                                case 'd': $reg1[] = '1101'; break;
                                case 'e': $reg1[] = '1110'; break;
                                case 'f': $reg1[] = '1111'; break;
                            }
                    }

                    $reg1 = join($reg1);
                    $reg6 = array();

                    for($reg3=0; $reg3<384; $reg3++)
                    {
                        $key1 = ($key1 * 11 + 77213) % 81371;
                        $key2 = ($key2 * 17 + 92717) % 192811;
                        $reg6[] = ($key1 + $key2) % 128;
                    }

                    for($reg3=256; $reg3>=0; $reg3--)
                    {
                        $reg5 = $reg6[$reg3];
                        $reg4 = $reg3 % 128;
                        $reg8 = $reg1[$reg5];
                        $reg1[$reg5] = $reg1[$reg4];
                        $reg1[$reg4] = $reg8;
                    }

                    for($reg3=0; $reg3<128; $reg3++)
                    {
                        $reg1[$reg3] = $reg1[$reg3] ^ ($reg6[$reg3+256] & 1);    
                    }

                    $reg12 = $reg1;
                    $reg7 = array();

                    for($reg3=0; $reg3<strlen($reg12); $reg3+=4)
                    {
                        $reg9 = substr($reg12, $reg3, 4);
                        $reg7[] = $reg9;
                    }

                    $reg2 = array();

                    for($reg3=0; $reg3<count($reg7); $reg3++)
                    {
                        $reg0 = $reg7[$reg3];

                            switch($reg0)
                            {
                                case '0000': $reg2[] = '0'; break;
                                case '0001': $reg2[] = '1'; break;
                                case '0010': $reg2[] = '2'; break;
                                case '0011': $reg2[] = '3'; break;
                                case '0100': $reg2[] = '4'; break;
                                case '0101': $reg2[] = '5'; break;
                                case '0110': $reg2[] = '6'; break;
                                case '0111': $reg2[] = '7'; break;
                                case '1000': $reg2[] = '8'; break;
                                case '1001': $reg2[] = '9'; break;
                                case '1010': $reg2[] = 'a'; break;
                                case '1011': $reg2[] = 'b'; break;
                                case '1100': $reg2[] = 'c'; break;
                                case '1101': $reg2[] = 'd'; break;
                                case '1110': $reg2[] = 'e'; break;
                                case '1111': $reg2[] = 'f'; break;
                            }
                    }

                return join($reg2);

            }

}

?>
<?php
$zmienna = '{$obj->get(url)}';
$adres_megavideo = 'http://megavideo.com/?v=ZXHGPT6H';
$obj = new Megavideo($adres_megavideo);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

    <title>JW Player for Flash</title>

    <style type="text/css">
        body { background-color: #fff; padding: 0 20px; color:#000; font: 13px/18px Arial, sans-serif; }
        a { color: #360; }
        h3 { padding-top: 20px; }
        ol { margin:5px 0 15px 16px; padding:0; list-style-type:square; }
    </style>

</head>
<body>

    <object id="player" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" name="player" width="400" height="315">
        <param name="movie" value="player.swf" />
        <param name="allowfullscreen" value="true" />
        <param name="allowscriptaccess" value="always" />
        <param name="flashvars" value="file=<?php print "{$obj->get(url)}"; ?><?php print "aaa.flv"; ?>"
        <embed
            type="application/x-shockwave-flash"
            id="player2"
            name="player2"
            src="player.swf"
            width="400"
            height="315"
            allowscriptaccess="always"
            allowfullscreen="true"
            flashvars="file=<?php print "{$obj->get(url)}"; ?><?php print "aaa.flv"; ?>"
        />
    </object>
    <br><br><br>
</body>
</html>


No i starym zwyczajem nie działa ; D
Da radę ten link generować tak, żeby odtwarzacz chodził?


Ten post edytował screv 28.01.2010, 10:42:38
Go to the top of the page
+Quote Post

Posty w temacie
- screv   [PHP] Downloader MegaVideo i biała strona   24.01.2010, 19:26:09
- - b4x   Na pierwszy rzut oka działa, korzystam z czegoś po...   24.01.2010, 19:48:24
- - screv   No dobra, ale jestem na tyle zielony, że nie wiem ...   24.01.2010, 19:52:59
- - b4x   cli.php - czyli z poziomu konsoli musiałbyś użyć. ...   24.01.2010, 20:39:53
- - screv   Robiłem bardzo podobnie, ale nie zmienną, a bezpoś...   24.01.2010, 20:50:58
- - b4x   Możesz korzystać z file_get_contents na serwerze?   24.01.2010, 20:54:36
- - screv   Tak.   24.01.2010, 21:06:09
- - b4x   Chyba jednak nie masz, sprawdziłem na localu skryp...   24.01.2010, 21:07:39
- - screv   Kurcze. Wszystko praktycznie na tym hoście pouruch...   24.01.2010, 21:11:17
- - b4x   Można CURL'em to zrobić   24.01.2010, 21:28:01
- - screv   No to bardzo się ciszę. Tylko jak się do tego zabr...   24.01.2010, 21:36:04
- - b4x   [PHP] pobierz, plaintext <?class Megavideo...   24.01.2010, 21:42:14
- - screv   Chodzi, wywala co trzeba. Czas, wagę, tytuł, tylko...   24.01.2010, 21:56:28
|- - Pawel_W   Cytat(screv @ 24.01.2010, 22:56:28 ) ...   3.05.2010, 13:19:07
- - b4x   A mi normalnie działa :-) - znajduje plik. Może sp...   24.01.2010, 22:01:43
- - screv   Też nic. Po każdym odświerzeniu daje nowy link. R...   24.01.2010, 22:07:06
- - b4x   Bo generujesz na serwerze - są na IP ustawione lin...   24.01.2010, 22:08:21
- - screv   Teoretycznie chciałem to zrobić jako odwarzacz fil...   28.01.2010, 10:35:52
- - speenatch   Kod jest generowany na podstawie IP, więc na serwe...   17.02.2010, 23:30:35
- - koraso   Mam dokładnie ten sam problem co @screv, i to na l...   16.04.2010, 11:07:35
- - kamilos12   Rozwiązał już ktoś ten problem? Macie jakieś pomys...   3.05.2010, 12:55:45
- - kamilos12   Musi być jakiś sposób Proszę zobaczyć na np. tv.w...   3.05.2010, 17:11:12
- - Lejto   Rozwiązał już ktoś ten problem? Mam taki sam probl...   7.05.2010, 15:32:56


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 06:33