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----


Chodzi, wywala co trzeba. Czas, wagę, tytuł, tylko problem w tym, że po skopiowaniu linku i wklejeniu go w pole adresu przeglądarki wyskakuje błąd, że nie znaleziono pliku.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #3





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(screv @ 24.01.2010, 22:56:28 ) *
Chodzi, wywala co trzeba. Czas, wagę, tytuł, tylko problem w tym, że po skopiowaniu linku i wklejeniu go w pole adresu przeglądarki wyskakuje błąd, że nie znaleziono pliku.

mam to samo, akurat wczoraj napisałem identyczny skrypt

cały skrypt jest dobry, po prostu dane pobrane ze strony megavideo są niepoprawne, np. skrypt, który działa na localhoście wysypuje się na serwerze, tzn. generuje link, który nie działa

próbowałem już chyba wszystkiego, ale wygląda, że serwer jest zabezpieczony z tej strony (IMG:style_emoticons/default/smile.gif)
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: 28.12.2025 - 06:26