Scrapeer, a tiny PHP library that lets you scrape HTTP(S) and UDP trackers for torrent information.
Scrapeer, a tiny PHP library that lets you scrape HTTP(S) and UDP trackers for torrent information., (*2)
require 'scraper.php'; $scraper = new Scrapeer\Scraper(); $tracker = array( 'udp://tracker.coppersurfer.tk:6969/announce' ); $hash = array( '4344503B7E797EBF31582327A5BAAE35B11BDA01' ); $info = $scraper->scrape( $hash, $tracker ); print_r( $info );
Array ( [4344503B7E797EBF31582327A5BAAE35B11BDA01] => Array ( [seeders] => 88 [completed] => 7737 [leechers] => 6 ) )
, (*3)
$trackers = array( 'http://www.opentrackr.org/announce', 'udp://tracker.coppersurfer.tk:6969/announce' ); $hash = array( '4344503B7E797EBF31582327A5BAAE35B11BDA01' ); $info = $scraper->scrape( $hash, $trackers ); print_r( $info );
Array ( [4344503B7E797EBF31582327A5BAAE35B11BDA01] => Array ( [seeders] => 59 [completed] => 83 [leechers] => 3 ) )
, (*4)
$tracker = array( 'http://tracker.internetwarriors.net:1337/announce' ); $hashes = array( '699cda895af6fbd5a817fff4fe6fa8ab87e36f48', '4344503B7E797EBF31582327A5BAAE35B11BDA01' ); $info = $scraper->scrape( $hashes, $tracker ); print_r( $info );
Array ( [699cda895af6fbd5a817fff4fe6fa8ab87e36f48] => Array ( [seeders] => 4 [completed] => 236 [leechers] => 0 ) [4344503B7E797EBF31582327A5BAAE35B11BDA01] => Array ( [seeders] => 7 [completed] => 946 [leechers] => 3 ) )
, (*5)
$trackers = array( 'udp://tracker.coppersurfer.tk:6969/announce', 'http://explodie.org:6969/announce' ); $hashes = array( '699cda895af6fbd5a817fff4fe6fa8ab87e36f48', '4344503B7E797EBF31582327A5BAAE35B11BDA01' ); $info = $scraper->scrape( $hashes, $trackers ); print_r( $info );
Array ( [699cda895af6fbd5a817fff4fe6fa8ab87e36f48] => Array ( [seeders] => 52 [completed] => 2509 [leechers] => 1 ) [4344503B7E797EBF31582327A5BAAE35B11BDA01] => Array ( [seeders] => 97 [completed] => 7751 [leechers] => 11 ) )
, (*6)
$trackers = array( 'http://invalidtracker:6767/announce', 'udp://tracker.coppersurfer.tk:6969/announce' ); $hashes = array( '699cda895af6fbd5a817fff4fe6fa8ab87e36f48', '4344503B7E797EBF31582327A5BAAE35B11BDA01' ); $info = $scraper->scrape( $hashes, $trackers ); print_r( $info ); // Check if we have any errors. if ( $scraper->has_errors() ) { // Get the errors and print them. print_r( $scraper->get_errors() ); }
Array ( [699cda895af6fbd5a817fff4fe6fa8ab87e36f48] => Array ( [seeders] => 49 [completed] => 2509 [leechers] => 1 ) [4344503B7E797EBF31582327A5BAAE35B11BDA01] => Array ( [seeders] => 99 [completed] => 7754 [leechers] => 7 ) ) Array ( [0] => Invalid scrape connection (invalidtracker:6767). )
, (*7)
$trackers = array( 'http://invalidtracker:6767/announce', 'udp://tracker.coppersurfer.tk:6969/announce' ); $hashes = array( '699cda895af6fbd5a817fff4fe6fa8ab87e36f48', '4344503B7E797EBF31582327A5BAAE35B11BDA01' ); // The max. amount of trackers to try is 1. $info = $scraper->scrape( $hashes, $trackers, 1 );
$trackers = array( 'http://invalidtracker:6767/announce', 'udp://tracker.coppersurfer.tk:6969/announce' ); $hashes = array( '699cda895af6fbd5a817fff4fe6fa8ab87e36f48', '4344503B7E797EBF31582327A5BAAE35B11BDA01' ); // The max. amount of trackers to try is 2 and timeout per tracker is 3s. $info = $scraper->scrape( $hashes, $trackers, 2, 3 );
$trackers = array( 'udp://tracker.opentrackr.org:1337/announce', 'http://explodie.org:6969/announce' ); $hashes = array( '699cda895af6fbd5a817fff4fe6fa8ab87e36f48', '4344503B7E797EBF31582327A5BAAE35B11BDA01' ); $info = $scraper->scrape( $hashes, $trackers, 2, 3, true );
From The BitTorrent Protocol Specification:, (*8)
The 20 byte sha1 hash of the bencoded form of the info value from the metainfo file. Note that this is a substring of the metainfo file. The info-hash must be the hash of the encoded form as found in the .torrent file, regardless of it being invalid. This value will almost certainly have to be escaped., (*9)
There are many ways to retrieve the info-hashes from your torrents, a PHP based solution would be torrent-bencode for example., (*10)
Check out newTrackon and trackerslist., (*11)