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

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: 3.10.2025 - 01:26