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
speenatch
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 17.02.2010

Ostrzeżenie: (0%)
-----


Kod jest generowany na podstawie IP, więc na serwerze można go sobie co najwyżej skopiować przez copy().
Interesuje mnie generowanie kodu tak jakby na podstawie IP odwiedzającego. To jest możliwe, ale nie wiem, jak. Ma ktoś jakiś pomysł?

Ten post edytował speenatch 17.02.2010, 23:31:23
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 12:08