docs
[mirrors/Programs.git] / php / streamrip
CommitLineData
8de51304
H
1#!/usr/bin/php
2<?php
3//StreamRipper
4//Harvie 2007
5/*
6This can rip many types of streams simply by downloading them to file.
7(MP3,OGG,MPEG,AVI,WMA,WMV,etc..)
8*/
9
10///CODE///////////////////////////////////////////////////////////
11///Implicit values
12$len = 1000; //Block size
13//$out = "broadcast.mp3";
14
15///Args
16if(!isset($argc)) die('This is php-cli script you idiot!');
17if($argc < 2) die("Usage: streamrip stream_url [output file] [block_size]\n");
18if($argc > 1) $in = $argv[1];
19$out = explode('/', $in); $out = trim($out[sizeof($out)-1]);
20if($argc > 2) $out = $argv[2];
21if($argc > 3) $len = $argv[3];
22
23$i=1;
24while(is_file($out)) {
25 $sout = $i.'-'.$out;
26 if(!is_file($sout)) $out = $sout;
27 $i++;
28}
29
30//Banner
31echo("Rippin' da stream $in...\nSaving to $out\nc-C to stop\n\n");
32
33//Init
34$total = @(filesize($in));
35$in = fopen($in, 'rb');
36$out = fopen($out, 'wb');
37$b = 0;
38$sp = 'N/A';
39$perc = 'N/A';
40$st = time();
41
42while(!feof($in) && !feof($out)) {
43 //Info
44 $t = time()-$st;
45 $s=$t%60;
46 $m=floor($t/60);
47 $kb=floor($b/1000);
48 $mb=floor($b/1000000);
49 if($s!=0) $sp = round($kb/$s, 2);
50 if(is_int($total)) $perc = ceil($b/$total*100);
51 echo("$mb MB = $kb KB == $m:$s Mins == $perc% == $sp kB/s (avg.) \r");
52
53 //Download
54 $data = fgets($in,$len);
55 fputs($out,$data);
56 $b = $b+strlen($data);
57 }
58echo("\n");
59
60//Fclose all
61fclose($in);
62fclose($out);
This page took 0.218384 seconds and 4 git commands to generate.